spectools 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. data/CHANGELOG.txt +1 -0
  2. data/Manifest.txt +80 -0
  3. data/README.txt +33 -0
  4. data/README.vnmsh.txt +39 -0
  5. data/Rakefile +42 -0
  6. data/TODO +5 -0
  7. data/lib/spectools.rb +588 -0
  8. data/lib/spectools/version.rb +9 -0
  9. data/lib/vnmsh.rb +1930 -0
  10. data/test/data/connect.success +8 -0
  11. data/test/data/create.alarm +2 -0
  12. data/test/data/create.association +1 -0
  13. data/test/data/create.model +1 -0
  14. data/test/data/create.model.ip +1 -0
  15. data/test/data/destroy.alarm +1 -0
  16. data/test/data/destroy.association +1 -0
  17. data/test/data/destroy.model +9 -0
  18. data/test/data/seek +2 -0
  19. data/test/data/seek.-s +17 -0
  20. data/test/data/show.alarms +10 -0
  21. data/test/data/show.alarms-a +11 -0
  22. data/test/data/show.alarms-a-x +22 -0
  23. data/test/data/show.alarms-x +20 -0
  24. data/test/data/show.alarms.mh +1 -0
  25. data/test/data/show.associations +160 -0
  26. data/test/data/show.attributes +909 -0
  27. data/test/data/show.attributes.attr +2 -0
  28. data/test/data/show.attributes.attriid +2 -0
  29. data/test/data/show.attributes.attrname +6 -0
  30. data/test/data/show.attributes.attrr +14 -0
  31. data/test/data/show.attributes.enum +2 -0
  32. data/test/data/show.attributes.flags +16 -0
  33. data/test/data/show.attributes.mth +242 -0
  34. data/test/data/show.attributes.mth.attrr +12 -0
  35. data/test/data/show.children +47 -0
  36. data/test/data/show.children.rel +14 -0
  37. data/test/data/show.devices +21 -0
  38. data/test/data/show.enumerations +142383 -0
  39. data/test/data/show.enumerations.attr +4 -0
  40. data/test/data/show.enumerations.mth +149 -0
  41. data/test/data/show.events +2001 -0
  42. data/test/data/show.events-a +10001 -0
  43. data/test/data/show.events-n5 +6 -0
  44. data/test/data/show.events-x-n5 +21 -0
  45. data/test/data/show.inheritance +12 -0
  46. data/test/data/show.landscapes +3 -0
  47. data/test/data/show.models +2252 -0
  48. data/test/data/show.models.mhr +18 -0
  49. data/test/data/show.models.mname +4 -0
  50. data/test/data/show.models.mth +4 -0
  51. data/test/data/show.parents +6 -0
  52. data/test/data/show.relations +151 -0
  53. data/test/data/show.rules +5838 -0
  54. data/test/data/show.types +4210 -0
  55. data/test/data/show.types.flags +3137 -0
  56. data/test/data/show.types.mthr +55 -0
  57. data/test/data/show.types.mtname +2 -0
  58. data/test/data/show.watch +9 -0
  59. data/test/data/test.reconnect +1 -0
  60. data/test/data/update.alarm +1 -0
  61. data/test/data/update.model +3 -0
  62. data/test/test_helper.rb +2 -0
  63. data/test/test_spectools.rb +403 -0
  64. data/test/test_vnmsh.rb +1537 -0
  65. data/test/testcmds/ack +1 -0
  66. data/test/testcmds/connect +32 -0
  67. data/test/testcmds/create +34 -0
  68. data/test/testcmds/destroy +36 -0
  69. data/test/testcmds/disconnect +7 -0
  70. data/test/testcmds/seek +18 -0
  71. data/test/testcmds/show +243 -0
  72. data/test/testcmds/update +12 -0
  73. data/test/vnmsh/ack +1 -0
  74. data/test/vnmsh/connect +5 -0
  75. data/test/vnmsh/create +1 -0
  76. data/test/vnmsh/destroy +1 -0
  77. data/test/vnmsh/disconnect +1 -0
  78. data/test/vnmsh/seek +3 -0
  79. data/test/vnmsh/show +1 -0
  80. data/test/vnmsh/update +1 -0
  81. metadata +134 -0
