summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Kemp <steve@steve.org.uk>2012-11-13 15:13:30 +0000
committerSteve Kemp <steve@steve.org.uk>2012-11-13 15:13:30 +0000
commit5fd15341264b5aae31d41afcd09affea0df6ee24 (patch)
tree9db07cd8043869b1b822c1d3eb618f9e56aefdd5
parentd8eca31453dd8131a7d101e9f7f9dd667d8dc6ef (diff)
Added validation of target + port
-rwxr-xr-xt/test-protocol-smtp.rb93
-rwxr-xr-xworker/tests/smtp.rb20
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'] )