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.
- data/MACAddr.gemspec +31 -0
- data/Manifest +6 -0
- data/README +38 -0
- data/README.textile +24 -0
- data/Rakefile +14 -0
- data/lib/MACAddr.rb +13958 -0
- data/test/test_MACAddr.rb +56 -0
- metadata +69 -0
@@ -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
|