982
}
983
984
>
func (s *visibilitySuite) TestSelect_MinStartTime_MaxStartTime_StatusOpen_Multiple() {
visibility.go
985
>
numStartTime := 20
986
>
visibilityPerStartTime := 4
987
>
pageSize := 5
988
>
989
>
var visibilities []sqlplugin.VisibilityRow
990
>
991
>
namespaceID := primitives.NewUUID()
992
>
startTime := s.now()
993
>
minStartTime := startTime
994
>
maxStartTime := startTime.Add(time.Duration(numStartTime) * time.Second)
995
>
executionTime := startTime.Add(time.Second)
996
>
status := int32(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING)
997
>
closeTime := (*time.Time)(nil)
998
>
historyLength := (*int64)(nil)
999
>
for range numStartTime {
1000
>
for range visibilityPerStartTime {
1001
>
workflowID := shuffle.String(testVisibilityWorkflowID)
1002
>
runID := primitives.NewUUID()
1003
>
workflowTypeName := shuffle.String(testVisibilityWorkflowTypeName)
1004
>
visibility := s.newRandomVisibilityRow(
1005
>
namespaceID,
1006
>
runID,
1007
>
workflowTypeName,
1008
>
workflowID,
1009
>
startTime,
1010
>
executionTime,
1011
>
status,
1012
>
closeTime,
1013
>
historyLength,
1014
>
)
1015
>
result, err := s.store.InsertIntoVisibility(newVisibilityContext(), &visibility)
1016
>
s.NoError(err)
1017
>
rowsAffected, err := result.RowsAffected()
1018
>
s.NoError(err)
1019
>
s.Equal(1, int(rowsAffected))
1020
>
1021
>
visibilities = append(visibilities, visibility)
1022
>
}
1023
1025
}
1026
1027
>
selectFilter := sqlplugin.VisibilitySelectFilter{
visibility.go
1028
>
NamespaceID: namespaceID.String(),
1029
>
WorkflowID: nil,
1030
>
RunID: new(""),
1031
>
WorkflowTypeName: nil,
1032
>
MinTime: new(minStartTime),
1033
>
MaxTime: new(maxStartTime),
1034
>
Status: int32(enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING),
1035
>
PageSize: new(pageSize),
1036
>
}
1037
>
var rows []sqlplugin.VisibilityRow
1038
>
for {
1039
>
rowsPerPage, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter)
1040
>
s.NoError(err)
1041
>
rows = append(rows, rowsPerPage...)
1042
>
1043
>
if len(rowsPerPage) > 0 {
1044
>
lastVisibility := rowsPerPage[len(rowsPerPage)-1]
1045
>
selectFilter.MaxTime = new(lastVisibility.StartTime)
1046
>
selectFilter.RunID = new(lastVisibility.RunID)
1047
>
} else {
1048
>
break
1049
}
1050
}
1052
>
s.sortByStartTimeDescRunIDAsc(visibilities)
1053
>
for index := range rows {
1054
>
rows[index].NamespaceID = namespaceID.String()
1055
>
}
1056
>
s.Equal(visibilities, rows)
1057
}
1058