From cb9de115e214b38e97c9e021285cb027ee3e6d4f Mon Sep 17 00:00:00 2001 From: "Alexander A. Klimov" Date: Thu, 5 Sep 2024 17:34:29 +0200 Subject: [PATCH] Test types.AcknowledgementState#UnmarshalJSON() --- .../types/acknowledgement_state_test.go | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 pkg/icingadb/types/acknowledgement_state_test.go diff --git a/pkg/icingadb/types/acknowledgement_state_test.go b/pkg/icingadb/types/acknowledgement_state_test.go new file mode 100644 index 00000000..3c959e80 --- /dev/null +++ b/pkg/icingadb/types/acknowledgement_state_test.go @@ -0,0 +1,37 @@ +package types + +import ( + "github.com/stretchr/testify/require" + "testing" +) + +func TestAcknowledgementState_UnmarshalJSON(t *testing.T) { + subtests := []struct { + name string + input string + output AcknowledgementState + error bool + }{ + {name: "bad-json", input: "bad JSON", error: true}, + {name: "bool", input: "true", error: true}, + {name: "string", input: `"1"`, error: true}, + {name: "negative", input: "-1", error: true}, + {name: "fraction", input: "1.5", error: true}, + {name: "out-of-range", input: "3", error: true}, + {name: "n", input: "0", output: 0}, + {name: "y", input: "1", output: 1}, + {name: "sticky", input: "2", output: 2}, + } + + for _, st := range subtests { + t.Run(st.name, func(t *testing.T) { + var a AcknowledgementState + if err := a.UnmarshalJSON([]byte(st.input)); st.error { + require.Error(t, err) + } else { + require.NoError(t, err) + require.Equal(t, st.output, a) + } + }) + } +}