diff options
Diffstat (limited to 'pkg/network/network_test.go')
-rw-r--r-- | pkg/network/network_test.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/pkg/network/network_test.go b/pkg/network/network_test.go new file mode 100644 index 000000000..dbffc33ad --- /dev/null +++ b/pkg/network/network_test.go @@ -0,0 +1,34 @@ +package network + +import ( + "net" + "testing" +) + +func parseCIDR(n string) *net.IPNet { + _, parsedNet, _ := net.ParseCIDR(n) + return parsedNet +} + +func Test_networkIntersect(t *testing.T) { + type args struct { + n1 *net.IPNet + n2 *net.IPNet + } + tests := []struct { + name string + args args + want bool + }{ + {"16 and 24 intersects", args{n1: parseCIDR("192.168.0.0/16"), n2: parseCIDR("192.168.1.0/24")}, true}, + {"24 and 25 intersects", args{n1: parseCIDR("192.168.1.0/24"), n2: parseCIDR("192.168.1.0/25")}, true}, + {"Two 24s", args{n1: parseCIDR("192.168.1.0/24"), n2: parseCIDR("192.168.2.0/24")}, false}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := networkIntersect(tt.args.n1, tt.args.n2); got != tt.want { + t.Errorf("networkIntersect() = %v, want %v", got, tt.want) + } + }) + } +} |