diff --git a/etchosts_test.go b/etchosts_test.go new file mode 100644 index 0000000..d3827ac --- /dev/null +++ b/etchosts_test.go @@ -0,0 +1,36 @@ +package main + +import ( + "bytes" + "fmt" + "testing" +) + +func Test_writeEntryWithBanner(t *testing.T) { + type args struct { + ip string + names []string + } + tests := []struct { + name string + args args + wantTmp string + wantErr bool + }{ + {"do not write empty ip", args{"", []string{"somename", "someothername"}}, "", false}, + {"do not write empty names", args{"1.2.3.4", []string{}}, "", false}, + {"complete entry", args{"1.2.3.4", []string{"somename", "someothername"}}, fmt.Sprintf("%s\n1.2.3.4\tsomename someothername\n", banner), false}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tmp := &bytes.Buffer{} + if err := writeEntryWithBanner(tmp, tt.args.ip, tt.args.names); (err != nil) != tt.wantErr { + t.Errorf("writeEntryWithBanner() error = %v, wantErr %v", err, tt.wantErr) + return + } + if gotTmp := tmp.String(); gotTmp != tt.wantTmp { + t.Errorf("writeEntryWithBanner() got:\n%#v, want\n%#v", gotTmp, tt.wantTmp) + } + }) + } +}