Skip to content

Commit 976cf37

Browse files
committed
Extract Upsert test
1 parent 38d8939 commit 976cf37

3 files changed

Lines changed: 54 additions & 39 deletions

File tree

tests/data_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ func (c Counters) HasKey(key CounterKey) bool {
6464
func (c Counters) HasValue(check record.MapValueComparator[uint32]) (bool, error) {
6565
for _, item := range c {
6666
res, err := check.Compare(item)
67-
if nil != err {
68-
return false, err
69-
}
7067

71-
if res {
68+
switch {
69+
case err != nil:
70+
return false, err
71+
case res:
7272
return true, nil
7373
}
7474
}

tests/simd_test.go

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -508,41 +508,6 @@ func Test_InsertAlreadyExisted(t *testing.T) {
508508
asserts.Equals(t, "simd: record with passed id already exists: ID == 1", err.Error(), "check error")
509509
}
510510

511-
func Test_Upsert(t *testing.T) {
512-
store := namespace.CreateNamespace[*User]()
513-
store.AddIndex(hash.NewComparableHashIndex(userID, true))
514-
store.AddIndex(hash.NewComparableHashIndex(userStatus, true))
515-
asserts.Success(t, store.Insert(&User{
516-
ID: 1,
517-
Status: StatusActive,
518-
}))
519-
asserts.Success(t, store.Insert(&User{
520-
ID: 2,
521-
Status: StatusDisabled,
522-
}))
523-
asserts.Success(t, store.Insert(&User{
524-
ID: 3,
525-
Status: StatusActive,
526-
}))
527-
528-
err := store.Upsert(&User{
529-
ID: 2,
530-
Status: StatusActive,
531-
})
532-
asserts.Success(t, err)
533-
534-
cur, err := executor.CreateQueryExecutor[*User](store).FetchAll(
535-
context.Background(),
536-
query.NewBuilder[*User](
537-
query.Where(userID, where.EQ, 2),
538-
).Query(),
539-
)
540-
541-
asserts.Success(t, err)
542-
asserts.Success(t, cur.Err())
543-
asserts.Equals(t, StatusActive, cur.Item().Status, "status")
544-
}
545-
546511
func Test_Delete(t *testing.T) {
547512
store := namespace.CreateNamespace[*User]()
548513
store.AddIndex(hash.NewComparableHashIndex(userID, true))

tests/upsert_test.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package tests
2+
3+
import (
4+
"testing"
5+
6+
asserts "github.com/shamcode/assert"
7+
"github.com/shamcode/simd/executor"
8+
"github.com/shamcode/simd/indexes/hash"
9+
"github.com/shamcode/simd/namespace"
10+
"github.com/shamcode/simd/query"
11+
"github.com/shamcode/simd/where"
12+
)
13+
14+
func Test_Upsert(t *testing.T) {
15+
// Arrange
16+
store := namespace.CreateNamespace[*User]()
17+
store.AddIndex(hash.NewComparableHashIndex(userID, true))
18+
store.AddIndex(hash.NewComparableHashIndex(userStatus, true))
19+
asserts.Success(t, store.Insert(&User{ //nolint:exhaustruct
20+
ID: 1,
21+
Status: StatusActive,
22+
}))
23+
asserts.Success(t, store.Insert(&User{ //nolint:exhaustruct
24+
ID: 2,
25+
Status: StatusDisabled,
26+
}))
27+
asserts.Success(t, store.Insert(&User{ //nolint:exhaustruct
28+
ID: 3,
29+
Status: StatusActive,
30+
}))
31+
32+
// Act
33+
err := store.Upsert(&User{ //nolint:exhaustruct
34+
ID: 2,
35+
Status: StatusActive,
36+
})
37+
38+
// Assert
39+
asserts.Success(t, err)
40+
41+
q := query.NewBuilder[*User](
42+
query.Where(userID, where.EQ, 2),
43+
).Query()
44+
45+
cur, err := executor.CreateQueryExecutor[*User](store).FetchAll(t.Context(), q)
46+
47+
asserts.Success(t, err)
48+
asserts.Success(t, cur.Err())
49+
asserts.Equals(t, StatusActive, cur.Item().Status, "status")
50+
}

0 commit comments

Comments
 (0)