-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathfirestruct_test.go
More file actions
69 lines (63 loc) · 2.05 KB
/
firestruct_test.go
File metadata and controls
69 lines (63 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package firestruct
import (
"encoding/json"
"testing"
"github.com/bennovw/firestruct/internal/testutil"
)
func TestFirestoreCloudEvent(t *testing.T) {
var testEvent = testutil.TestFirebaseCloudEvents[0]
var testCloudEventBytes, _ = json.Marshal(testEvent)
var testCloudEvent = []byte(testCloudEventBytes)
var FirestoreCloudEventTests = []testutil.TableTest{
{
Name: "data to simple struct",
TargetType: "DataToSimple",
Input: testCloudEvent,
Expected: testutil.StructResults[0],
},
{
Name: "data to tagged struct",
TargetType: "DataToTagged",
Input: testCloudEvent,
Expected: testutil.StructResults[1],
},
{
Name: "data to flattened map",
TargetType: "ToMap",
Input: testCloudEvent,
Expected: testutil.FlattenedMapResults[12],
},
}
for _, test := range FirestoreCloudEventTests {
thisMethodName := "FirestoreCloudEvent"
receivedCloudEvent := FirestoreCloudEvent{}
err := json.Unmarshal(testCloudEvent, &receivedCloudEvent)
if err != nil {
t.Errorf("%v() test \"%v\" returned error: %v", thisMethodName, test.Name, err)
}
switch test.TargetType {
case "DataToSimple":
var result testutil.TestSimpleStruct
err = receivedCloudEvent.DataTo(&result)
if err != nil {
t.Errorf("%v() test \"%v\" returned error: %v", thisMethodName, test.Name, err)
}
testutil.IsDeepEqualTest(t, result, test.Expected,thisMethodName, test.Name)
case "DataToTagged":
var result testutil.TestTaggedStruct
err = receivedCloudEvent.DataTo(&result)
if err != nil {
t.Errorf("%v() test \"%v\" returned error: %v", thisMethodName, test.Name, err)
}
testutil.IsDeepEqualTest(t, result, test.Expected,thisMethodName, test.Name)
case "ToMap":
result, err := receivedCloudEvent.ToMap()
if err != nil {
t.Errorf("%v() test \"%v\" returned error: %v", thisMethodName, test.Name, err)
}
testutil.IsDeepEqualTest(t, result, test.Expected,thisMethodName, test.Name)
default:
t.Errorf("%v() test \"%v\" method not covered", thisMethodName, test.Name)
}
}
}