summaryrefslogtreecommitdiff
path: root/t/test-custodian-util-tftp.rb
diff options
context:
space:
mode:
Diffstat (limited to 't/test-custodian-util-tftp.rb')
-rwxr-xr-xt/test-custodian-util-tftp.rb116
1 files changed, 116 insertions, 0 deletions
diff --git a/t/test-custodian-util-tftp.rb b/t/test-custodian-util-tftp.rb
new file mode 100755
index 0000000..0774124
--- /dev/null
+++ b/t/test-custodian-util-tftp.rb
@@ -0,0 +1,116 @@
+#!/usr/bin/ruby -I./lib/ -I../lib/
+
+require 'custodian/util/tftp'
+require 'test/unit'
+
+#
+# Unit test for our tftp utility class.
+#
+class TestTftpUtil < Test::Unit::TestCase
+
+
+ #
+ # Create the test suite environment: NOP.
+ #
+ def setup
+ end
+
+ #
+ # Destroy the test suite environment: NOP.
+ #
+ def teardown
+ end
+
+
+ #
+ # Test we can construct new objects.
+ #
+ def test_init
+
+ #
+ # Normal construction works.
+ #
+ assert_nothing_raised do
+ Custodian::Util::Tftp.new('foo')
+ end
+ assert_nothing_raised do
+ Custodian::Util::Tftp.new('foo', 123)
+ end
+ assert_nothing_raised do
+ Custodian::Util::Tftp.new('foo', '123')
+ end
+
+
+ #
+ # A hostname must be supplied
+ #
+ assert_raise ArgumentError do
+ Custodian::Util::Tftp.new(nil)
+ end
+
+ #
+ # A hostname is a string, not an array, hash, or similar.
+ #
+ assert_raise ArgumentError do
+ Custodian::Util::Tftp.new({})
+ end
+ assert_raise ArgumentError do
+ Custodian::Util::Tftp.new([])
+ end
+
+ #
+ # A port, if supplied, must be a number
+ #
+ assert_raise ArgumentError do
+ Custodian::Util::Tftp.new('foo', 'bar')
+ end
+
+ #
+ # The default port is 69
+ #
+ assert_equal(Custodian::Util::Tftp.new('foo').port, 69)
+
+
+ end
+
+ #
+ # Test a tftp successful fetch
+ #
+ def test_tftp_suceeds
+ helper = Custodian::Util::Tftp.new('foo')
+ def helper.tftp(args)
+ filename = args.split(' ').last
+ File.open(filename, 'w') { |w| w.puts 'stuff' }
+ return true
+ end
+
+ assert(helper.test('file'))
+ end
+
+ #
+ # Test a tftp failed fetch
+ #
+ def test_tftp_failed_fetch
+ helper = Custodian::Util::Tftp.new('foo')
+ def helper.tftp(args)
+ return false
+ end
+
+ assert(!helper.test('file'))
+ end
+
+ #
+ # Test a tftp fetch of empty file
+ #
+ def test_tftp_empty_file
+ helper = Custodian::Util::Tftp.new('foo')
+ def helper.tftp(args)
+ filename = args.split(' ').last
+ File.open(filename, 'w') { |w| }
+ return true
+ end
+
+ assert(!helper.test('file'))
+ end
+
+end