Merge pull request #3179 from my-git9/ut-format
[UT] Add ut for utils/format.go
This commit is contained in:
commit
ea497819f0
|
@ -0,0 +1,330 @@
|
|||
package utils
|
||||
|
||||
import (
|
||||
"net"
|
||||
"os"
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func stringInslice(target string, strArray []string) bool {
|
||||
for _, element := range strArray {
|
||||
if target == element {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func TestIsExist(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
path string
|
||||
want bool
|
||||
}{
|
||||
{
|
||||
name: "path exist",
|
||||
path: "./",
|
||||
want: true,
|
||||
},
|
||||
{
|
||||
name: "path is not exist",
|
||||
path: "for-a-not-exist-path" + randString(),
|
||||
want: false,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := IsExist(tt.path); got != tt.want {
|
||||
t.Errorf("IsExist() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestStringToNetIP(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
addr string
|
||||
want net.IP
|
||||
}{
|
||||
{
|
||||
name: "get ipv4",
|
||||
addr: "10.1.1.1",
|
||||
want: net.ParseIP("10.1.1.1"),
|
||||
},
|
||||
{
|
||||
name: "get ipv6",
|
||||
addr: "fe80::f4e6:6514:7461:9698",
|
||||
want: net.ParseIP("fe80::f4e6:6514:7461:9698"),
|
||||
},
|
||||
{
|
||||
name: "get invalid ip",
|
||||
addr: "120.1",
|
||||
want: net.ParseIP("127.0.0.1"),
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := StringToNetIP(tt.addr); !reflect.DeepEqual(got, tt.want) {
|
||||
t.Errorf("StringToNetIP() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestFlagsIP(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
ip string
|
||||
want []net.IP
|
||||
}{
|
||||
{
|
||||
name: "all ips are vaild",
|
||||
ip: "10.0.0.1,10.0.0.2",
|
||||
want: []net.IP{
|
||||
net.ParseIP("10.0.0.1"),
|
||||
net.ParseIP("10.0.0.2"),
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "have invaild ip",
|
||||
ip: "10.0.0,10.0.0.2",
|
||||
want: []net.IP{
|
||||
net.ParseIP("127.0.0.1"),
|
||||
net.ParseIP("10.0.0.2"),
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "have ipv6 and ipv4",
|
||||
ip: "fe80::f4e6:6514:7461:9698, 10.0.0.1",
|
||||
want: []net.IP{
|
||||
net.ParseIP("fe80::f4e6:6514:7461:9698"),
|
||||
net.ParseIP("127.0.0.1"),
|
||||
},
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := FlagsIP(tt.ip); !reflect.DeepEqual(got, tt.want) {
|
||||
t.Errorf("FlagsIP() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestFlagsDNS(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
dns string
|
||||
want []string
|
||||
}{
|
||||
{
|
||||
name: "get dns from flags",
|
||||
dns: "github.com,karmada.io,kubernetes.io",
|
||||
want: []string{
|
||||
"github.com", "karmada.io", "kubernetes.io",
|
||||
},
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := FlagsDNS(tt.dns); !reflect.DeepEqual(got, tt.want) {
|
||||
t.Errorf("FlagsDNS() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestInternetIP(t *testing.T) {
|
||||
got, err := InternetIP()
|
||||
if got == nil {
|
||||
t.Errorf("InternetIP() want return not nil, but return nil")
|
||||
}
|
||||
if err != nil {
|
||||
t.Errorf("InternetIP() want return not error, but return error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestFileToBytes(t *testing.T) {
|
||||
type args struct {
|
||||
path string
|
||||
name string
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
createtmp bool
|
||||
tempcontent string
|
||||
args args
|
||||
want []byte
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "the file is not exist",
|
||||
createtmp: false,
|
||||
tempcontent: "",
|
||||
args: args{
|
||||
path: "a-not-exits-path",
|
||||
name: "a-not-exit-file.txt",
|
||||
},
|
||||
want: nil,
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "the file is not exist",
|
||||
createtmp: true,
|
||||
tempcontent: "hello, world",
|
||||
args: args{
|
||||
path: "a-not-exits-path-" + randString(),
|
||||
name: "a-not-exit-file-" + randString() + ".txt",
|
||||
},
|
||||
want: []byte("hello, world"),
|
||||
wantErr: false,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
if tt.createtmp {
|
||||
err := os.Mkdir(tt.args.path, 0755)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
f, err := os.Create(tt.args.path + "/" + tt.args.name)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, err = f.Write([]byte(tt.tempcontent))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err = f.Close(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
got, err := FileToBytes(tt.args.path, tt.args.name)
|
||||
if (err != nil) != tt.wantErr {
|
||||
t.Errorf("FileToBytes() error = %v, wantErr %v", err, tt.wantErr)
|
||||
return
|
||||
}
|
||||
if !reflect.DeepEqual(got, tt.want) {
|
||||
t.Errorf("FileToBytes() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
if tt.createtmp {
|
||||
os.RemoveAll(tt.args.path)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestBytesToFile(t *testing.T) {
|
||||
type args struct {
|
||||
path string
|
||||
name string
|
||||
data []byte
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
createtmp bool
|
||||
args args
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "a not exist file",
|
||||
createtmp: false,
|
||||
args: args{
|
||||
path: "temp-kubeconfig-" + randString(),
|
||||
name: randString() + ".kubeconfig",
|
||||
data: []byte("hello world"),
|
||||
},
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "a not exist file",
|
||||
createtmp: true,
|
||||
args: args{
|
||||
path: "temp-kubeconfig-" + randString(),
|
||||
name: randString() + ".kubeconfig",
|
||||
data: []byte("hello world"),
|
||||
},
|
||||
wantErr: false,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
if tt.createtmp {
|
||||
err := os.Mkdir(tt.args.path, 0755)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
f, err := os.Create(tt.args.path + "/" + tt.args.name)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err = f.Close(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if err := BytesToFile(tt.args.path, tt.args.name, tt.args.data); (err != nil) != tt.wantErr {
|
||||
t.Errorf("BytesToFile() error = %v, wantErr %v", err, tt.wantErr)
|
||||
}
|
||||
})
|
||||
if tt.createtmp {
|
||||
os.RemoveAll(tt.args.path)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestMapToString(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
labels map[string]string
|
||||
want []string
|
||||
}{
|
||||
{
|
||||
name: "map is not null",
|
||||
labels: map[string]string{
|
||||
"foo1": "bar1",
|
||||
"foo2": "bar2",
|
||||
},
|
||||
want: []string{"foo1=bar1,foo2=bar2", "foo2=bar2,foo1=bar1"},
|
||||
},
|
||||
{
|
||||
name: "map is null",
|
||||
labels: map[string]string{},
|
||||
want: []string{""},
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := MapToString(tt.labels); !stringInslice(got, tt.want) {
|
||||
t.Errorf("MapToString() = %v, want string in list%v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestStringToMap(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
labels string
|
||||
want map[string]string
|
||||
}{
|
||||
{
|
||||
name: "valid map string",
|
||||
labels: "foo=bar",
|
||||
want: map[string]string{"foo": "bar"},
|
||||
},
|
||||
{
|
||||
name: "invalid map string",
|
||||
labels: "foo=bar,bar=foo",
|
||||
want: nil,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := StringToMap(tt.labels); !reflect.DeepEqual(got, tt.want) {
|
||||
t.Errorf("StringToMap() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue