From 9fc2012d00c0a9f10f215cf91fedbb57d38d8144 Mon Sep 17 00:00:00 2001 From: bluemonk Date: Sun, 10 Aug 2014 10:44:36 +0200 Subject: add more ipv4 examples --- spec/ipaddress/ipv4_spec.rb | 55 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) 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 -- cgit v1.2.1