733
}
734
735
>
func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_WorkflowTypeName_StatusOpen_Multiple() {
visibility.go
736
>
numStartTime := 20
737
>
visibilityPerStartTime := 4
738
>
pageSize := 5
739
>
740
>
var visibilities []sqlplugin.VisibilityRow
741
>
742
>
namespaceID := primitives.NewUUID()
743
>
workflowTypeName := shuffle.String(testVisibilityWorkflowTypeName)
744
>
startTime := s.now()
745
>
minStartTime := startTime
746
>
maxStartTime := startTime.Add(time.Duration(numStartTime) * time.Second)
747
>
executionTime := startTime.Add(time.Second)
748
>
status := int32(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING)
749
>
closeTime := (*time.Time)(nil)
750
>
historyLength := (*int64)(nil)
751
>
for range numStartTime {
752
>
for range visibilityPerStartTime {
753
>
workflowID := shuffle.String(testVisibilityWorkflowID)
754
>
runID := primitives.NewUUID()
755
>
visibility := s.newRandomVisibilityRow(
756
>
namespaceID,
757
>
runID,
758
>
workflowTypeName,
759
>
workflowID,
760
>
startTime,
761
>
executionTime,
762
>
status,
763
>
closeTime,
764
>
historyLength,
765
>
)
766
>
result, err := s.store.InsertIntoVisibility(newVisibilityContext(), &visibility)
767
>
s.NoError(err)
768
>
rowsAffected, err := result.RowsAffected()
769
>
s.NoError(err)
770
>
s.Equal(1, int(rowsAffected))
771
>
772
>
visibilities = append(visibilities, visibility)
773
>
}
774
776
}
777
778
>
selectFilter := sqlplugin.VisibilitySelectFilter{
visibility.go
779
>
NamespaceID: namespaceID.String(),
780
>
WorkflowID: nil,
781
>
RunID: new(""),
782
>
WorkflowTypeName: new(workflowTypeName),
783
>
MinTime: new(minStartTime),
784
>
MaxTime: new(maxStartTime),
785
>
Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING),
786
>
PageSize: new(pageSize),
787
>
}
788
>
var rows []sqlplugin.VisibilityRow
789
>
for {
790
>
rowsPerPage, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter)
791
>
s.NoError(err)
792
>
rows = append(rows, rowsPerPage...)
793
>
794
>
if len(rowsPerPage) > 0 {
795
>
lastVisibility := rowsPerPage[len(rowsPerPage)-1]
796
>
selectFilter.MaxTime = new(lastVisibility.StartTime)
797
>
selectFilter.RunID = new(lastVisibility.RunID)
798
>
} else {
799
>
break
800
}
801
}
803
>
s.sortByStartTimeDescRunIDAsc(visibilities)
804
>
for index := range rows {
805
>
rows[index].NamespaceID = namespaceID.String()
806
>
}
807
>
s.Equal(visibilities, rows)
808
}
809