208
}
209
210
>
func (s *visibilitySuite) TestReplaceSelect_Exists() {
visibility.go
211
>
namespaceID := primitives.NewUUID()
212
>
runID := primitives.NewUUID()
213
>
workflowTypeName := shuffle.String(testVisibilityWorkflowTypeName)
214
>
workflowID := shuffle.String(testVisibilityWorkflowID)
215
>
startTime := s.now()
216
>
executionTime := startTime.Add(time.Second)
217
>
status := int32(0)
218
>
closeTime := executionTime.Add(time.Second)
219
>
historyLength := rand.Int63()
220
>
221
>
visibility := s.newRandomVisibilityRow(
222
>
namespaceID,
223
>
runID,
224
>
workflowTypeName,
225
>
workflowID,
226
>
startTime,
227
>
executionTime,
228
>
status,
229
>
new(closeTime),
230
>
new(historyLength),
231
>
)
232
>
result, err := s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility)
233
>
s.NoError(err)
234
>
rowsAffected, err := result.RowsAffected()
235
>
s.NoError(err)
236
>
s.Equal(1, int(rowsAffected))
237
>
238
>
visibility = s.newRandomVisibilityRow(
239
>
namespaceID,
240
>
runID,
241
>
workflowTypeName,
242
>
workflowID,
243
>
startTime,
244
>
executionTime,
245
>
status,
246
>
new(closeTime),
247
>
new(historyLength),
248
>
)
249
>
_, err = s.store.ReplaceIntoVisibility(newVisibilityContext(), &visibility)
250
>
s.NoError(err)
251
>
// NOTE: cannot do assertion on affected rows
252
>
// PostgreSQL will return 1
253
>
// MySQL will return 2: ref https://dev.mysql.com/doc/c-api/5.7/en/mysql-affected-rows.html
254
>
255
>
selectFilter := sqlplugin.VisibilitySelectFilter{
256
>
NamespaceID: namespaceID.String(),
257
>
RunID: new(runID.String()),
258
>
}
259
>
rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter)
260
>
s.NoError(err)
261
>
for index := range rows {
262
>
rows[index].NamespaceID = namespaceID.String()
263
>
}
264
>
s.Equal([]sqlplugin.VisibilityRow{visibility}, rows)
265
}
266