=================================================================== RCS file: /cvs/trango/Net-Telnet-Trango/t/51-network-add_su-ap.t,v retrieving revision 1.1 retrieving revision 1.6 diff -u -r1.1 -r1.6 --- trango/Net-Telnet-Trango/t/51-network-add_su-ap.t 2007/02/06 00:42:33 1.1 +++ trango/Net-Telnet-Trango/t/51-network-add_su-ap.t 2007/02/06 19:06:13 1.6 @@ -1,7 +1,7 @@ #!perl -T -# $RedRiver: 50-network.t,v 1.4 2007/02/05 23:11:21 andrew Exp $ +# $RedRiver: 51-network-add_su-ap.t,v 1.5 2007/02/06 17:40:02 andrew Exp $ -use Test::More tests => 7; +use Test::More tests => 16; use File::Spec; BEGIN { @@ -9,13 +9,13 @@ } diag("Testing Net::Telnet::Trango $Net::Telnet::Trango::VERSION, Perl $], $^X"); -diag(" Generic tests"); +diag(" AP tests when adding an SU to an AP"); my $cfg_file = File::Spec->catfile('t', 'tests.cfg'); -my ($cir, $mir) = (128, 256); +my ($cir, $mir, $new_mir) = (128, 256, 1024); SKIP: { - my $skipped = 6; + my $skipped = 15; my %cfg; if (-e $cfg_file) { if (open my $fh, $cfg_file) { @@ -58,8 +58,6 @@ my $t; ok($t = Net::Telnet::Trango->new(), "Instantiating object"); - $t->input_log('input.log'); # XXX Debugging - ok($t->open($host), "Opening connection to $host"); ok($t->is_connected, "connected"); @@ -68,39 +66,95 @@ ok($t->logged_in, "logged in"); - my $sudb; - ok($sudb = $t->sudb_view, "Getting sudb"); + if ((!ok($sudb = $t->sudb_view, "Getting sudb")) + && $t->last_error ) { + diag('ERR: ' . $t->last_error); + } - use YAML; - print Dump $sudb; + my $in_sudb = 0; + foreach my $su (@{ $sudb }) { + if ($su_id == $su->{suid}) { + if (lc($su_mac) eq lc($su->{mac})) { + $in_sudb = 1; + } else { + $in_sudb = -1; + diag("Incorrect mac for SUID $su_id"); + diag(" Should be $su_mac"); + diag(" Really is $su->{mac}"); + } + last; + } + } - my $result; - ok($result = $t->sudb_add($su_id, 'reg', $cir, $mir, $su_mac), "Adding su"); + if ($in_sudb) { + diag("Removing suid $su_id from AP"); + if ( (! $t->sudb_delete($su_id)) + && $t->last_error ) { + diag('ERR: ' . $t->last_error); + } + } - if ( (! $result ) && $t->last_error ) { + + if ( (! ok($t->sudb_add($su_id, 'reg', $cir, $mir, $su_mac), "Adding su")) + && $t->last_error ) { diag('ERR: ' . $t->last_error); } - ok($result = $t->save_sudb, "Saving sudb"); + $sudb = []; + if ((!ok($sudb = $t->sudb_view, "Getting sudb")) + && $t->last_error ) { + diag('ERR: ' . $t->last_error); + } - if ( (! $result ) && $t->last_error ) { + $in_sudb = 0; + foreach my $su (@{ $sudb }) { + if ($su_id == $su->{suid}) { + if (lc($su_mac) eq lc($su->{mac})) { + $in_sudb = 1; + } else { + $in_sudb = -1; + diag("Incorrect mac for SUID $su_id"); + diag(" Should be $su_mac"); + diag(" Really is $su->{mac}"); + } + last; + } + } + + is($in_sudb, 1, "Correct SU is in SUDB"); + + if ( (! ok($t->save_sudb, "Saving sudb")) + && $t->last_error ) { diag('ERR: ' . $t->last_error); } - $result = $t->opmode('ap y'); - if ( (! $result ) && $t->last_error ) { + + if ( (! ok($t->sudb_modify($su_id, 'mir', $new_mir), "modifying su mir")) + && $t->last_error ) { diag('ERR: ' . $t->last_error); } - my $opmode; - ok($opmode = $t->opmode, "getting current opmode"); + $sudb = []; + if ((!ok($sudb = $t->sudb_view, "Getting sudb")) + && $t->last_error ) { + diag('ERR: ' . $t->last_error); + } - if (ref $opmode eq 'HASH' && $opmode->{ERR}) { - diag("Error: $opmode->{ERR}"); + $su_mir = 0; + foreach my $su (@{ $sudb }) { + if ($su_id == $su->{suid}) { + $su_mir = $su->{mir}; + last; + } } - is($opmode->{Opmode}, 'ap', "Checking opmode is ap"); + is($new_mir, $su_mir, "SU has new mir"); + + if ( (! ok($t->save_sudb, "Saving sudb")) + && $t->last_error ) { + diag('ERR: ' . $t->last_error); + } ok($t->bye, "Goodbye"); }