59
}
60
62
>
tq1 := "tq1"
63
>
version := int64(0) // initial version must be 0
64
>
65
>
// check that get returns not found
66
>
_, err := s.taskManager.GetTaskQueueUserData(s.ctx, &p.GetTaskQueueUserDataRequest{
67
>
NamespaceID: s.namespaceID,
68
>
TaskQueue: tq1,
69
>
})
70
>
s.Error(err)
71
>
72
>
// set initial user data
73
>
d1 := s.makeData(hlc.Zero(12345), version)
74
>
err = s.taskManager.UpdateTaskQueueUserData(s.ctx, &p.UpdateTaskQueueUserDataRequest{
75
>
NamespaceID: s.namespaceID,
76
>
Updates: map[string]*p.SingleTaskQueueUserDataUpdate{
77
>
tq1: &p.SingleTaskQueueUserDataUpdate{
78
>
UserData: d1,
79
>
},
80
>
},
81
>
})
82
>
s.NoError(err)
83
>
version++
84
>
85
>
// check that we can get it back
86
>
res, err := s.taskManager.GetTaskQueueUserData(s.ctx, &p.GetTaskQueueUserDataRequest{
87
>
NamespaceID: s.namespaceID,
88
>
TaskQueue: tq1,
89
>
})
90
>
s.NoError(err)
91
>
s.Equal(version, res.UserData.Version)
92
>
s.True(hlc.Equal(d1.Data.Clock, res.UserData.Data.Clock))
93
>
94
>
// increment it
95
>
d2 := s.makeData(d1.Data.Clock, version)
96
>
err = s.taskManager.UpdateTaskQueueUserData(s.ctx, &p.UpdateTaskQueueUserDataRequest{
97
>
NamespaceID: s.namespaceID,
98
>
Updates: map[string]*p.SingleTaskQueueUserDataUpdate{
99
>
tq1: &p.SingleTaskQueueUserDataUpdate{
100
>
UserData: d2,
101
>
},
102
>
},
103
>
})
104
>
s.NoError(err)
105
>
version++
106
>
107
>
// check that we can get it back
108
>
res, err = s.taskManager.GetTaskQueueUserData(s.ctx, &p.GetTaskQueueUserDataRequest{
109
>
NamespaceID: s.namespaceID,
110
>
TaskQueue: tq1,
111
>
})
112
>
s.NoError(err)
113
>
s.Equal(version, res.UserData.Version)
114
>
s.True(hlc.Equal(d2.Data.Clock, res.UserData.Data.Clock))
115
>
}
116
117
func (s *TaskQueueUserDataSuite) TestUpdateConflict() {