Skip to content

Commit

Permalink
Add test
Browse files Browse the repository at this point in the history
  • Loading branch information
strideynet committed Dec 30, 2024
1 parent 8c78f3f commit 4c06105
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 15 deletions.
12 changes: 12 additions & 0 deletions test/copy_from_terraform_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -233,3 +233,15 @@ func TestCopyFromStringOverride(t *testing.T) {

require.Equal(t, "a/b/c", target.StringOverride)
}

func TestCopyFromOneOfLowercase(t *testing.T) {
obj := copyFromTerraformObject(t)

target := Test{}
diags := CopyTestFromTerraform(context.Background(), obj, &target)
requireNoDiagErrors(t, diags)

v, ok := target.LowerSnakeOneof.(*Test_Bar)
require.True(t, ok)
require.Equal(t, "ham", v.Bar)
}
44 changes: 29 additions & 15 deletions test/copy_to_terraform_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func TestCopyToTerraformPrimitives(t *testing.T) {
o := copyToTerraformObject(t)

diags := CopyTestToTerraform(context.Background(), createTestObj(), &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.Equal(t, "TestString", o.Attrs["str"].(types.String).Value)
require.False(t, o.Attrs["str"].(types.String).Unknown)
Expand Down Expand Up @@ -65,7 +65,7 @@ func TestCopyToTime(t *testing.T) {
o := copyToTerraformObject(t)

diags := CopyTestToTerraform(context.Background(), createTestObj(), &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.Equal(t, timestamp, o.Attrs["timestamp"].(TimeValue).Value)
require.False(t, o.Attrs["timestamp"].(TimeValue).Unknown)
Expand All @@ -81,7 +81,7 @@ func TestCopyToDuration(t *testing.T) {
o := copyToTerraformObject(t)

diags := CopyTestToTerraform(context.Background(), createTestObj(), &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.Equal(t, duration, o.Attrs["duration_standard"].(DurationValue).Value)
require.False(t, o.Attrs["duration_standard"].(DurationValue).Unknown)
Expand All @@ -96,7 +96,7 @@ func TestCopyToNested(t *testing.T) {
o := copyToTerraformObject(t)

diags := CopyTestToTerraform(context.Background(), createTestObj(), &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.Equal(
t,
Expand All @@ -117,7 +117,7 @@ func TestCopyToList(t *testing.T) {
o := copyToTerraformObject(t)

diags := CopyTestToTerraform(context.Background(), createTestObj(), &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.Equal(t, []attr.Value{
types.String{Null: false, Unknown: false, Value: "el1"},
Expand Down Expand Up @@ -154,7 +154,7 @@ func TestCopyTo_ChangeListSize(t *testing.T) {

// Start with two elements.
diags := CopyTestToTerraform(context.Background(), testObject, &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.Equal(t, []attr.Value{
types.String{Null: false, Unknown: false, Value: "el1"},
Expand All @@ -164,7 +164,7 @@ func TestCopyTo_ChangeListSize(t *testing.T) {
// Increase to 3, array access must not panic.
testObject.StringList = []string{"el1", "el2", "el3"}
diags = CopyTestToTerraform(context.Background(), testObject, &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.Equal(t, []attr.Value{
types.String{Null: false, Unknown: false, Value: "el1"},
Expand All @@ -175,7 +175,7 @@ func TestCopyTo_ChangeListSize(t *testing.T) {
// Decrease to a single element, others should be removed.
testObject.StringList = []string{"elX"}
diags = CopyTestToTerraform(context.Background(), testObject, &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.Equal(t, []attr.Value{
types.String{Null: false, Unknown: false, Value: "elX"},
Expand All @@ -186,7 +186,7 @@ func TestCopyToNestedList(t *testing.T) {
o := copyToTerraformObject(t)

diags := CopyTestToTerraform(context.Background(), createTestObj(), &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

nestedList := o.Attrs["nested_list"].(types.List)
firstEl := nestedList.Elems[0].(types.Object)
Expand Down Expand Up @@ -252,7 +252,7 @@ func TestCopyToMap(t *testing.T) {
o := copyToTerraformObject(t)

diags := CopyTestToTerraform(context.Background(), createTestObj(), &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

m := o.Attrs["map"].(types.Map).Elems

Expand All @@ -264,7 +264,7 @@ func TestCopyToCustom(t *testing.T) {
o := copyToTerraformObject(t)

diags := CopyTestToTerraform(context.Background(), createTestObj(), &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.Equal(
t,
Expand All @@ -283,7 +283,7 @@ func TestCopyToOneOfBranch3(t *testing.T) {
testObj.OneOf = &Test_Branch3{Branch3: "Test"}

diags := CopyTestToTerraform(context.Background(), testObj, &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.Equal(
t,
Expand All @@ -298,7 +298,7 @@ func TestCopyToOneOfBranch2(t *testing.T) {
testObj.OneOf = &Test_Branch2{Branch2: &Branch2{Int32: 5}}

diags := CopyTestToTerraform(context.Background(), testObj, &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.Equal(
t,
Expand All @@ -312,7 +312,7 @@ func TestCopyToOneOfNoBranch(t *testing.T) {
testObj := createTestObj()

diags := CopyTestToTerraform(context.Background(), testObj, &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.True(t, o.Attrs["branch1"].(types.Object).Null)
require.True(t, o.Attrs["branch2"].(types.Object).Null)
Expand All @@ -324,12 +324,26 @@ func TestCopyToEmbeddedField(t *testing.T) {
testObj := createTestObj()

diags := CopyTestToTerraform(context.Background(), testObj, &o)
require.False(t, diags.HasError())
requireNoDiagErrors(t, diags)

require.Equal(t, "embdtest1", o.Attrs["embedded_string"].(types.String).Value)
require.False(t, o.Attrs["embedded_string"].(types.String).Unknown)
require.False(t, o.Attrs["embedded_string"].(types.String).Null)

require.Equal(t, "embdtest2", o.Attrs["embedded_nested_field"].(types.Object).Attrs["embedded_nested_string"].(types.String).Value)
}

func TestCopyToOneOfLowercase(t *testing.T) {
o := copyToTerraformObject(t)
testObj := createTestObj()
testObj.LowerSnakeOneof = &Test_Foo{Foo: "1234"}

diags := CopyTestToTerraform(context.Background(), testObj, &o)
requireNoDiagErrors(t, diags)

require.Equal(
t,
types.String{Null: false, Unknown: false, Value: "1234"},
o.Attrs["foo"].(types.String),
)
}

0 comments on commit 4c06105

Please sign in to comment.