diff options
-rwxr-xr-x | t/test-protocol-smtp.rb | 93 | ||||
-rwxr-xr-x | worker/tests/smtp.rb | 20 |
2 files changed, 112 insertions, 1 deletions
diff --git a/t/test-protocol-smtp.rb b/t/test-protocol-smtp.rb new file mode 100755 index 0000000..7c3b6fa --- /dev/null +++ b/t/test-protocol-smtp.rb @@ -0,0 +1,93 @@ +#!/usr/bin/ruby -I../worker/tests/ -I./worker/tests/ + + +require 'test/unit' +require 'smtp' + + + + +# +# Unit test for the SMTP-protocol probe. +# +class TestSMTPProtocolProbe < Test::Unit::TestCase + + # + # Create the test suite environment: NOP. + # + def setup + end + + # + # Destroy the test suite environment: NOP. + # + def teardown + end + + + # + # Test we can create a new SMTPTest object. + # + def test_init + test_data_good = { + "target_host" => "statler.bytemark.co.uk", + "test_type" => "smtp", + "test_port" => 25, + "verbose" => 1, + "test_port" => 21, + "test_alert" => "SMTP service down", + } + + # + # Missing a port number + # + test_data_bad_one = { + "target_host" => "statler.bytemark.co.uk", + "test_type" => "smtp", + "verbose" => 1, + "test_alert" => "SMTP service down", + } + + # + # Missing host to probe + # + test_data_bad_two = { + "test_type" => "smtp", + "test_port" => 25, + "verbose" => 1, + "test_port" => 25, + "test_alert" => "SMTP service down", + } + + + # + # Create a new SMTPTest object. This should succeed + # + good = SMTPTest.new( test_data_good ) + assert( good ) + + # + # There will be no error setup + # + assert( good.error().nil? ) + + # + # Now create a probe with a missing port. + # + assert_raise ArgumentError do + bad = SMTPTest.new( test_data_bad_one ) + end + + + # + # Now create a probe with a missing host. + # + assert_raise ArgumentError do + bad = SMTPTest.new( test_data_bad_two ) + end + + end + + + +end diff --git a/worker/tests/smtp.rb b/worker/tests/smtp.rb index 58029e4..aa577d6 100755 --- a/worker/tests/smtp.rb +++ b/worker/tests/smtp.rb @@ -29,6 +29,24 @@ class SMTPTest # def initialize( data ) @test_data = data + @error = nil + + + # + # Ensure we have a host to probe + # + if ( @test_data["target_host"].nil? ) + @error = "Missing target for the test." + raise ArgumentError, @error + end + + # + # Ensure we have a port to test. + # + if ( @test_data["test_port"].nil? ) + @error = "Missing port for the test." + raise ArgumentError, @error + end end @@ -48,7 +66,7 @@ class SMTPTest # Get the hostname & port to test against. # host = @test_data['target_host'] - port = 25 + port = @test_data['test_port'] puts "SMTP testing host #{host}:#{port}" if ( @test_data['verbose'] ) |