# encoding: utf-8 require 'test_helper' class TagTest < ActiveSupport::TestCase test 'tags' do tests = [ # test 1 { :tag_add => { :item => 'tag1', :object => 'Object1', :o_id => 123, :created_by_id => 1 }, :verify => { :object => 'Object1', :items => { 'tag1' => true, 'tag2' => false, }, }, }, # test 2 { :tag_add => { :item => 'tag2', :object => 'Object1', :o_id => 123, :created_by_id => 1 }, :verify => { :object => 'Object1', :items => { 'tag1' => true, 'tag2' => true, }, }, }, # test 2 { :tag_add => { :item => 'tagöäüß1', :object => 'Object2', :o_id => 123, :created_by_id => 1 }, :verify => { :object => 'Object2', :items => { 'tagöäüß1' => true, 'tag2' => false, }, }, }, # test 4 { :tag_add => { :item => 'Tagöäüß2', :object => 'Object2', :o_id => 123, :created_by_id => 1 }, :verify => { :object => 'Object2', :items => { 'tagöäüß1' => true, 'tagöäüß2' => true, 'tagöäüß3' => false, }, }, }, # test 5 { :tag_remove => { :item => 'tag1', :object => 'Object1', :o_id => 123, :created_by_id => 1 }, :verify => { :object => 'Object1', :items => { 'tag1' => false, 'tag2' => true, }, }, }, ] tests.each { |test| tags = nil if test[:tag_add] tags = test[:tag_add] success = Tag.tag_add( tags ) assert( success, "Tag.tag_add successful") else tags = test[:tag_remove] success = Tag.tag_remove( tags ) assert( success, "Tag.tag_remove successful") end list = Tag.tag_list( tags ) test[:verify][:items].each {|key, value| if value == true assert( list.include?( key ), "Tag verify - should exists but exists #{ key }") else assert( !list.include?( key ), "Tag verify - exists but should not #{ key }") end } } # delete tags tests.each { |test| tags = nil if test[:tag_add] tags = test[:tag_add] else tags = test[:tag_remove] end success = Tag.tag_remove( tags ) assert( success, "Tag.tag_remove successful") list = Tag.tag_list( tags ) assert( !list.include?( tags[:item] ), "Tag entry destroyed") } end end