Test harness improvements and test coverage of all methods within SNMP::Info base class
This commit is contained in:
		| @@ -58,11 +58,26 @@ sub setup : Tests(setup) { | ||||
|   my $class = $test->class; | ||||
|   my $sess  = $test->mock_session; | ||||
|  | ||||
|   $test->{info} | ||||
|     = $class->new('AutoSpecify' => 0, 'BulkWalk' => 0, 'Session' => $sess,); | ||||
|   $test->{info} = $class->new( | ||||
|     'AutoSpecify' => 0, | ||||
|     'BulkWalk'    => 0, | ||||
|     'UseEnums'    => 1, | ||||
|     'RetryNoSuch' => 1, | ||||
|     'DestHost'    => '127.0.0.1', | ||||
|     'Community'   => 'public', | ||||
|     'Version'     => 2, | ||||
|     'Session'     => $sess, | ||||
|   ); | ||||
| } | ||||
|  | ||||
| sub teardown : Tests(teardown) { my $test = shift; $test->{info} = undef; } | ||||
| sub teardown : Tests(teardown) { | ||||
|   my $test = shift; | ||||
|   my $sess = $test->mock_session; | ||||
|  | ||||
|   # Make sure we start clear object and any mocked session data after each test | ||||
|   $test->{info} = undef; | ||||
|   $sess->{Data} = {}; | ||||
| } | ||||
|  | ||||
| sub create_mock_session { | ||||
|  | ||||
| @@ -137,10 +152,14 @@ sub mock_get { | ||||
|         ($leaf, $iid) = $oid_name =~ /^(\S+::\w+)[.]?(\S+)*$/x; | ||||
|       } | ||||
|  | ||||
|       # This is a lot of indirection, but we need the base OID, it may be | ||||
|       # passed with a zero for non table leaf | ||||
|       my $oid_base = SNMP::translateObj($leaf); | ||||
|  | ||||
|       $iid ||= 0; | ||||
|       my $new_iid = $iid; | ||||
|       my $val     = $EMPTY; | ||||
|       my $data    = $c_data->{$leaf} || {}; | ||||
|       my $data    = $c_data->{$leaf} || $c_data->{$oid_base} || {}; | ||||
|       my $count   = scalar keys %{$data} || 0; | ||||
|       if ($count > 1) { | ||||
|         my $found = 0; | ||||
| @@ -233,7 +252,17 @@ sub mock_getnext { | ||||
| } | ||||
|  | ||||
| # For testing purposes assume sets worked | ||||
| sub mock_set {1} | ||||
| sub mock_set { | ||||
|   my $mock_session = shift; | ||||
|  | ||||
|   $mock_session->mock( | ||||
|     'set', | ||||
|     sub { | ||||
|       return 1; | ||||
|     } | ||||
|   ); | ||||
|   return; | ||||
| } | ||||
|  | ||||
| # Utility to load snmpwalk from a file to use for mock sessions | ||||
| sub load_snmpdata { | ||||
| @@ -257,15 +286,20 @@ sub load_snmpdata { | ||||
|   return $snmp_data; | ||||
| } | ||||
|  | ||||
| # Grab the symbol table for verification that | ||||
| # dynamic methods via AUTOLOAD and can() have been inserted | ||||
| sub symbols { | ||||
|   my $test  = shift; | ||||
|   my $class = $test->class; | ||||
| # Returns 1 if the method is defined in the symbol table 0 otherwise, used for | ||||
| # verification that dynamic methods via AUTOLOAD and can() have been inserted | ||||
| # into the symbol table | ||||
| sub symbol_test { | ||||
|   my $test   = shift; | ||||
|   my $method = shift; | ||||
|  | ||||
|   my $class   = $test->class; | ||||
|   my %symbols = (); | ||||
|   { | ||||
|     no strict 'refs';    ## no critic (ProhibitNoStrict) | ||||
|     return \%{$class . '::'}; | ||||
|     %symbols = %{$class . '::'}; | ||||
|   } | ||||
|   return (defined($symbols{$method}) ? 1 : 0); | ||||
| } | ||||
|  | ||||
| 1; | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user