484
}
485
486
>
func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowID_StatusOpen_Multiple() {
visibility.go
487
>
numStartTime := 20
488
>
visibilityPerStartTime := 4
489
>
pageSize := 5
490
>
491
>
var visibilities []sqlplugin.VisibilityRow
492
>
493
>
namespaceID := primitives.NewUUID()
494
>
workflowID := shuffle.String(testVisibilityWorkflowID)
495
>
startTime := s.now()
496
>
minStartTime := startTime
497
>
maxStartTime := startTime.Add(time.Duration(numStartTime) * time.Second)
498
>
executionTime := startTime.Add(time.Second)
499
>
status := int32(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING)
500
>
closeTime := (*time.Time)(nil)
501
>
historyLength := (*int64)(nil)
502
>
for range numStartTime {
503
>
for range visibilityPerStartTime {
504
>
runID := primitives.NewUUID()
505
>
workflowTypeName := shuffle.String(testVisibilityWorkflowTypeName)
506
>
visibility := s.newRandomVisibilityRow(
507
>
namespaceID,
508
>
runID,
509
>
workflowTypeName,
510
>
workflowID,
511
>
startTime,
512
>
executionTime,
513
>
status,
514
>
closeTime,
515
>
historyLength,
516
>
)
517
>
result, err := s.store.InsertIntoVisibility(newVisibilityContext(), &visibility)
518
>
s.NoError(err)
519
>
rowsAffected, err := result.RowsAffected()
520
>
s.NoError(err)
521
>
s.Equal(1, int(rowsAffected))
522
>
523
>
visibilities = append(visibilities, visibility)
524
>
}
525
527
}
528
529
>
selectFilter := sqlplugin.VisibilitySelectFilter{
visibility.go
530
>
NamespaceID: namespaceID.String(),
531
>
WorkflowID: new(workflowID),
532
>
RunID: new(""),
533
>
WorkflowTypeName: nil,
534
>
MinTime: new(minStartTime),
535
>
MaxTime: new(maxStartTime),
536
>
Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING),
537
>
PageSize: new(pageSize),
538
>
}
539
>
var rows []sqlplugin.VisibilityRow
540
>
for {
541
>
rowsPerPage, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter)
542
>
s.NoError(err)
543
>
rows = append(rows, rowsPerPage...)
544
>
545
>
if len(rowsPerPage) > 0 {
546
>
lastVisibility := rowsPerPage[len(rowsPerPage)-1]
547
>
selectFilter.MaxTime = new(lastVisibility.StartTime)
548
>
selectFilter.RunID = new(lastVisibility.RunID)
549
>
} else {
550
>
break
551
}
552
}
554
>
s.sortByStartTimeDescRunIDAsc(visibilities)
555
>
for index := range rows {
556
>
rows[index].NamespaceID = namespaceID.String()
557
>
}
558
>
s.Equal(visibilities, rows)
559
}
560