Skip to content

Commit 39495a9

Browse files
committed
rename test
1 parent de8c1e4 commit 39495a9

File tree

1 file changed

+105
-15
lines changed

1 file changed

+105
-15
lines changed

internal/verifier/reset_test.go

Lines changed: 105 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@ package verifier
22

33
import (
44
"context"
5+
"strings"
56

67
"go.mongodb.org/mongo-driver/bson"
78
"go.mongodb.org/mongo-driver/mongo"
9+
"go.mongodb.org/mongo-driver/mongo/options"
10+
11+
"github.com/10gen/migration-verifier/internal/partitions"
812
)
913

1014
func (suite *MultiDataVersionTestSuite) TestResetPrimaryTask() {
@@ -36,7 +40,9 @@ func (suite *MultiDataVersionTestSuite) TestResetPrimaryTask() {
3640
suite.Assert().Len(taskDocs, 1)
3741
}
3842

39-
func (suite *MultiDataVersionTestSuite) TestResetCollectionTasks() {
43+
func (suite *MultiDataVersionTestSuite) TestResetNonPrimaryTasks() {
44+
ctx := context.Background()
45+
4046
verifier := buildVerifier(suite.T(), suite.srcMongoInstance, suite.dstMongoInstance, suite.metaMongoInstance)
4147

4248
// Create a primary task, and set it to complete.
@@ -59,28 +65,39 @@ func (suite *MultiDataVersionTestSuite) TestResetCollectionTasks() {
5965
verifier.UpdateVerificationTask(collTask),
6066
)
6167

62-
// Create four partition tasks: three with the same namespace as the
68+
// Create three partition tasks with the same namespace as the
6369
// collection-verification task (status=[added, processing, completed]),
6470
// and another for a different namespace that’s completed.
65-
for _, status := range []verificationTaskStatus{
66-
verificationTaskAdded,
67-
verificationTaskProcessing,
68-
verificationTaskCompleted,
71+
for _, taskParts := range []struct {
72+
Status verificationTaskStatus
73+
Namespace string
74+
}{
75+
{verificationTaskAdded, ns1},
76+
{verificationTaskProcessing, ns1},
77+
{verificationTaskCompleted, ns1},
78+
{verificationTaskAdded, ns2},
79+
{verificationTaskProcessing, ns2},
80+
{verificationTaskCompleted, ns2},
6981
} {
7082
task, err := verifier.InsertPartitionVerificationTask(
7183
&partitions.Partition{
72-
Ns: &partition.NameSpace{
73-
DB: "foo",
74-
Coll: "bar",
84+
Ns: &partitions.Namespace{
85+
DB: strings.Split(taskParts.Namespace, ".")[0],
86+
Coll: strings.Split(taskParts.Namespace, ".")[1],
7587
},
7688
},
7789
nil,
78-
"foo.bar",
90+
taskParts.Namespace,
7991
)
80-
}
92+
suite.Require().NoError(err)
8193

82-
ctx := context.Background()
94+
task.Status = taskParts.Status
95+
suite.Require().NoError(
96+
verifier.UpdateVerificationTask(task),
97+
)
98+
}
8399

100+
// Reset tasks
84101
err = verifier.doInMetaTransaction(
85102
ctx,
86103
func(_ context.Context, ctx mongo.SessionContext) error {
@@ -89,11 +106,84 @@ func (suite *MultiDataVersionTestSuite) TestResetCollectionTasks() {
89106
)
90107
suite.Require().NoError(err)
91108

109+
// Contents should just be the primary task and
110+
// the completed partition-level.
92111
tasksColl := verifier.verificationTaskCollection()
93-
cursor, err := tasksColl.Find(ctx, bson.M{})
112+
cursor, err := tasksColl.Find(
113+
ctx,
114+
bson.M{},
115+
options.Find().SetSort(bson.D{
116+
{"type", 1},
117+
{"query_filter.namespace", 1},
118+
{"status", 1},
119+
}),
120+
)
94121
suite.Require().NoError(err)
95-
var taskDocs []bson.M
122+
var taskDocs []VerificationTask
96123
suite.Require().NoError(cursor.All(ctx, &taskDocs))
97124

98-
suite.Assert().Len(taskDocs, 1)
125+
suite.Require().Len(taskDocs, 5)
126+
127+
// The tasks that should remain are:
128+
129+
// the primary (completed)
130+
suite.Assert().Equal(
131+
verificationTaskPrimary,
132+
taskDocs[0].Type,
133+
)
134+
135+
// the 2 ns2 partition tasks that weren’t completed (both “added”)
136+
suite.Assert().Equal(
137+
verificationTaskVerifyDocuments,
138+
taskDocs[1].Type,
139+
)
140+
suite.Assert().Equal(
141+
verificationTaskAdded,
142+
taskDocs[1].Status,
143+
)
144+
suite.Assert().Equal(
145+
ns2,
146+
taskDocs[1].QueryFilter.Namespace,
147+
)
148+
149+
suite.Assert().Equal(
150+
verificationTaskVerifyDocuments,
151+
taskDocs[2].Type,
152+
)
153+
suite.Assert().Equal(
154+
verificationTaskAdded,
155+
taskDocs[2].Status,
156+
)
157+
suite.Assert().Equal(
158+
ns2,
159+
taskDocs[2].QueryFilter.Namespace,
160+
)
161+
162+
// the ns2 partition task that *was* completed
163+
suite.Assert().Equal(
164+
verificationTaskVerifyDocuments,
165+
taskDocs[3].Type,
166+
)
167+
suite.Assert().Equal(
168+
verificationTaskCompleted,
169+
taskDocs[3].Status,
170+
)
171+
suite.Assert().Equal(
172+
ns2,
173+
taskDocs[3].QueryFilter.Namespace,
174+
)
175+
176+
// ns1’s verify-collection task (added state)
177+
suite.Assert().Equal(
178+
verificationTaskVerifyCollection,
179+
taskDocs[4].Type,
180+
)
181+
suite.Assert().Equal(
182+
verificationTaskAdded,
183+
taskDocs[4].Status,
184+
)
185+
suite.Assert().Equal(
186+
ns1,
187+
taskDocs[4].QueryFilter.Namespace,
188+
)
99189
}

0 commit comments

Comments
 (0)