@@ -0,0 +1,1537 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+ require 'tmpdir.rb'
3
+ require 'fileutils'
4
+ require 'vnmsh'
5
+
6
+ module VNMSHTestHelpers
7
+
8
+ def tmp_specroot
9
+ return Dir.tmpdir + '/test_spectools'
10
+ end
11
+
12
+ def create_temp_vnmsh(filelist)
13
+ Dir.mkdir(tmp_specroot) unless File.exists?(tmp_specroot)
14
+ Dir.mkdir(tmp_specroot + '/vnmsh') unless File.exists?(tmp_specroot + '/vnmsh')
15
+ copy_command(filelist[:showcmd], 'show')
16
+ copy_command(filelist[:ackcmd], 'ack')
17
+ copy_command(filelist[:connectcmd], 'connect')
18
+ copy_command(filelist[:createcmd], 'create')
19
+ copy_command(filelist[:destroycmd], 'destroy')
20
+ copy_command(filelist[:disconnectcmd], 'disconnect')
21
+ copy_command(filelist[:seekcmd], 'seek')
22
+ copy_command(filelist[:updatecmd], 'update')
23
+ end
24
+ def destroy_temp_vnmsh
25
+ Dir.glob(tmp_specroot + '/vnmsh/*').each { |file| File.delete(file) }
26
+ Dir.delete(tmp_specroot + '/vnmsh/')
27
+ end
28
+
29
+ def copy_command(src, dest)
30
+ FileUtils.copy(FileUtils.pwd + '/test/testcmds/' + src, tmp_specroot + '/vnmsh/' + dest) unless src == 'bogus'
31
+ end
32
+
33
+ def basecmds
34
+ return { :showcmd => 'show',
35
+ :ackcmd => 'ack',
36
+ :connectcmd => 'connect',
37
+ :createcmd => 'create',
38
+ :destroycmd => 'destroy',
39
+ :seekcmd => 'seek',
40
+ :updatecmd => 'update',
41
+ :disconnectcmd => 'disconnect'
42
+ }
43
+ end
44
+ end
45
+
46
+
47
+ class BasicVNMSHTests < Test::Unit::TestCase
48
+ include VNMSHTestHelpers
49
+
50
+ def setup
51
+
52
+
53
+ @specroot = Dir.pwd + '/test'
54
+ ENV['TESTDATA'] = Dir.pwd + '/test/data/'
55
+
56
+
57
+ end
58
+
59
+
60
+
61
+
62
+
63
+ def test_init_vnmsh
64
+ create_temp_vnmsh(basecmds)
65
+ ENV['SPECROOT'] = tmp_specroot
66
+ session = VNMSH.new
67
+ assert_not_nil session.session_id
68
+ destroy_temp_vnmsh
69
+ assert_equal 3, session.reconnect_retries
70
+ end
71
+
72
+ def test_init_vnmsh_args
73
+ session = VNMSH.new(@specroot)
74
+ assert_not_nil session.session_id
75
+ session.reconnect_retries = 50
76
+ assert_equal 50, session.reconnect_retries
77
+ assert_raise VNMSH::EnvironmentError do
78
+ VNMSH.new("bogus")
79
+ end
80
+ basecmds.keys.each do |cmd|
81
+ cmdlist = basecmds.clone
82
+ cmdlist[cmd] = 'bogus'
83
+ create_temp_vnmsh(cmdlist)
84
+ assert_raise VNMSH::EnvironmentError do
85
+ VNMSH.new(tmp_specroot)
86
+ end
87
+ destroy_temp_vnmsh
88
+ end
89
+ end
90
+
91
+ def test_vnmsh_default_session
92
+ create_temp_vnmsh(basecmds)
93
+ session = VNMSH.new(tmp_specroot)
94
+ assert_nil VNMSH.default_session
95
+ VNMSH.default_session = session
96
+ assert_same session, VNMSH.default_session
97
+ destroy_temp_vnmsh
98
+ end
99
+ end
100
+
101
+ class VNMSHConnectionTests < Test::Unit::TestCase
102
+
103
+ include VNMSHTestHelpers
104
+
105
+ def setup
106
+ create_temp_vnmsh(basecmds)
107
+ @session = VNMSH.new(tmp_specroot)
108
+ end
109
+
110
+ def teardown
111
+ destroy_temp_vnmsh
112
+ end
113
+
114
+ def test_vnmsh_connect
115
+ landscape = @session.connect
116
+ assert_instance_of SpecTools::Landscape, landscape
117
+ end
118
+
119
+ def test_vnmsh_connect_args
120
+ landscape = @session.connect("testhost")
121
+ assert_instance_of SpecTools::Landscape, landscape
122
+ assert_equal 'testhost', landscape.ss
123
+ assert_equal '0x400000', landscape.handle
124
+ assert_same landscape, @session.current_landscape
125
+ landscape = @session.connect("connected")
126
+ assert_instance_of SpecTools::Landscape, landscape
127
+ assert_equal 'testhost', landscape.ss
128
+ assert_equal '0x400000', landscape.handle
129
+
130
+ (0..7).each do |i|
131
+ assert_raise VNMSH::ConnectError do
132
+ @session.connect("error" + i.to_s)
133
+ end
134
+ end
135
+ end
136
+
137
+ def test_vnmsh_disconnect
138
+ assert_equal false, @session.connected?
139
+ @session.connect
140
+ assert_equal true, @session.connected?
141
+ assert_nothing_raised do
142
+ @session.disconnect
143
+ end
144
+ assert_equal false, @session.connected?
145
+ end
146
+
147
+ def test_vnmsh_exec_cmd
148
+ assert_raise VNMSH::NotConnectedError do
149
+ @session.exec_cmd('show test')
150
+ end
151
+ @session.connect
152
+ assert_nothing_raised do
153
+ output = @session.exec_cmd('show test')
154
+ assert_equal 'Test Succeeded', output.readline.chomp
155
+ end
156
+ assert_nothing_raised do
157
+ output = @session.exec_cmd('show reconnect')
158
+ assert_equal 'Test Succeeded', output.readline.chomp
159
+ end
160
+ assert_raise VNMSH::NotConnectedError do
161
+ output = @session.exec_cmd('show noreconnect')
162
+ end
163
+ end
164
+ end
165
+
166
+ class VNMSHCommandTests < Test::Unit::TestCase
167
+
168
+ include VNMSHTestHelpers
169
+
170
+
171
+ def setup
172
+ SpecTools::Config.default_access_method = :cli
173
+ @orig_default_access_method = SpecTools::Config.default_access_method
174
+ create_temp_vnmsh(basecmds)
175
+ @session = VNMSH.new(tmp_specroot)
176
+ @session.connect
177
+ end
178
+
179
+ def test_vnmsh_show_alarms
180
+ assert_nothing_raised do
181
+ assert_not_nil alarms = @session.show_alarms(:standard)
182
+ end
183
+ assert_nothing_raised do
184
+ maintalarms = 0
185
+ assert_instance_of StringIO, alarms = @session.show_alarms(:all)
186
+ alarms.each do |alarm|
187
+ if alarm =~ /MAINT/
188
+ maintalarms = maintalarms + 1
189
+ end
190
+ end
191
+ #assert(maintalarms > 0)
192
+ end
193
+ assert_nothing_raised do
194
+ noresponses = 0
195
+ assert_not_nil alarms = @session.show_alarms(:standard,nil,:probcause)
196
+ alarms.each do |alarm|
197
+ if alarm =~ /RESPONDING TO/
198
+ noresponses = noresponses + 1
199
+ end
200
+ end
201
+ assert(noresponses > 0)
202
+ end
203
+ assert_nothing_raised do
204
+ assert_not_nil alarms = @session.show_alarms(:model,'0x400005c7')
205
+ #assert_match( /0x400005c7/, alarms.readline )
206
+ end
207
+
208
+ assert_nothing_raised do
209
+ assert_not_nil alarms = @session.show_alarms(:landscape,'0x400000')
210
+ assert_not_nil alarms.readline
211
+ end
212
+
213
+ assert_raise ArgumentError do
214
+ @session.show_alarms(:model,'bogus')
215
+ end
216
+
217
+ assert_raise ArgumentError do
218
+ @session.show_alarms(:landscape,'bogus')
219
+ end
220
+
221
+ end
222
+
223
+ def test_vnmsh_show_models
224
+ assert_nothing_raised do
225
+ assert_not_nil @session.show_models
226
+ end
227
+ assert_nothing_raised do
228
+ assert_not_nil models = @session.show_models({:landscape,'0x400000'})
229
+ assert_match(/0x40000025/, models.readline)
230
+ end
231
+ assert_nothing_raised do
232
+ assert_not_nil models = @session.show_models({:type,'0x13d0018'})
233
+ assert_match(/0x13d0018/,models.readline)
234
+ end
235
+
236
+ assert_nothing_raised do
237
+ assert_not_nil models = @session.show_models({:name,'DTM'})
238
+ assert_match(/0x40000178/, models.readline)
239
+ end
240
+
241
+ assert_nothing_raised do
242
+ assert_not_nil models = @session.show_models({:range,'0x40000000-0x40000010'})
243
+ assert_match(/0x40000003/,models.readline)
244
+ assert_match(/0x4000000d/,models.readline)
245
+ end
246
+
247
+ assert_nothing_raised do
248
+ assert_not_nil models = @session.show_models({:range,['0x40000000','0x40000010']})
249
+ assert_match(/0x40000003/,models.readline)
250
+ assert_match(/0x4000000d/,models.readline)
251
+ end
252
+
253
+ assert_raise ArgumentError do
254
+ @session.show_models({:mtype,'bogus'})
255
+ end
256
+
257
+ assert_raise ArgumentError do
258
+ @session.show_models({:landscape,'bogus'})
259
+ end
260
+
261
+ end
262
+
263
+ def test_vnmsh_seek
264
+ assert_nothing_raised do
265
+ assert_not_nil models = @session.seek('0x1006e','intspeclab01')
266
+ assert_match(/0x408cac/,models.readline)
267
+ end
268
+
269
+ specattr = SpecTools::Attr.new
270
+ specattr.id = '0x1006e'
271
+ specattr.value = 'intspeclab01'
272
+ assert_nothing_raised do
273
+ assert_not_nil models = @session.seek(specattr,nil,true)
274
+ assert_match(/0x408cb8/,models.readline)
275
+ end
276
+
277
+ assert_nothing_raised do
278
+ assert_not_nil models = @session.seek(specattr,nil,true,true)
279
+ assert_match(/0x408cb8/,models.readline)
280
+ end
281
+
282
+ assert_raise ArgumentError do
283
+ @session.seek('bogus')
284
+ end
285
+
286
+ end
287
+
288
+
289
+ def test_vnmsh_show_devices
290
+
291
+ assert_nothing_raised do
292
+ assert_not_nil @session.show_devices
293
+ end
294
+
295
+ assert_nothing_raised do
296
+ assert_not_nil @session.show_devices('0x400000')
297
+ end
298
+
299
+
300
+ assert_raise ArgumentError do
301
+ @session.show_devices('bogus')
302
+ end
303
+
304
+ end
305
+
306
+ def test_vnmsh_show_types
307
+
308
+ assert_nothing_raised do
309
+ assert_not_nil @session.show_types
310
+ end
311
+ assert_nothing_raised do
312
+ assert_not_nil @session.show_types({:landscape, '0x400000'})
313
+ end
314
+ assert_nothing_raised do
315
+ assert_not_nil @session.show_types({:flag,'D'})
316
+ end
317
+ assert_nothing_raised do
318
+ assert_not_nil types = @session.show_types({:range,'0x13d0000-0x13d00ff'})
319
+ assert_match(/0x13d0005/, types.readline)
320
+ assert_match(/0x13d0008/, types.readline)
321
+ end
322
+
323
+ assert_nothing_raised do
324
+ assert_not_nil types = @session.show_types({:range,['0x13d0000','0x13d00ff']})
325
+ assert_match(/0x13d0005/, types.readline)
326
+ assert_match(/0x13d0008/, types.readline)
327
+ end
328
+
329
+
330
+ assert_nothing_raised do
331
+ assert_not_nil types = @session.show_types({:name,'IcsLicenseMgr'})
332
+ assert_match(/0x1ad0002/, types.readline)
333
+ end
334
+
335
+ assert_raise ArgumentError do
336
+ @session.show_types({:landscape,'bogus'})
337
+ end
338
+
339
+ assert_raise ArgumentError do
340
+ @session.show_types({:bogus,'bogus'})
341
+ end
342
+
343
+ end
344
+
345
+ def test_vnmsh_show_relations
346
+
347
+ assert_nothing_raised do
348
+ assert_not_nil @session.show_relations
349
+ end
350
+
351
+ assert_nothing_raised do
352
+ assert_not_nil @session.show_relations('0x400000')
353
+ end
354
+
355
+ assert_raise ArgumentError do
356
+ @session.show_relations('bogus')
357
+ end
358
+
359
+ end
360
+
361
+ def test_vnmsh_show_associations
362
+
363
+ assert_nothing_raised do
364
+ assert_not_nil associations = @session.show_associations('mh=0x400005c7')
365
+ assert_match(/^0x400005c7/, associations.readline)
366
+ assert_match(/^0x400005c7/,associations.readline)
367
+ end
368
+ assert_raise ArgumentError do
369
+ @session.show_associations
370
+ end
371
+ assert_raise VNMSH::CommandError do
372
+ @session.show_associations("mh=bogus")
373
+ end
374
+ end
375
+
376
+ def test_vnmsh_show_parents
377
+
378
+ assert_nothing_raised do
379
+ assert_not_nil parents = @session.show_parents('0x4000004b')
380
+ assert_match(/0x40000042/, parents.readline)
381
+ end
382
+
383
+ assert_nothing_raised do
384
+ assert_not_nil parents = @session.show_parents('0x4000004b','Collects')
385
+ assert_match(/0x40000042/, parents.readline)
386
+
387
+ end
388
+
389
+ assert_raise VNMSH::CommandError do
390
+ @session.show_parents('0x400007','bogus')
391
+ end
392
+
393
+ assert_raise ArgumentError do
394
+ @session.show_parents('bogus')
395
+ end
396
+
397
+ end
398
+
399
+ def test_vnmsh_show_children
400
+
401
+ assert_nothing_raised do
402
+ assert_not_nil children = @session.show_children('0x400005cb')
403
+ assert_match(/0x40000cc0/, children.readline)
404
+ end
405
+
406
+ assert_nothing_raised do
407
+ assert_not_nil children = @session.show_children('0x400005cb','PossPrimApp')
408
+ assert_match(/0x400005d8/, children.readline)
409
+ end
410
+
411
+ assert_raise VNMSH::CommandError do
412
+ @session.show_children('0x400000','bogus')
413
+ end
414
+
415
+ assert_raise ArgumentError do
416
+ @session.show_children('bogus')
417
+ end
418
+
419
+ end
420
+
421
+ def test_vnmsh_show_events
422
+
423
+ assert_nothing_raised do
424
+ assert_not_nil events = @session.show_events
425
+ end
426
+
427
+ assert_nothing_raised do
428
+ assert_not_nil events = @session.show_events(:model,'0x400000')
429
+ assert_match(/09\/21\/2007/, events.readline)
430
+ end
431
+
432
+ assert_nothing_raised do
433
+ eventcount = 0
434
+ assert_not_nil events = @session.show_events(:landscape,'0x400000')
435
+ events.each do
436
+ eventcount = eventcount + 1
437
+ end
438
+ assert_equal 2000, eventcount
439
+ end
440
+
441
+ assert_nothing_raised do
442
+ eventcount = 0
443
+ assert_not_nil events = @session.show_events(:model,'0x400000',:all)
444
+ events.each do
445
+ eventcount = eventcount + 1
446
+ end
447
+ assert_equal 10000, eventcount
448
+ end
449
+
450
+ assert_nothing_raised do
451
+ noresponses = 0
452
+ assert_not_nil events = @session.show_events(:model,'0x400000',nil,true)
453
+ events.each do |event|
454
+ if event =~ /SpectroSERVER has disconnected/
455
+ noresponses = noresponses + 1
456
+ end
457
+ end
458
+ assert(noresponses > 0)
459
+ end
460
+
461
+ assert_nothing_raised do
462
+ eventcount = 0
463
+ assert_not_nil events = @session.show_events(:model,'0x400000',5)
464
+ events.each do
465
+ eventcount = eventcount + 1
466
+ end
467
+ assert_equal 5, eventcount
468
+ end
469
+
470
+ assert_raise ArgumentError do
471
+ @session.show_events(:model,'bogus')
472
+ end
473
+
474
+ assert_raise ArgumentError do
475
+ @session.show_events(:landscape,'bogus')
476
+ end
477
+
478
+ end
479
+
480
+ def test_vnmsh_show_inheritence
481
+
482
+ assert_nothing_raised do
483
+ assert_not_nil types = @session.show_inheritance('0x13d000d')
484
+ assert_match(/0x102dd/, types.readline)
485
+ end
486
+
487
+ assert_nothing_raised do
488
+ assert_not_nil types = @session.show_inheritance('0x13d000d', '0x400000')
489
+ assert_match(/0x102dd/, types.readline)
490
+ end
491
+
492
+ assert_raise ArgumentError do
493
+ @session.show_inheritance
494
+ end
495
+
496
+ assert_raise ArgumentError do
497
+ @session.show_inheritance('bogus')
498
+ end
499
+
500
+ assert_raise ArgumentError do
501
+ @session.show_inheritance('0x13d000d', 'bogus')
502
+ end
503
+
504
+ end
505
+
506
+ def test_vnmsh_show_rules
507
+
508
+ assert_nothing_raised do
509
+ assert_not_nil rules = @session.show_rules('Collects')
510
+ assert_match(/0x3f50001/, rules.readline)
511
+ end
512
+
513
+ assert_nothing_raised do
514
+ assert_not_nil rules = @session.show_rules('Collects', '0x400000')
515
+ assert_match(/0x3f50001/, rules.readline)
516
+ end
517
+
518
+ assert_raise ArgumentError do
519
+ @session.show_rules
520
+ end
521
+
522
+ assert_raise VNMSH::CommandError do
523
+ @session.show_rules('bogus')
524
+ end
525
+
526
+ assert_raise ArgumentError do
527
+ @session.show_rules('Collects','bogus')
528
+ end
529
+
530
+ end
531
+
532
+ def test_vnmsh_show_enumerations
533
+
534
+ assert_nothing_raised do
535
+ assert_not_nil enumerations = @session.show_enumerations
536
+ assert_match(/0x10004/, enumerations.readline)
537
+ end
538
+
539
+ assert_nothing_raised do
540
+ assert_not_nil enumerations = @session.show_enumerations(:landscape,'0x400000')
541
+ assert_match(/0x10004/, enumerations.readline)
542
+ end
543
+
544
+ assert_nothing_raised do
545
+ assert_not_nil enumerations = @session.show_enumerations(:attr,'0x13d031e')
546
+ assert_match(/0x13d031e/, enumerations.readline)
547
+ end
548
+
549
+ assert_nothing_raised do
550
+ assert_not_nil enumerations = @session.show_enumerations(:mtype,'0x13d0018')
551
+ assert_match(/0x10004/, enumerations.readline)
552
+ end
553
+
554
+ assert_raise ArgumentError do
555
+ @session.show_enumerations(:mtype,'bogus')
556
+ end
557
+
558
+ assert_raise ArgumentError do
559
+ @session.show_enumerations(:mtype,'bogus')
560
+ end
561
+
562
+ assert_raise ArgumentError do
563
+ @session.show_enumerations(:landscape,'bogus')
564
+ end
565
+
566
+ end
567
+
568
+ def test_vnmsh_show_watch
569
+
570
+ assert_nothing_raised do
571
+ assert_not_nil watches = @session.show_watch('0x4000004b')
572
+ assert_match(/0x13d0190/, watches.readline)
573
+ end
574
+
575
+ assert_raise ArgumentError do
576
+ @session.show_watch('bogus')
577
+ end
578
+
579
+ end
580
+
581
+ def test_vnmsh_show_landscapes
582
+
583
+ assert_nothing_raised do
584
+ assert_not_nil landscapes = @session.show_landscapes
585
+ assert_match(/0x50000000/, landscapes.readline)
586
+ end
587
+ end
588
+
589
+
590
+
591
+ def test_vnmsh_show_attributes
592
+
593
+ assert_nothing_raised do
594
+ assert_not_nil attrs = @session.show_attributes(:model,'0x400005c7')
595
+ assert_match(/0x10000/, attrs.readline)
596
+ end
597
+
598
+ assert_nothing_raised do
599
+ assert_not_nil attrs = @session.show_attributes(:model,'0x400005c7',{:id,'0x10030'})
600
+ assert_match(/0x10030/, attrs.readline)
601
+ end
602
+
603
+ assert_nothing_raised do
604
+ assert_not_nil attrs = @session.show_attributes(:model,'0x400005c7',{:instance,['0x12a53','192.2.20.2']})
605
+ assert_match(/0x12a53/, attrs.readline)
606
+ end
607
+
608
+ specattr = Attr.new('0x12a53',nil,'192.2.20.2')
609
+ assert_nothing_raised do
610
+ assert_not_nil attrs = @session.show_attributes(:model,'0x400005c7',{:instance,[specattr,'192.2.20.2']})
611
+ assert_match(/0x12a53/, attrs.readline)
612
+ end
613
+
614
+
615
+ #assert_nothing_raised do
616
+ # assert_not_nil attrs = @session.show_attributes('mth=0x13d0018','attrname=MAC_Address')
617
+ # assert_match(/0x110df/, attrs.readline)
618
+ #end
619
+
620
+ assert_nothing_raised do
621
+ assert_not_nil attrs = @session.show_attributes(:model,'0x400005c7',{:name,'Condition'})
622
+ assert_match(/0x1000a/, attrs.readline)
623
+ end
624
+
625
+ assert_nothing_raised do
626
+ assert_not_nil attrs = @session.show_attributes(:model,'0x400005c7',{:range,'0x10000-0x10010'})
627
+ assert_match(/Modeltype_Name/, attrs.readline)
628
+ end
629
+
630
+ assert_nothing_raised do
631
+ assert_not_nil attrs = @session.show_attributes(:model,'0x400005c7',{:range,['0x10000','0x10010']})
632
+ assert_match(/Modeltype_Name/, attrs.readline)
633
+ end
634
+
635
+ assert_nothing_raised do
636
+ assert_not_nil attrs = @session.show_attributes(:model,'0x4000017b',{:id,'0x13d0315'},true)
637
+ assert_match(/0x13d0315/, attrs.readline)
638
+ end
639
+
640
+ assert_nothing_raised do
641
+ assert_not_nil attrs = @session.show_attributes(:mtype,'0x13d0018',{:flag,'O'})
642
+ assert_match(/0x10009/, attrs.readline)
643
+ end
644
+
645
+ assert_nothing_raised do
646
+ assert_not_nil attrs = @session.show_attributes(:mtype,'0x13d0018')
647
+ assert_match(/0x10000/, attrs.readline)
648
+ end
649
+
650
+ assert_raise ArgumentError do
651
+ @session.show_attributes(:model,'bogus')
652
+ end
653
+
654
+ assert_raise ArgumentError do
655
+ @session.show_attributes(:mtype,'bogus')
656
+ end
657
+
658
+ assert_raise ArgumentError do
659
+ @session.show_attributes(:model,'0x400005c7',{:id,'bogus'})
660
+ end
661
+
662
+ assert_raise VNMSH::CommandError do
663
+ @session.show_attributes(:model,'0x400005c7',{:instance,['0x1000a','12345']})
664
+ end
665
+
666
+ assert_raise ArgumentError do
667
+ @session.show_attributes(:model,'0x400005c7',{:instance,['0x12bfa','bogus']})
668
+ end
669
+
670
+ assert_raise ArgumentError do
671
+ @session.show_attributes(:mtype,'0x13d0018',{:landscape,'bogus'})
672
+ end
673
+ end
674
+
675
+ def test_vnmsh_destroy_model
676
+ assert_nothing_raised do
677
+ assert @session.destroy_model('0x40b42b')
678
+ end
679
+
680
+ assert_raise ArgumentError do
681
+ @session.destroy_model('bogus')
682
+ end
683
+ end
684
+
685
+ def test_vnmsh_destroy_association
686
+ assert_nothing_raised do
687
+ assert @session.destroy_association('Connects_to','0x4065e8','0x40b63e')
688
+ end
689
+
690
+ assert_raise VNMSH::CommandError do
691
+ @session.destroy_association('bogus','0x4065e8','0x40b63e')
692
+ end
693
+ end
694
+
695
+ def test_vnmsh_destroy_alarm
696
+ assert_nothing_raised do
697
+ assert @session.destroy_alarm('7888881','0x4000000')
698
+ end
699
+
700
+ assert_raise ArgumentError do
701
+ @session.destroy_alarm('bogus')
702
+ end
703
+ end
704
+
705
+ def test_vnmsh_discover_device
706
+ assert_nothing_raised do
707
+ assert model = @session.discover_device('192.168.1.1','public')
708
+ assert_equal '0x40b8cf', model.handle
709
+ end
710
+ end
711
+
712
+ def test_model_discover
713
+ VNMSH.default_session = @session
714
+ assert_nothing_raised do
715
+ assert model = Model.discover('192.168.1.1','public')
716
+ assert_equal '0x40b8cf', model.handle
717
+ end
718
+ end
719
+
720
+ def test_vnmsh_create_model
721
+ mtype = MType.new('0x3dc0001')
722
+ newattrs = []
723
+ newattrs.push Attr.new('0xfffff','test1','','testval1')
724
+ newattrs.push Attr.new('0x4ffff','test2','','testval2')
725
+
726
+ assert_raise ArgumentError do
727
+ model = @session.create_model('bogus',Attr.new('test','testval'))
728
+ end
729
+
730
+ assert_raise ArgumentError do
731
+ model = @session.create_model('0x3dc0001','bogus')
732
+ end
733
+
734
+ assert_nothing_raised do
735
+ assert model = @session.create_model('0x3dc0001',newattrs)
736
+ assert_equal '0x40b95a', model.handle
737
+ assert_equal newattrs, model.attrs
738
+ assert_equal '0x3dc0001', model.type.handle
739
+ end
740
+
741
+ assert_nothing_raised do
742
+ assert model = @session.create_model(mtype,newattrs)
743
+ assert_equal '0x40b95a', model.handle
744
+ assert_equal newattrs, model.attrs
745
+ assert_equal '0x3dc0001', model.type.handle
746
+ end
747
+ end
748
+
749
+ def test_create_model
750
+ VNMSH.default_session = @session
751
+ newattrs = []
752
+ newattrs.push Attr.new('0xfffff','test1','','testval1')
753
+ newattrs.push Attr.new('0x4ffff','test2','','testval2')
754
+ mtype = MType.new('0x3dc0001')
755
+ assert_nothing_raised do
756
+ assert model = Model.create('0x3dc0001',newattrs)
757
+ assert_equal '0x40b95a', model.handle
758
+ assert_equal newattrs, model.attrs
759
+ end
760
+ assert_nothing_raised do
761
+ assert model = Model.create(mtype,newattrs)
762
+ assert_equal '0x40b95a', model.handle
763
+ assert_equal newattrs, model.attrs
764
+ assert_equal '0x3dc0001', model.type.handle
765
+ end
766
+ assert_nothing_raised do
767
+ assert model = mtype.create_model(newattrs)
768
+ assert_equal '0x40b95a', model.handle
769
+ assert_equal newattrs, model.attrs
770
+ assert_equal '0x3dc0001', model.type.handle
771
+ end
772
+
773
+ end
774
+
775
+
776
+
777
+ def test_vnmsh_update_model
778
+ newattrs = []
779
+ newattrs.push Attr.new('0x12c06','SshPortNum','222')
780
+ newattrs.push Attr.new('0x1006e','Model_Name','NewModel')
781
+
782
+ assert_raise ArgumentError do
783
+ @session.update_model('bogus',Attr.new('test','testname'))
784
+ end
785
+
786
+ assert_raise ArgumentError do
787
+ @session.update_model('0x40b737','bogus')
788
+ end
789
+
790
+ assert_nothing_raised do
791
+ assert attrs = @session.update_model('0x40b737',newattrs)
792
+ end
793
+
794
+ assert_nothing_raised do
795
+ assert attrs = @session.update_model(Model.new('0x40b737'),newattrs)
796
+ end
797
+ end
798
+
799
+ def test_model_save_attrs
800
+ newattrs = []
801
+ newattrs.push Attr.new('0x12c06','SshPortNum','222')
802
+ newattrs.push Attr.new('0x1006e','Model_Name','NewModel')
803
+ model = Model.new('0x40b737')
804
+ assert_nothing_raised do
805
+ assert model.update_attrs(newattrs)
806
+ end
807
+ assert_nothing_raised do
808
+ assert model.update_attrs(newattrs,true)
809
+ newattrs.each do |specattr|
810
+ assert_equal specattr, model.attrs[specattr.id]
811
+ end
812
+ end
813
+ end
814
+
815
+
816
+
817
+ def test_vnmsh_update_alarm
818
+ alarminfo = Hash.new
819
+ alarminfo[:ticket] = '12345'
820
+ alarminfo[:assign] = 'dpantke'
821
+ alarminfo[:status] = 'Test'
822
+ alarminfo[:ack] = true
823
+ alarminfo[:url] = 'http://www.appriss.com'
824
+ assert_nothing_raised do
825
+ assert @session.update_alarm('3699400',alarminfo)
826
+ end
827
+ assert_nothing_raised do
828
+ assert @session.update_alarm(Alarm.new('3699400'),:status,'Test2',true)
829
+ end
830
+ assert_raise ArgumentError do
831
+ @session.update_alarm('3699400',:bogus,'test')
832
+ end
833
+ assert_raise ArgumentError do
834
+ @session.update_alarm('3699400',:status)
835
+ end
836
+ alarminfo[:bogus] = 'bogus'
837
+ assert_raise ArgumentError do
838
+ @session.update_alarm('3699400',alarminfo)
839
+ end
840
+ end
841
+
842
+ def test_save_alarm
843
+ VNMSH.default_session = @session
844
+ alarm = Alarm.new('3699400')
845
+ alarm.assignment = 'dpantke'
846
+ alarm.status = 'Test'
847
+ alarm.ack = true
848
+ alarm.url = "http://www.test.com"
849
+ alarm.ticket = 'ticket12345'
850
+ assert_nothing_raised do
851
+ assert alarm.save
852
+ end
853
+
854
+ end
855
+
856
+ def test_vnmsh_create_association
857
+ assert_nothing_raised do
858
+ assert assoc = @session.create_association('Collects','0x40b736','0x40b7d3')
859
+ assert_instance_of SpecTools::Association, assoc
860
+ end
861
+
862
+ left_model = Model.new
863
+ right_model = Model.new
864
+ left_model.handle = '0x40b736'
865
+ right_model.handle = '0x40b7d3'
866
+ rel = Relation.new('Collects')
867
+ assert_nothing_raised do
868
+ assert assoc = @session.create_association(rel,left_model,right_model)
869
+ assert_instance_of SpecTools::Association, assoc
870
+ end
871
+ end
872
+
873
+ def test_associate
874
+ VNMSH.default_session = @session
875
+ left_model = Model.new('0x40b736')
876
+ right_model = Model.new('0x40b7d3')
877
+ rel = Relation.new('Collects')
878
+ assert_nothing_raised do
879
+ assert assoc = left_model.associate(:left,right_model,rel)
880
+ assert_instance_of SpecTools::Association, assoc
881
+ assoc = nil
882
+ assert assoc = right_model.associate(:right,left_model,rel)
883
+ assert_instance_of SpecTools::Association, assoc
884
+ assoc = nil
885
+ assert assoc = Association.create(rel,left_model,right_model)
886
+ assert_instance_of SpecTools::Association, assoc
887
+ assoc = nil
888
+ assert assoc = rel.associate(left_model,right_model)
889
+ assert_instance_of SpecTools::Association, assoc
890
+ end
891
+ assert_raise ArgumentError do
892
+ left_model = Model.new('0x40b736')
893
+ right_model = Model.new('0x40b7d3')
894
+ rel = Relation.new('Collects')
895
+ left_model.associate(:bogus,right_model,rel)
896
+ end
897
+
898
+ end
899
+
900
+
901
+
902
+
903
+ def test_vnmsh_create_alarm
904
+ assert_nothing_raised do
905
+ assert alarm = @session.create_alarm('CRITICAL','0x48fffc5','0x40b7d3')
906
+ assert_instance_of SpecTools::Alarm, alarm
907
+ end
908
+
909
+ srcalarm = Alarm.new
910
+ srcalarm.causeid = '0x48fffc5'
911
+ model = Model.new('0x40b7d3')
912
+
913
+ assert_nothing_raised do
914
+ assert alarm = @session.create_alarm('CRITICAL',srcalarm,model,true)
915
+ assert_instance_of SpecTools::Alarm, alarm
916
+ end
917
+
918
+ assert_raise ArgumentError do
919
+ @session.create_alarm('bogus',srcalarm,model)
920
+ end
921
+ end
922
+
923
+ def test_vnmsh_create_event
924
+ assert_nothing_raised do
925
+ assert @session.create_event('0x40b737','0x04f0fff7','Test Event')
926
+ end
927
+
928
+ assert_nothing_raised do
929
+ assert @session.create_event(Model.new('0x40b737'),Event.new(nil,'0x04f0fff7',Model.new,'Test Event'))
930
+ end
931
+ end
932
+
933
+
934
+ def test_mtype_parse
935
+ types_output = @session.show_types
936
+ mtype = SpecTools::MType.parse(types_output.readline)
937
+ assert_instance_of SpecTools::MType, mtype
938
+ assert_equal '0x10000', mtype.handle
939
+ assert_equal 'Root', mtype.name
940
+ assert_equal true, mtype.visible
941
+ assert_equal true, mtype.derivable
942
+ end
943
+
944
+ def test_association_parse
945
+ assoc_output = @session.show_associations('mh=0x400005c7')
946
+ association = SpecTools::Association.parse(assoc_output.readline)
947
+ assert_instance_of SpecTools::Association, association
948
+ assert_equal '0x400005c7', association.left_model.handle
949
+ assert_equal 'Ped20-BD6808i', association.left_model.name
950
+ assert_equal 'Contains', association.relation.name
951
+ assert_equal '0x40000c68', association.right_model.handle
952
+ assert_equal 'ExtrMod', association.right_model.name
953
+ end
954
+
955
+ def test_association_parse_child
956
+
957
+ assoc_output = @session.show_children('0x400005cb')
958
+ association = SpecTools::Association.parse_child(assoc_output.readline)
959
+ assert_equal '0x40000cc0', association.right_model.handle
960
+ assert_equal '0.20.E0-66.93.87', association.right_model.name
961
+ assert_equal '0x102c8', association.right_model.type.handle
962
+ assert_equal 'Physical_Addr', association.right_model.type.name
963
+ assert_equal 'Collects', association.relation.name
964
+
965
+ end
966
+
967
+ def test_attribute_parse_mh
968
+
969
+ attr_output = @session.show_attributes(:model,'0x400005c7',{:instance,['0x12a53','192.2.20.2']})
970
+ specattr = SpecTools::Attr.parse_mh(attr_output.readline)
971
+ assert_instance_of SpecTools::Attr, specattr
972
+ assert_equal '0x12a53', specattr.id
973
+ assert_equal 'deviceIPAddressList', specattr.name
974
+ assert_equal specattr.value_table['192.2.20.2'], '20030'
975
+
976
+ attr_output = @session.show_attributes(:model,'0x400005c7')
977
+ specattr = SpecTools::Attr.parse_mh(attr_output.readline)
978
+ assert_instance_of SpecTools::Attr, specattr
979
+ assert_equal '0x10000', specattr.id
980
+ assert_equal 'Modeltype_Name', specattr.name
981
+ assert_equal 'ExtrDevice', specattr.value
982
+
983
+ end
984
+
985
+ def test_attribute_parse_mth
986
+
987
+ attr_output = @session.show_attributes(:mtype,'0x13d0018')
988
+ specattr = SpecTools::Attr.parse_mth(attr_output.readline)
989
+ assert_instance_of SpecTools::Attr, specattr
990
+ assert_equal '0x10000', specattr.id
991
+ assert_equal 'Modeltype_Name', specattr.name
992
+ assert_equal 'Text String', specattr.type
993
+ assert_equal true, specattr.readable
994
+ assert_equal true, specattr.shared
995
+ assert_equal true, specattr.memory
996
+
997
+ end
998
+
999
+ def test_event_parse
1000
+
1001
+ event_output = @session.show_events
1002
+ event = SpecTools::Event.parse(event_output.readline)
1003
+ assert_instance_of SpecTools::Event, event
1004
+ assert_equal Time.local(2007,9,21,11,15,43), event.time
1005
+ assert_equal '0x10105', event.type
1006
+ assert_equal '0x40000030', event.model.handle
1007
+ assert_equal 'kloeber', event.model.name
1008
+ assert_equal 'User', event.model.type.name
1009
+
1010
+ end
1011
+
1012
+ def test_mtype_parse_inheritance
1013
+
1014
+ mtype_output = @session.show_inheritance('0x13d000d')
1015
+ mtype = SpecTools::MType.parse_inheritance(mtype_output.readline)
1016
+ assert_instance_of SpecTools::MType, mtype
1017
+ assert_equal '0x102dd', mtype.handle
1018
+ assert_equal 'ModelFragment', mtype.name
1019
+ assert_equal true, mtype.visible
1020
+ assert_equal true, mtype.derivable
1021
+ assert_equal 'Base', mtype.inheritance
1022
+
1023
+ end
1024
+
1025
+ def test_landscape_parse
1026
+
1027
+ lscape_output = @session.show_landscapes
1028
+ landscape = SpecTools::Landscape.parse(lscape_output.readline)
1029
+ assert_instance_of SpecTools::Landscape, landscape
1030
+ assert_equal 'S81-2', landscape.ss
1031
+ assert_equal '10', landscape.precedence
1032
+ assert_equal '0xbeef', landscape.port
1033
+ assert_equal '0x10101', landscape.service
1034
+ assert_equal '0x50000000', landscape.handle
1035
+
1036
+ end
1037
+
1038
+ def test_model_parse
1039
+
1040
+ model_output = @session.show_models
1041
+ model = SpecTools::Model.parse(model_output.readline)
1042
+ assert_instance_of SpecTools::Model, model
1043
+ assert_equal '0x40000025', model.handle
1044
+ assert_equal 'MgmtInventory', model.name
1045
+ assert_equal '0x25e0000', model.type.handle
1046
+ assert_equal 'MgmtInventory', model.type.name
1047
+
1048
+ end
1049
+
1050
+ def test_association_parse_parent
1051
+
1052
+ assoc_output = @session.show_parents('0x4000004b')
1053
+ assoc = SpecTools::Association.parse_parent(assoc_output.readline)
1054
+ assert_instance_of SpecTools::Association, assoc
1055
+ assert_equal '0x40000042', assoc.left_model.handle
1056
+ assert_equal 'TopService', assoc.left_model.name
1057
+ assert_equal '0x13d0019', assoc.left_model.type.handle
1058
+ assert_equal 'Top_Service', assoc.left_model.type.name
1059
+ assert_equal 'Requires', assoc.relation.name
1060
+
1061
+ end
1062
+
1063
+ def test_relation_parse
1064
+
1065
+ rel_output = @session.show_relations
1066
+ rel = SpecTools::Relation.parse(rel_output.readline)
1067
+ assert_instance_of SpecTools::Relation, rel
1068
+ assert_equal 'Contains', rel.name
1069
+ assert_equal 'ONE_TO_MANY', rel.type
1070
+
1071
+ end
1072
+
1073
+ def test_rule_parse
1074
+
1075
+ rules_output = @session.show_rules('Collects')
1076
+ rule = SpecTools::Rule.parse(rules_output.readline)
1077
+ assert_instance_of SpecTools::Rule, rule
1078
+ assert_equal '0x3f50001', rule.left_mtype.handle
1079
+ assert_equal 'BbSrvContainer', rule.left_mtype.name
1080
+ assert_equal '0x3f50001', rule.right_mtype.handle
1081
+ assert_equal 'BbSrvContainer', rule.right_mtype.name
1082
+
1083
+ end
1084
+
1085
+ def test_watch_parse
1086
+
1087
+ watch_output = @session.show_watch('0x4000004b')
1088
+ watch = SpecTools::Watch.parse(watch_output.readline)
1089
+ assert_instance_of SpecTools::Watch, watch
1090
+ assert_equal '0x13d0190', watch.id
1091
+ assert_equal 'TotalRedTime', watch.name
1092
+ assert_equal 'PollLog/Calc', watch.type
1093
+ assert_equal 'ACTIVE', watch.status
1094
+
1095
+ end
1096
+
1097
+ def test_alarm_parse
1098
+
1099
+ alarm_output = @session.show_alarms
1100
+ alarm = SpecTools::Alarm.parse(alarm_output.readline)
1101
+ assert_instance_of SpecTools::Alarm, alarm
1102
+ assert_equal '98', alarm.id
1103
+ assert_equal Time.local(2007,9,20,17,19,13), alarm.time
1104
+ assert_equal '0x13df00c', alarm.causeid
1105
+ assert_equal '0x40000175', alarm.model.handle
1106
+ assert_equal 'Gold SLA', alarm.model.name
1107
+ assert_equal 'SLA', alarm.model.type.name
1108
+ assert_equal 'CRITICAL', alarm.severity
1109
+ assert_equal false, alarm.ack
1110
+ assert_equal false, alarm.stale
1111
+
1112
+ end
1113
+
1114
+ def test_model_cli_find_all
1115
+ VNMSH.default_session = @session
1116
+
1117
+ models = SpecTools::Model.cli_find
1118
+ assert_equal 2251, models.size
1119
+ assert_equal '0x40000028', models[1].handle
1120
+ assert_equal 'Modeling Gateway', models[1].name
1121
+ assert_equal '0x4040000', models[1].type.handle
1122
+ assert_equal 'ModelingGatewy', models[1].type.name
1123
+
1124
+ assert_equal '0x40001240', models.last.handle
1125
+ assert_equal '802.3_Segment', models.last.name
1126
+ assert_equal '0x100ae', models.last.type.handle
1127
+ assert_equal 'Fanout', models.last.type.name
1128
+
1129
+ VNMSH.default_session = nil
1130
+ models = nil
1131
+ assert_raise ArgumentError do
1132
+ SpecTools::Model.cli_find
1133
+ end
1134
+ models = SpecTools::Model.cli_find(nil,nil,@session)
1135
+ assert_equal 2251, models.size
1136
+
1137
+
1138
+ end
1139
+
1140
+ def test_type_cli_find_all
1141
+ VNMSH.default_session = @session
1142
+
1143
+ mtypes = SpecTools::MType.cli_find
1144
+ assert_equal 4209, mtypes.size
1145
+ assert_equal '0x10001', mtypes[1].handle
1146
+ assert_equal 'CabletronFrags', mtypes[1].name
1147
+ assert_equal true, mtypes[1].visible
1148
+ assert_equal true, mtypes[1].derivable
1149
+
1150
+ assert_equal '0xfff00001', mtypes.last.handle
1151
+ assert_equal 'IBUS-MIB', mtypes.last.name
1152
+ assert_equal true, mtypes.last.visible
1153
+ assert_equal true, mtypes.last.derivable
1154
+
1155
+ VNMSH.default_session = nil
1156
+ mtypes = nil
1157
+ assert_raise ArgumentError do
1158
+ SpecTools::MType.cli_find
1159
+ end
1160
+ mtypes = SpecTools::MType.cli_find(nil,@session)
1161
+ assert_equal 4209, mtypes.size
1162
+
1163
+ end
1164
+
1165
+ def test_alarm_cli_find
1166
+ VNMSH.default_session = @session
1167
+
1168
+ alarms = SpecTools::Alarm.cli_find
1169
+ assert_equal 9, alarms.size
1170
+ assert_equal '89', alarms[1].id
1171
+ assert_equal Time.local(2007,9,20,17,19,13), alarms[1].time
1172
+ assert_equal '0x13df00d', alarms[1].causeid
1173
+ assert_equal '0x40000175', alarms[1].model.handle
1174
+ assert_equal 'Gold SLA', alarms[1].model.name
1175
+ assert_equal 'SLA', alarms[1].model.type.name
1176
+ assert_equal 'CRITICAL', alarms[1].severity
1177
+
1178
+ assert_equal '3784', alarms.last.id
1179
+ assert_equal Time.local(2007,9,20,18,30,37), alarms.last.time
1180
+ assert_equal '0x10519', alarms.last.causeid
1181
+ assert_equal '0x400005ca', alarms.last.model.handle
1182
+ assert_equal 'ped90-a3804', alarms.last.model.name
1183
+ assert_equal 'ExtrDevice', alarms.last.model.type.name
1184
+ assert_equal 'MINOR', alarms.last.severity
1185
+
1186
+ VNMSH.default_session = nil
1187
+ alarms = nil
1188
+ assert_raise ArgumentError do
1189
+ SpecTools::Alarm.cli_find(:all)
1190
+ end
1191
+ assert_equal 10, SpecTools::Alarm.cli_find(:all,nil,nil,@session).size
1192
+ end
1193
+
1194
+ def test_event_cli_find_all
1195
+ VNMSH.default_session = @session
1196
+
1197
+ events = SpecTools::Event.cli_find
1198
+ assert_equal 2000, events.size
1199
+ assert_equal Time.local(2007,9,21,11,15,41), events[1].time
1200
+ assert_equal '0x10103', events[1].type
1201
+ assert_equal '0x40000030', events[1].model.handle
1202
+ assert_equal 'kloeber', events[1].model.name
1203
+ assert_equal 'User', events[1].model.type.name
1204
+
1205
+ assert_equal Time.local(2007,9,20,18,51,20), events.last.time
1206
+
1207
+ VNMSH.default_session = nil
1208
+ events = nil
1209
+ assert_raise ArgumentError do
1210
+ SpecTools::Event.cli_find(:all)
1211
+ end
1212
+ events = SpecTools::Event.cli_find(:all,nil,nil,nil,@session)
1213
+ assert_equal 2000,events.size
1214
+
1215
+ end
1216
+
1217
+ def test_landscape_cli_find_all
1218
+ VNMSH.default_session = @session
1219
+
1220
+ landscapes = SpecTools::Landscape.get_landscapes
1221
+ assert_equal 2, landscapes.size
1222
+ assert_equal 'S81-2', landscapes.first.ss
1223
+ assert_equal '10', landscapes.first.precedence
1224
+ assert_equal '0xbeef', landscapes.first.port
1225
+ assert_equal '0x10101', landscapes.first.service
1226
+ assert_equal '0x50000000', landscapes.first.handle
1227
+
1228
+ VNMSH.default_session = nil
1229
+ landscapes = nil
1230
+ assert_raise ArgumentError do
1231
+ SpecTools::Landscape.get_landscapes
1232
+
1233
+ end
1234
+ landscapes = SpecTools::Landscape.get_landscapes(@session)
1235
+ assert_equal 2, landscapes.size
1236
+
1237
+ end
1238
+
1239
+ def test_relation_cli_find_all
1240
+ VNMSH.default_session = @session
1241
+
1242
+ relations = SpecTools::Relation.cli_find
1243
+ assert_equal 150, relations.size
1244
+ assert_equal 'Collects', relations[1].name
1245
+ assert_equal 'ONE_TO_MANY', relations[1].type
1246
+
1247
+ assert_equal 'QosUsesApp', relations.last.name
1248
+ assert_equal 'MANY_TO_MANY', relations.last.type
1249
+
1250
+ VNMSH.default_session = nil
1251
+ assert_raise ArgumentError do
1252
+ relations = SpecTools::Relation.cli_find(:all)
1253
+ end
1254
+
1255
+ relations = nil
1256
+ relations = SpecTools::Relation.cli_find(nil,@session)
1257
+ assert_equal 150, relations.size
1258
+
1259
+ end
1260
+
1261
+ def test_model_find
1262
+
1263
+ assert_equal 2251, SpecTools::Model.find(nil,nil,@session).size
1264
+
1265
+ assert_equal 20, SpecTools::Model.find(nil,true,@session).size
1266
+
1267
+ assert_equal 17, SpecTools::Model.find({:range,['0x40000000','0x40000010']},nil,@session).size
1268
+ assert_raise ArgumentError do
1269
+ SpecTools::Model.find({:range,['bogus','0x400020']},nil,@session)
1270
+ end
1271
+
1272
+ assert_raise ArgumentError do
1273
+ SpecTools::Model.find({:range,['0x400000','bogus']},nil,@session)
1274
+ end
1275
+
1276
+ assert_equal '0x40000178', SpecTools::Model.find({:name,'DTM'},false,@session).first.handle
1277
+
1278
+ assert_equal 'S3', SpecTools::Model.find({:type,'0x13d0018'},nil,@session).first.name
1279
+ assert_equal 'S3', SpecTools::Model.find({:type,MType.new('0x13d0018')},nil,@session).first.name
1280
+
1281
+ assert_raise ArgumentError do
1282
+ SpecTools::Model.find({:mtype,'bogus'})
1283
+ end
1284
+
1285
+ assert_equal 1, SpecTools::Model.find_by_attr('0x1006e','intspeclab01',false,false,@session).size
1286
+ assert_equal 1, SpecTools::Model.find_by_attr(Attr.new('0x1006e',nil,'intspeclab01'),false,false,@session).size
1287
+
1288
+ assert_equal 16,SpecTools::Model.find_by_attr('0x1006e','intspeclab01',true,false,@session).size
1289
+ assert_raise ArgumentError do
1290
+ SpecTools::Model.find_by_attr(Attr.new,false,false,@session)
1291
+ end
1292
+ assert_raise ArgumentError do
1293
+ SpecTools::Model.find_by_attr('bogus',nil,false,false,@session)
1294
+ end
1295
+
1296
+ end
1297
+
1298
+ def test_mtype_find
1299
+ assert_equal 4209, SpecTools::MType.find(nil,@session).size
1300
+ assert_equal 3136, SpecTools::MType.find({:flag,:derivable},@session).size
1301
+ assert_equal 54, SpecTools::MType.find({:range,['0x13d0000','0x13d00ff']},@session).size
1302
+ assert_raise ArgumentError do
1303
+ SpecTools::MType.find({:range,['bogus','0x3ccffff']},@session)
1304
+ end
1305
+ assert_raise ArgumentError do
1306
+ SpecTools::MType.find({:range,['0x3cc0000','bogus']},@session)
1307
+ end
1308
+ assert_equal 1, SpecTools::MType.find({:name,'IcsLicenseMgr'},@session).size
1309
+ end
1310
+
1311
+ def test_alarm_find
1312
+ assert_equal 9, SpecTools::Alarm.find(:standard,nil,nil,@session).size
1313
+ #assert_equal '', SpecTools::Alarm.find('0x40313f',@session).first.model.name
1314
+ assert_match(/service has been unavailable/,SpecTools::Alarm.find(:standard,nil,true,@session)[1].message)
1315
+ end
1316
+
1317
+ def test_event_find
1318
+ assert_equal 2000, SpecTools::Event.find(:all,nil,nil,nil,@session).size
1319
+ assert_equal 10000, SpecTools::Event.find(:all,nil,:all,nil,@session).size
1320
+ assert_equal 5, SpecTools::Event.find(:all,nil,5,nil,@session).size
1321
+ assert_equal 2000, SpecTools::Event.find(:model,'0x400000',nil,nil,@session).size
1322
+ assert_match(/SpectroSERVER has disconnected/,SpecTools::Event.find(:all,nil,nil,true,@session).first.message)
1323
+ assert_equal 2000, SpecTools::Event.find(:model,'0x400000',nil,nil,@session).size
1324
+ end
1325
+
1326
+ def test_landscape_get
1327
+ assert_equal 2, SpecTools::Landscape.get_landscapes(@session).size
1328
+ end
1329
+
1330
+ def test_relation_find_all
1331
+ assert_equal 150, SpecTools::Relation.find(nil,@session).size
1332
+ end
1333
+
1334
+ def test_cli_attr_get
1335
+ VNMSH.default_session = @session
1336
+ model = SpecTools::Model.new('0x400005c7')
1337
+ attrs = model.cli_get_attrs
1338
+ model.cli_get_attrs!
1339
+ assert_equal attrs.size, model.attrs.size
1340
+
1341
+ attrs = model.cli_get_attrs({:id,'0x10030'})
1342
+ assert_equal 1, attrs.size
1343
+
1344
+ enummodel = Model.new('0x4000017b')
1345
+ sattrs = enummodel.cli_get_attrs({:id,'0x13d0315'},true)
1346
+ assert_equal 'Record/s', sattrs['0x13d0315'].value
1347
+
1348
+ sattrs = model.cli_get_attrs({:instance,['0x12a53','192.2.20.2']})
1349
+ assert_equal '20030', sattrs['0x12a53'].value
1350
+ assert_equal '20030', sattrs['0x12a53'].value_table['192.2.20.2']
1351
+
1352
+ attrs = model.get_attrs({:id,'0x10030'})
1353
+ assert_equal 1, attrs.size
1354
+
1355
+
1356
+ model.get_attrs!({:id,'0x10030'})
1357
+ assert_instance_of Hash,model.attrs
1358
+ assert_equal 1, model.attrs.size
1359
+
1360
+ attrs = model.cli_get_attrs({:range, ['0x10000', '0x10010']})
1361
+ assert_equal 11, attrs.size
1362
+
1363
+ assert_equal 11, model.cli_get_attrs({:range, '0x10000-0x10010'}).size
1364
+
1365
+ model = SpecTools::Model.new('0x400005c7')
1366
+ model.get_attrs!
1367
+ assert_equal '0x36c001a', model.attrs['0x11fb4'].value_table['129']
1368
+ assert_equal 53, model.attrs['0x11fb4'].value_table.size
1369
+ assert_equal 780, model.attrs.size
1370
+
1371
+ assert_raise ArgumentError do
1372
+ model.cli_get_attrs({:range,['bogus','0x1007c']})
1373
+ end
1374
+
1375
+ assert_raise ArgumentError do
1376
+ model.cli_get_attrs({:range,['0x10010','bogus']})
1377
+ end
1378
+
1379
+ attrs = model.cli_get_attrs({:name, 'Condition'})
1380
+ assert_equal '0', attrs[attrs.keys.first].value
1381
+
1382
+ model.handle = 'bogus'
1383
+ assert_raise ArgumentError do
1384
+ model.cli_get_attrs
1385
+ end
1386
+
1387
+ end
1388
+
1389
+ def test_cli_attr_mtype_get
1390
+ VNMSH.default_session = @session
1391
+ mtype = SpecTools::MType.new('0x13d0018')
1392
+ attrs = mtype.cli_get_attrs
1393
+ mtype.cli_get_attrs!
1394
+
1395
+ assert_equal attrs.size, mtype.attrs.size
1396
+
1397
+ assert_equal 11, mtype.cli_get_attrs({:range,['0x10000','0x10010']}).size
1398
+
1399
+ #assert_equal '', mtype.cli_get_attr(:name,'Condition').first.type
1400
+
1401
+ attrs = mtype.cli_get_attrs({:flag, :global})
1402
+ assert_equal 'Security_String', attrs['0x10009'].name
1403
+
1404
+ assert_raise ArgumentError do
1405
+ mtype.cli_get_attrs({:range,['bogus','0x1007c']})
1406
+ end
1407
+
1408
+ assert_raise ArgumentError do
1409
+ mtype.cli_get_attrs({:range,['0x10010','bogus']})
1410
+ end
1411
+
1412
+ assert_equal 241, mtype.get_attrs.size
1413
+
1414
+ mtype.attrs = Hash.new
1415
+ mtype.get_attrs!
1416
+ assert_equal 241, mtype.attrs.size
1417
+
1418
+
1419
+
1420
+ mtype.handle = 'bogus'
1421
+
1422
+ assert_raise ArgumentError do
1423
+ mtype.cli_get_attrs
1424
+ end
1425
+
1426
+ end
1427
+
1428
+ def test_cli_model_children
1429
+ VNMSH.default_session = @session
1430
+ model = SpecTools::Model.new('0x400005cb')
1431
+
1432
+ assert_equal 46, model.cli_get_children.size
1433
+
1434
+ assert_equal 46, model.get_children.size
1435
+
1436
+ assert_equal 13, model.get_children('PossPrimApp').size
1437
+
1438
+ rel = SpecTools::Relation.new('PossPrimApp')
1439
+ assert_equal 13, model.get_children(rel).size
1440
+
1441
+ model.handle = 'bogus'
1442
+
1443
+ assert_raise ArgumentError do
1444
+ model.cli_get_children
1445
+ end
1446
+ end
1447
+
1448
+ def test_cli_model_parents
1449
+ VNMSH.default_session = @session
1450
+ model = SpecTools::Model.new('0x4000004b')
1451
+
1452
+ assert_equal '0x40000042', model.cli_get_parents.first.handle
1453
+
1454
+ assert_equal '0x40000042', model.get_parents.first.handle
1455
+
1456
+ assert_equal '0x40000042', model.get_parents('Collects').first.handle
1457
+
1458
+ rel = SpecTools::Relation.new('Collects')
1459
+ assert_equal '0x40000042', model.get_parents(rel).first.handle
1460
+
1461
+ model.handle = 'bogus'
1462
+ assert_raise ArgumentError do
1463
+ model.cli_get_parents
1464
+ end
1465
+ end
1466
+
1467
+ def test_cli_attr_enums
1468
+ VNMSH.default_session = @session
1469
+
1470
+ sattr = SpecTools::Attr.new('0x13d031e')
1471
+
1472
+ assert_equal 3, sattr.cli_get_enums.size
1473
+
1474
+ assert_equal 3, sattr.get_enums.size
1475
+ sattr.value = '0'
1476
+ assert_equal 'Resource Faced', sattr.enumerate
1477
+ sattr.enumerate!
1478
+ assert_equal 'Resource Faced', sattr.value
1479
+ sattr.get_enums!
1480
+ assert_equal 3, sattr.enums.size
1481
+
1482
+ end
1483
+
1484
+ def test_cli_rules_find
1485
+ relation = SpecTools::Relation.new('Collects')
1486
+ assert_equal 5837, relation.cli_get_rules.size
1487
+ assert_equal 5837, relation.get_rules.size
1488
+ end
1489
+
1490
+ def test_cli_watch_find
1491
+ model = SpecTools::Model.new('0x4000004b')
1492
+ assert_equal 8, model.cli_get_watches(@session).size
1493
+ assert_equal 8, model.get_watches(@session).size
1494
+ assert_raise ArgumentError do
1495
+ model.handle = 'bogus'
1496
+ model.cli_get_watches
1497
+ end
1498
+
1499
+ end
1500
+
1501
+ def test_model_cli_destroy
1502
+ assert Model.cli_destroy('0x40b42b',@session)
1503
+ assert Model.destroy('0x40b42b',@session)
1504
+ model = Model.new('0x40b42b',@session)
1505
+ assert model.cli_destroy(@session)
1506
+ assert model.destroy(@session)
1507
+ assert_raise ArgumentError do
1508
+ model.handle = 'bogus'
1509
+ model.destroy(@session)
1510
+ end
1511
+ end
1512
+
1513
+ def test_association_destroy
1514
+ assert Association.cli_destroy('0x4065e8','0x40b63e','Connects_to',@session)
1515
+ assert Association.destroy('0x4065e8','0x40b63e','Connects_to',@session)
1516
+ assoc = Association.new(Model.new('0x4065e8'),Model.new('0x40b63e'),Relation.new('Connects_to'))
1517
+ assert assoc.cli_destroy(@session)
1518
+ assert assoc.destroy(@session)
1519
+ assert_raise ArgumentError do
1520
+ assoc.left_model.handle = 'bogus'
1521
+ assoc.cli_destroy(@session)
1522
+ end
1523
+ end
1524
+
1525
+ def test_alarm_destroy
1526
+ assert Alarm.cli_destroy('7888881',nil,@session)
1527
+ assert Alarm.destroy('7888881',Landscape.new('0x4000000'),@session)
1528
+ Alarm.new('7888881').destroy(nil,@session)
1529
+ end
1530
+
1531
+ def teardown
1532
+ @session = nil
1533
+ SpecTools::Config.default_access_method = @orig_default_access_method
1534
+ destroy_temp_vnmsh
1535
+ end
1536
+
1537
+ end