packer-cn/builder/azure/common/dump_config_test.go

128 lines
2.9 KiB
Go

package common
import "testing"
func TestShouldDumpPublicValues(t *testing.T) {
type S struct {
MyString string
myString string
}
data := &S{
MyString: "value1",
}
dumps := make([]string, 0, 2)
DumpConfig(data, func(s string) { dumps = append(dumps, s) })
if len(dumps) != 1 {
t.Fatalf("Expected len(dumps) to be 1, but got %d", len(dumps))
}
if dumps[0] != "MyString=value1" {
t.Errorf("Expected dumps[0] to be 'MyString=value1', but got %s", dumps[0])
}
}
func TestShouldOnlyDumpStrings(t *testing.T) {
type S struct {
MyString string
MyInt int
MyFloat32 float32
MyStringPointer *string
}
s := "value1"
data := &S{
MyString: s,
MyInt: 1,
MyFloat32: 2.0,
MyStringPointer: &s,
}
dumps := make([]string, 0, 4)
DumpConfig(data, func(s string) { dumps = append(dumps, s) })
if len(dumps) != 1 {
t.Fatalf("Expected len(dumps) to be 1, but got %d", len(dumps))
}
if dumps[0] != "MyString=value1" {
t.Errorf("Expected dumps[0] to be 'MyString=value1', but got %s", dumps[0])
}
}
func TestDumpShouldMaskSensitiveFieldValues(t *testing.T) {
type S struct {
MyString string
MySecret string
MySecretValue string
MyPassword string
MyPasswordValue string
}
data := &S{
MyString: "my-string",
MySecret: "s3cr3t",
MySecretValue: "s3cr3t-value",
MyPassword: "p@ssw0rd",
MyPasswordValue: "p@ssw0rd-value",
}
dumps := make([]string, 0, 5)
DumpConfig(data, func(s string) { dumps = append(dumps, s) })
if len(dumps) != 5 {
t.Fatalf("Expected len(dumps) to be 5, but got %d", len(dumps))
}
if dumps[0] != "MyString=my-string" {
t.Errorf("Expected dumps[0] to be 'MyString=my-string', but got %s", dumps[0])
}
if dumps[1] != "MySecret=******" {
t.Errorf("Expected dumps[1] to be 'MySecret=******', but got %s", dumps[1])
}
if dumps[2] != "MySecretValue=************" {
t.Errorf("Expected dumps[2] to be 'MySecret=************', but got %s", dumps[2])
}
if dumps[3] != "MyPassword=********" {
t.Errorf("Expected dumps[3] to be 'MyPassword=******** but got %s", dumps[3])
}
if dumps[4] != "MyPasswordValue=**************" {
t.Errorf("Expected dumps[4] to be 'MyPasswordValue=**************' but got %s", dumps[4])
}
}
func TestDumpConfigShouldDumpTopLevelValuesOnly(t *testing.T) {
type N struct {
NestedString string
}
type S struct {
Nested1 N
MyString string
Nested2 N
}
data := &S{
Nested1: N{
NestedString: "nested-string1",
},
MyString: "my-string",
Nested2: N{
NestedString: "nested-string2",
},
}
dumps := make([]string, 0, 1)
DumpConfig(data, func(s string) { dumps = append(dumps, s) })
if len(dumps) != 1 {
t.Fatalf("Expected len(dumps) to be 1, but got %d", len(dumps))
}
if dumps[0] != "MyString=my-string" {
t.Errorf("Expected dumps[0] to be 'MyString=my-string', but got %s", dumps[0])
}
}