#!/usr/bin/ruby require 'mpw/item' require 'test/unit' require 'yaml' class TestItem < Test::Unit::TestCase def setup @fixture_file = 'test/files/fixtures.yml' @fixtures = YAML.load_file(@fixture_file) if defined?(I18n.enforce_available_locales) I18n.enforce_available_locales = false end I18n.load_path = Dir['./i18n/cli/*.yml'] I18n.default_locale = :en puts end def test_00_add_without_name assert_raise(RuntimeError) { MPW::Item.new } end def test_01_add_new data = { group: @fixtures['add_new']['group'], host: @fixtures['add_new']['host'], protocol: @fixtures['add_new']['protocol'], user: @fixtures['add_new']['user'], port: @fixtures['add_new']['port'], comment: @fixtures['add_new']['comment'] } item = MPW::Item.new(data) assert(!item.nil?) assert(!item.empty?) assert_equal(@fixtures['add_new']['group'], item.group) assert_equal(@fixtures['add_new']['host'], item.host) assert_equal(@fixtures['add_new']['protocol'], item.protocol) assert_equal(@fixtures['add_new']['user'], item.user) assert_equal(@fixtures['add_new']['port'].to_i, item.port) assert_equal(@fixtures['add_new']['comment'], item.comment) end def test_02_add_existing data = { id: @fixtures['add_existing']['id'], group: @fixtures['add_existing']['group'], host: @fixtures['add_existing']['host'], protocol: @fixtures['add_existing']['protocol'], user: @fixtures['add_existing']['user'], port: @fixtures['add_existing']['port'], comment: @fixtures['add_existing']['comment'], created: @fixtures['add_existing']['created'] } item = MPW::Item.new(data) assert(!item.nil?) assert(!item.empty?) assert_equal(@fixtures['add_existing']['id'], item.id) assert_equal(@fixtures['add_existing']['group'], item.group) assert_equal(@fixtures['add_existing']['host'], item.host) assert_equal(@fixtures['add_existing']['protocol'], item.protocol) assert_equal(@fixtures['add_existing']['user'], item.user) assert_equal(@fixtures['add_existing']['port'].to_i, item.port) assert_equal(@fixtures['add_existing']['comment'], item.comment) assert_equal(@fixtures['add_existing']['created'], item.created) end def test_03_update data = { group: @fixtures['add_new']['group'], host: @fixtures['add_new']['host'], protocol: @fixtures['add_new']['protocol'], user: @fixtures['add_new']['user'], port: @fixtures['add_new']['port'], comment: @fixtures['add_new']['comment'] } item = MPW::Item.new(data) assert(!item.nil?) assert(!item.empty?) created = item.created last_edit = item.last_edit data = { group: @fixtures['update']['group'], host: @fixtures['update']['host'], protocol: @fixtures['update']['protocol'], user: @fixtures['update']['user'], port: @fixtures['update']['port'], comment: @fixtures['update']['comment'] } sleep(1) assert(item.update(data)) assert(!item.empty?) assert_equal(@fixtures['update']['group'], item.group) assert_equal(@fixtures['update']['host'], item.host) assert_equal(@fixtures['update']['protocol'], item.protocol) assert_equal(@fixtures['update']['user'], item.user) assert_equal(@fixtures['update']['port'].to_i, item.port) assert_equal(@fixtures['update']['comment'], item.comment) assert_equal(created, item.created) assert_not_equal(last_edit, item.last_edit) end def test_05_update_one_element data = { group: @fixtures['add_new']['group'], host: @fixtures['add_new']['host'], protocol: @fixtures['add_new']['protocol'], user: @fixtures['add_new']['user'], port: @fixtures['add_new']['port'], comment: @fixtures['add_new']['comment'] } item = MPW::Item.new(data) assert(!item.nil?) assert(!item.empty?) last_edit = item.last_edit sleep(1) assert(item.update(comment: @fixtures['update']['comment'])) assert_equal(@fixtures['add_new']['group'], item.group) assert_equal(@fixtures['add_new']['host'], item.host) assert_equal(@fixtures['add_new']['protocol'], item.protocol) assert_equal(@fixtures['add_new']['user'], item.user) assert_equal(@fixtures['add_new']['port'].to_i, item.port) assert_equal(@fixtures['update']['comment'], item.comment) assert_not_equal(last_edit, item.last_edit) end def test_05_delete data = { group: @fixtures['add_new']['group'], host: @fixtures['add_new']['host'], protocol: @fixtures['add_new']['protocol'], user: @fixtures['add_new']['user'], port: @fixtures['add_new']['port'], comment: @fixtures['add_new']['comment'] } item = MPW::Item.new(data) assert(!item.nil?) assert(!item.empty?) item.delete assert(!item.nil?) assert(item.empty?) assert_equal(nil, item.id) assert_equal(nil, item.group) assert_equal(nil, item.host) assert_equal(nil, item.protocol) assert_equal(nil, item.user) assert_equal(nil, item.port) assert_equal(nil, item.comment) assert_equal(nil, item.created) end end