106 lines
1.9 KiB
Go
106 lines
1.9 KiB
Go
package mock
|
|
|
|
import (
|
|
"net"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func Test_randomIPFallback_GetIP(t *testing.T) {
|
|
ra := randomIPFallback{}
|
|
for i := 0; i < 1000; i++ {
|
|
if got := ra.GetIP(); reflect.DeepEqual(got, net.IP{}) {
|
|
t.Errorf("GetIP() = %v", got)
|
|
}
|
|
}
|
|
}
|
|
|
|
func Test_incrementalIPFallback_GetIP(t *testing.T) {
|
|
type fields struct {
|
|
latestIp uint32
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
fields fields
|
|
want []net.IP
|
|
}{
|
|
{
|
|
name: "Expect the next icremental IP",
|
|
fields: fields{
|
|
latestIp: 167772160,
|
|
},
|
|
want: []net.IP{
|
|
net.IPv4(10, 0, 0, 1),
|
|
},
|
|
},
|
|
{
|
|
name: "Expect a sequence of 5",
|
|
fields: fields{
|
|
latestIp: 167772160,
|
|
},
|
|
want: []net.IP{
|
|
net.IPv4(10, 0, 0, 1),
|
|
net.IPv4(10, 0, 0, 2),
|
|
net.IPv4(10, 0, 0, 3),
|
|
net.IPv4(10, 0, 0, 4),
|
|
net.IPv4(10, 0, 0, 5),
|
|
},
|
|
},
|
|
{
|
|
name: "Expect next block to be incremented",
|
|
fields: fields{
|
|
latestIp: 167772413,
|
|
},
|
|
want: []net.IP{
|
|
net.IPv4(10, 0, 0, 254),
|
|
net.IPv4(10, 0, 0, 255),
|
|
net.IPv4(10, 0, 1, 0),
|
|
},
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
i := &incrementalIPFallback{
|
|
latestIp: tt.fields.latestIp,
|
|
}
|
|
for k := 0; k < len(tt.want); k++ {
|
|
if got := i.GetIP(); !reflect.DeepEqual(got, tt.want[k]) {
|
|
t.Errorf("GetIP() = %v, want %v", got, tt.want[k])
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_ipToInt32(t *testing.T) {
|
|
type args struct {
|
|
ip net.IP
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want uint32
|
|
}{
|
|
{
|
|
name: "Convert 188.193.106.113 to int",
|
|
args: args{
|
|
ip: net.ParseIP("188.193.106.113"),
|
|
},
|
|
want: 3166792305,
|
|
},
|
|
{
|
|
name: "Convert 192.168.178.10 to int",
|
|
args: args{
|
|
ip: net.ParseIP("192.168.178.10"),
|
|
},
|
|
want: 3232281098,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := ipToInt32(tt.args.ip); got != tt.want {
|
|
t.Errorf("ipToInt32() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|