111
}
112
113
>
func (s *visibilitySuite) TestInsertSelect_Exists() {
visibility.go
114
>
namespaceID := primitives.NewUUID()
115
>
runID := primitives.NewUUID()
116
>
workflowTypeName := shuffle.String(testVisibilityWorkflowTypeName)
117
>
workflowID := shuffle.String(testVisibilityWorkflowID)
118
>
startTime := s.now()
119
>
executionTime := startTime.Add(time.Second)
120
>
status := int32(0)
121
>
closeTime := (*time.Time)(nil)
122
>
historyLength := (*int64)(nil)
123
>
124
>
visibility1 := s.newRandomVisibilityRow(
125
>
namespaceID,
126
>
runID,
127
>
workflowTypeName,
128
>
workflowID,
129
>
startTime,
130
>
executionTime,
131
>
status,
132
>
closeTime,
133
>
historyLength,
134
>
)
135
>
result, err := s.store.InsertIntoVisibility(newVisibilityContext(), &visibility1)
136
>
s.NoError(err)
137
>
rowsAffected, err := result.RowsAffected()
138
>
s.NoError(err)
139
>
s.Equal(1, int(rowsAffected))
140
>
141
>
visibility2 := s.newRandomVisibilityRow(
142
>
namespaceID,
143
>
runID,
144
>
workflowTypeName,
145
>
workflowID,
146
>
startTime,
147
>
executionTime,
148
>
status,
149
>
closeTime,
150
>
historyLength,
151
>
)
152
>
_, err = s.store.InsertIntoVisibility(newVisibilityContext(), &visibility2)
153
>
s.NoError(err)
154
>
// NOTE: cannot do assertion on affected rows
155
>
// PostgreSQL will return 0
156
>
// MySQL will return 1: ref https://dev.mysql.com/doc/c-api/5.7/en/mysql-affected-rows.html
157
>
158
>
selectFilter := sqlplugin.VisibilitySelectFilter{
159
>
NamespaceID: namespaceID.String(),
160
>
RunID: new(runID.String()),
161
>
}
162
>
rows, err := s.store.SelectFromVisibility(newVisibilityContext(), selectFilter)
163
>
s.NoError(err)
164
>
for index := range rows {
165
>
rows[index].NamespaceID = namespaceID.String()
166
>
}
167
>
s.Equal([]sqlplugin.VisibilityRow{visibility1}, rows)
168
}
169