go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/sdk/netutil/cidr_test.go (about) 1 /* 2 3 Copyright (c) 2023 - Present. Will Charczuk. All rights reserved. 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file at the root of the repository. 5 6 */ 7 8 package netutil 9 10 import ( 11 "testing" 12 13 "go.charczuk.com/sdk/assert" 14 ) 15 16 func Test_IPNet_Next(t *testing.T) { 17 _, current, err := ParseCIDR("192.168.0.0/24") 18 assert.ItsNil(t, err) 19 assert.ItsEqual(t, "192.168.0.0/24", current.String()) 20 21 next, ok := current.Next() 22 assert.ItsTrue(t, ok) 23 assert.ItsEqual(t, "192.168.1.0/24", next.String()) 24 } 25 26 func Test_IPNet_Next_invalid(t *testing.T) { 27 _, current, err := ParseCIDR("255.255.255.0/24") 28 assert.ItsNil(t, err) 29 assert.ItsEqual(t, "255.255.255.0/24", current.String()) 30 31 next, ok := current.Next() 32 assert.ItsFalse(t, ok) 33 assert.ItsNil(t, next) 34 } 35 36 func Test_IPNet_Range(t *testing.T) { 37 _, current, err := ParseCIDR("192.168.0.127/24") 38 assert.ItsNil(t, err) 39 40 first, last := current.Range() 41 assert.ItsEqual(t, "192.168.0.0", first.String()) 42 assert.ItsEqual(t, "192.168.0.255", last.String()) 43 }