MACAddr 0.3.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.
@@ -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