summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbluemonk <ceresa@gmail.com>2014-08-10 10:44:36 +0200
committerbluemonk <ceresa@gmail.com>2014-08-10 10:44:36 +0200
commit9fc2012d00c0a9f10f215cf91fedbb57d38d8144 (patch)
tree9b8b9a1c73776ecac74e4827ccae530dfd6e4ce8
parentb393d72a1e8cba2d7f0e58adc05675ba894130eb (diff)
downloadipaddress-rspec.tar.gz
add more ipv4 examplesrspec
-rw-r--r--spec/ipaddress/ipv4_spec.rb55
1 files changed, 55 insertions, 0 deletions
diff --git a/spec/ipaddress/ipv4_spec.rb b/spec/ipaddress/ipv4_spec.rb
index af87bf8..4d91778 100644
--- a/spec/ipaddress/ipv4_spec.rb
+++ b/spec/ipaddress/ipv4_spec.rb
@@ -341,6 +341,61 @@ module IPAddress
end
end
+ describe "#netmask=" do
+ it "changes the prefix / netmask" do
+ ip.netmask = "255.255.255.0"
+ expect(ip.prefix).to eq 24
+ end
+ end
+
+ describe IPv4, "::parse_u32" do
+ it "creates a new IPv4 object from an unsigned 32bits integer" do
+ ip = IPAddress::IPv4.parse_u32(167772161)
+ expect(ip.to_string).to eq "10.0.0.1/32"
+ end
+ end
+
+ describe IPv4, "::extract" do
+ it "extracts an IPv4 address from a string" do
+ ip = IPAddress::IPv4.extract("foobar172.16.10.1barbaz")
+ expect(ip.to_s).to eq "172.16.10.1"
+ end
+ end
+
+ describe IPv4, "::parse_data" do
+ it "creates a new IPv4 object from binary data" do
+ ip = IPAddress::IPv4.parse_data("\254\020\n\001")
+ expect(ip.to_s).to eq "172.16.10.1"
+ end
+ end
+
+ describe IPv4, "::parse_classful" do
+ context "when it's a class A address'" do
+ it "parses a class A IPv4 address" do
+ ip = IPAddress::IPv4.parse_classful("10.1.1.1")
+ expect(ip.a?).to be_truthy
+ expect(ip).not_to be_b
+ expect(ip).not_to be_c
+ end
+ end
+ context "when it's a class B address'" do
+ it "parses a class B IPv4 address" do
+ ip = IPAddress::IPv4.parse_classful("150.1.1.1")
+ expect(ip.a?).to be_falsey
+ expect(ip).to be_b
+ expect(ip).not_to be_c
+ end
+ end
+ context "when it's a class C address'" do
+ it "parses a class C IPv4 address" do
+ ip = IPAddress::IPv4.parse_classful("200.1.1.1")
+ expect(ip.a?).to be_falsey
+ expect(ip).not_to be_b
+ expect(ip).to be_c
+ end
+ end
+ end
+
end # describe IPv4