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'] ) | 
