MACAddr 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,56 @@
1
+ # unit test for MACAddr
2
+ require 'lib/MACAddr'
3
+ require 'test/unit'
4
+
5
+ #
6
+ # MACAddr is a class for the manipulation of Media Access Control addresses
7
+ # it is patterned after the IPAddr class found in the std ruby libraries
8
+ #
9
+ class TestMACAddr < Test::Unit::TestCase
10
+ def test_to_i
11
+ assert_equal(0, MACAddr.new("00:00:00:00:00:00").to_i)
12
+ assert_equal(0x0000000f0f0f, MACAddr.new("00:00:00:0F:0F:0F").to_i)
13
+ assert_equal((2**48)-1, MACAddr.new("ff:ff:ff:ff:ff:ff").to_i)
14
+ end
15
+
16
+ def test_to_s
17
+ assert_equal("00:00:00:00:00:00", MACAddr.new("00:00:00:00:00:00").to_s)
18
+ assert_equal("ff:ff:ff:ff:ff:ff", MACAddr.new("ff:ff:ff:ff:ff:ff").to_s)
19
+ end
20
+
21
+ # test missing initalizer, goofy init strings and valid strings
22
+ def test_init
23
+ assert_raise(ArgumentError) { MACAddr.new()}
24
+ assert_raise(ArgumentError) { MACAddr.new("00k00k00.00.00.00")}
25
+ assert_raise(ArgumentError) { MACAddr.new("0g:00:00:00:00:00")}
26
+ assert_raise(ArgumentError) { MACAddr.new(":00:00:00:00:00")}
27
+ assert_raise(ArgumentError) { MACAddr.new("00:00:00:00:00")}
28
+ assert_raise(ArgumentError) { MACAddr.new("00:00::00:00:00")}
29
+ assert_nothing_raised(ArgumentError) { MACAddr.new("00:00:00:00:00:00")}
30
+ assert_nothing_raised(ArgumentError) { MACAddr.new("0:00:00:00:00:00")}
31
+
32
+ end
33
+
34
+ def test_equality
35
+ assert_equal(MACAddr.new("00:00:00:00:00:00"), MACAddr.new("00:00:00:00:00:00"))
36
+ assert_equal(MACAddr.new("a0:b0:c0:d0:e0:f0"), MACAddr.new("a0:b0:c0:d0:e0:f0"))
37
+ # assert_not_equal(MACAddr.new("00:b0:c0:d0:e0:f0"), MACAddr.new("a0:b0:c0:d0:e0:f0"))
38
+ end
39
+
40
+ def test_vendor_membership
41
+ assert_equal("CISCO SYSTEMS, INC.", MACAddr.new("00:00:0C:03:05:06").vendor_name)
42
+ assert_equal("CISCO SYSTEMS, INC.", MACAddr.new("0.00.12.03.05.06", 'dotted_decimal').vendor_name)
43
+ assert_equal("Paralan Corporation", MACAddr.new("0.22.139.12.34.56", 'dotted_decimal').vendor_name)
44
+ assert_not_equal("CISCO SYSTEMS, INC.", MACAddr.new("00:00:0d:03:05:06").vendor_name)
45
+ assert_equal("CISCO SYSTEMS, INC.", MACAddr.new("00:00:0c:00:00:00").vendor_name)
46
+ assert_equal("0x00000C", MACAddr.new("00:00:0c:03:05:06").vendor_oid)
47
+ # this verifies that we still don't handle mixed case hex strings nicely
48
+ assert_not_equal("0x00000c", MACAddr.new("00:00:0c:03:05:06").vendor_oid)
49
+ assert_equal("0x00219B", MACAddr.new("0:21:9b:03:05:06").vendor_oid)
50
+ assert_equal("Dell Inc", MACAddr.new("0:21:9b:03:05:06").vendor_name)
51
+ end
52
+
53
+ def test_dotted_decimal_format
54
+ assert_equal(MACAddr.new("00:FF:0C:12:34:56"), MACAddr.new("0.255.12.18.52.86", 'dotted_decimal'))
55
+ end
56
+ end
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: MACAddr
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.3.0
6
+ platform: ruby
7
+ authors:
8
+ - Raymond P Chudzinski
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-05-18 00:00:00 Z
14
+ dependencies: []
15
+
16
+ description: |-
17
+ MACAddr is a class for the manipulation of IEEE MAC addresses.
18
+ It is patterned after the IPAddr class in the Ruby core libs.
19
+ email: ray@chudzinski.net
20
+ executables: []
21
+
22
+ extensions: []
23
+
24
+ extra_rdoc_files:
25
+ - README
26
+ - README.textile
27
+ - lib/MACAddr.rb
28
+ files:
29
+ - Manifest
30
+ - README
31
+ - README.textile
32
+ - Rakefile
33
+ - lib/MACAddr.rb
34
+ - test/test_MACAddr.rb
35
+ - MACAddr.gemspec
36
+ homepage: http://github.com/chud/MACAddr
37
+ licenses: []
38
+
39
+ post_install_message:
40
+ rdoc_options:
41
+ - --line-numbers
42
+ - --inline-source
43
+ - --title
44
+ - MACAddr
45
+ - --main
46
+ - README
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: "0"
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: "1.2"
61
+ requirements: []
62
+
63
+ rubyforge_project: macaddr
64
+ rubygems_version: 1.7.2
65
+ signing_key:
66
+ specification_version: 3
67
+ summary: MACAddr is a class for the manipulation of IEEE MAC addresses. It is patterned after the IPAddr class in the Ruby core libs.
68
+ test_files:
69
+ - test/test_MACAddr.rb