1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package testutil_test
16
17 import (
18 "testing"
19
20 "cloud.google.com/go/pubsub/internal/testutil"
21 )
22
23 func TestVerifyKeyOrdering(t *testing.T) {
24 for _, tc := range []struct {
25 name string
26 publishedMsgs []testutil.OrderedKeyMsg
27 receivedMsgs []testutil.OrderedKeyMsg
28 wantErr bool
29 }{
30 {
31 name: "correct despite different ordering",
32 publishedMsgs: []testutil.OrderedKeyMsg{
33 {Key: "some-key-1", Data: "some-datum-1"},
34 {Key: "some-key-2", Data: "some-datum-1"},
35 {Key: "some-key-1", Data: "some-datum-2"},
36 {Key: "some-key-3", Data: "some-datum-1"},
37 {Key: "some-key-1", Data: "some-datum-3"},
38 {Key: "some-key-4", Data: "some-datum-1"},
39 },
40 receivedMsgs: []testutil.OrderedKeyMsg{
41 {Key: "some-key-2", Data: "some-datum-1"},
42 {Key: "some-key-1", Data: "some-datum-1"},
43 {Key: "some-key-3", Data: "some-datum-1"},
44 {Key: "some-key-4", Data: "some-datum-1"},
45 {Key: "some-key-1", Data: "some-datum-2"},
46 {Key: "some-key-1", Data: "some-datum-3"},
47 },
48 wantErr: false,
49 },
50 {
51 name: "received something we didnt publish",
52 publishedMsgs: []testutil.OrderedKeyMsg{
53 {Key: "some-key-1", Data: "some-datum-1"},
54 },
55 receivedMsgs: []testutil.OrderedKeyMsg{
56 {Key: "some-key-1", Data: "some-datum-2"},
57 },
58 wantErr: true,
59 },
60 {
61 name: "published message missing",
62 publishedMsgs: []testutil.OrderedKeyMsg{
63 {Key: "some-key-1", Data: "some-datum-1"},
64 },
65 receivedMsgs: []testutil.OrderedKeyMsg{},
66 wantErr: true,
67 },
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92 } {
93 t.Run(tc.name, func(t *testing.T) {
94 err := testutil.VerifyKeyOrdering(tc.publishedMsgs, tc.receivedMsgs)
95 if tc.wantErr {
96 if err == nil {
97 t.Fatal("wanted err, but got nil")
98 }
99 } else {
100 if err != nil {
101 t.Fatalf("wanted nil, got err:\n\t%v", err)
102 }
103 }
104 })
105 }
106 }
107
View as plain text