Annotation of trango/Net-Telnet-Trango/t/51-network-add_su-ap.t, Revision 1.3
1.1 andrew 1: #!perl -T
1.3 ! andrew 2: # $RedRiver: 51-network-add_su.t,v 1.2 2007/02/06 16:23:17 andrew Exp $
1.1 andrew 3:
1.2 andrew 4: use Test::More tests => 17;
1.1 andrew 5: use File::Spec;
6:
7: BEGIN {
8: use_ok( 'Net::Telnet::Trango' );
9: }
10:
11: diag("Testing Net::Telnet::Trango $Net::Telnet::Trango::VERSION, Perl $], $^X");
12: diag(" Generic tests");
13:
14: my $cfg_file = File::Spec->catfile('t', 'tests.cfg');
15: my ($cir, $mir) = (128, 256);
16:
17: SKIP: {
1.2 andrew 18: my $skipped = 16;
1.1 andrew 19: my %cfg;
20: if (-e $cfg_file) {
21: if (open my $fh, $cfg_file) {
22: while (<$fh>) {
23: chomp;
24: my ($key, $value) = split /\t/, $_, 2;
25: $cfg{$key} = $value;
26: }
27: close $fh;
28: }
29: }
30:
31: my $type = 'AP';
32: my ($host, $pass, $su_id, $su_mac);
33:
34: if ($cfg{$type} && $cfg{$type} =~ /^(\d+\.\d+\.\d+.\d+)$/) {
35: $host = $1;
36: }
37:
38: skip 'No valid ' . $type . ' in config file', $skipped unless $host;
39:
40: if ($cfg{$type . '_PASSWD'} && $cfg{$type . '_PASSWD'} =~ /^(.*)$/) {
41: $pass = $1;
42: }
43:
44: skip 'No valid ' . $type . '_PASSWD in config file', $skipped unless $pass;
45:
46: if ($cfg{SU_ID} && $cfg{SU_ID} =~ /^(\d+)$/) {
47: $su_id= $1;
48: }
49:
50: skip 'No valid SU_ID in config file', $skipped unless $su_id;
51:
52: if ($cfg{SU_MAC} && length $cfg{SU_MAC} >= 12 && $cfg{SU_MAC} =~ /^(.*)$/) {
53: $su_mac = $1;
54: }
55:
56: skip 'No valid SU_MAC in config file', $skipped unless $su_mac;
57:
58: my $t;
59: ok($t = Net::Telnet::Trango->new(), "Instantiating object");
60:
61: ok($t->open($host), "Opening connection to $host");
62:
63: ok($t->is_connected, "connected");
64:
65: ok($t->login($pass), "Logging in");
66:
67: ok($t->logged_in, "logged in");
68:
69:
70: my $sudb;
1.2 andrew 71: if ((!ok($sudb = $t->sudb_view, "Getting sudb"))
72: && $t->last_error ) {
73: diag('ERR: ' . $t->last_error);
74: }
75:
76: my $in_sudb = 0;
77: foreach my $su (@{ $sudb }) {
78: if ($su_id == $su->{suid}) {
79: if (lc($su_mac) eq lc($su->{mac})) {
80: $in_sudb = 1;
81: } else {
82: $in_sudb = -1;
83: diag("Incorrect mac for SUID $su_id");
84: diag(" Should be $su_mac");
85: diag(" Really is $su->{mac}");
86: }
87: last;
88: }
89: }
90:
91: if ($in_sudb) {
92: diag("Removing suid $su_id from AP");
93: if ( (! $t->sudb_delete($su_id))
94: && $t->last_error ) {
95: diag('ERR: ' . $t->last_error);
96: }
97: }
1.1 andrew 98:
99:
100: my $result;
1.2 andrew 101: if ( (! ok($result = $t->sudb_add($su_id, 'reg', $cir, $mir, $su_mac),
102: "Adding su"))
103: && $t->last_error ) {
1.1 andrew 104: diag('ERR: ' . $t->last_error);
105: }
106:
107: ok($result = $t->save_sudb, "Saving sudb");
108: if ( (! $result ) && $t->last_error ) {
109: diag('ERR: ' . $t->last_error);
110: }
111:
1.2 andrew 112: $sudb = [];
113: if ((!ok($sudb = $t->sudb_view, "Getting sudb"))
114: && $t->last_error ) {
1.1 andrew 115: diag('ERR: ' . $t->last_error);
116: }
117:
1.2 andrew 118: $in_sudb = 0;
119: foreach my $su (@{ $sudb }) {
120: if ($su_id == $su->{suid}) {
121: if (lc($su_mac) eq lc($su->{mac})) {
122: $in_sudb = 1;
123: } else {
124: $in_sudb = -1;
125: diag("Incorrect mac for SUID $su_id");
126: diag(" Should be $su_mac");
127: diag(" Really is $su->{mac}");
128: }
129: last;
130: }
131: }
132:
133: is($in_sudb, 1, "Correct SU is in SUDB");
134:
1.1 andrew 135: my $opmode;
136: ok($opmode = $t->opmode, "getting current opmode");
137:
1.2 andrew 138: if ($opmode->{Opmode} eq 'ap') {
139: ok(1, "Already opmode ap");
140: } else {
141: if ((! ok($result = $t->opmode('ap y'), "Setting opmode ap y"))
142: && $t->last_error ) {
143: diag('ERR: ' . $t->last_error);
144: }
145: }
146:
147: $opmode = {};
148: ok($opmode = $t->opmode, "getting current opmode");
1.1 andrew 149: if (ref $opmode eq 'HASH' && $opmode->{ERR}) {
150: diag("Error: $opmode->{ERR}");
151: }
152:
153: is($opmode->{Opmode}, 'ap', "Checking opmode is ap");
1.2 andrew 154:
155: if (! ok($result = $t->save_ss, "Saving systemsetting")
156: && $t->last_error ) {
157: diag('ERR: ' . $t->last_error);
158: }
1.1 andrew 159:
160: ok($t->bye, "Goodbye");
161: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>