Skip to content

Commit 32dd300

Browse files
committed
test: use testify
1 parent a2e391e commit 32dd300

File tree

6 files changed

+101
-98
lines changed

6 files changed

+101
-98
lines changed

bikeymap/bikeymap_test.go

Lines changed: 34 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"testing"
77

88
"github.com/aeimer/go-multikeymap/container"
9+
"github.com/stretchr/testify/assert"
10+
"github.com/stretchr/testify/require"
911
)
1012

1113
func ExampleNew() {
@@ -31,9 +33,7 @@ func TestBiKeyMap_SetAndGet(t *testing.T) {
3133
bm := New[string, int, string]()
3234

3335
err := bm.Put("keyA1", 1, "value1")
34-
if err != nil {
35-
t.Fatalf("unexpected error: %v", err)
36-
}
36+
require.NoError(t, err)
3737

3838
value, exists := bm.GetByKeyA("keyA1")
3939
if !exists || value != "value1" {
@@ -50,29 +50,22 @@ func TestBiKeyMap_SetDuplicateKeys(t *testing.T) {
5050
bm := New[string, int, string]()
5151

5252
err := bm.Put("keyA1", 1, "value1")
53-
if err != nil {
54-
t.Fatalf("unexpected error: %v", err)
55-
}
53+
require.NoError(t, err)
5654

5755
err = bm.Put("keyA2", 1, "value2")
58-
if err == nil {
59-
t.Fatal("expected error, got nil")
60-
}
56+
require.Error(t, err)
6157

6258
err = bm.Put("keyA1", 2, "value2")
63-
if err == nil {
64-
t.Fatal("expected error, got nil")
65-
}
59+
require.Error(t, err)
6660
}
6761

6862
func TestBiKeyMap_RemoveByKeyA(t *testing.T) {
6963
bm := New[string, int, string]()
7064

71-
_ = bm.Put("keyA1", 1, "value1")
72-
err := bm.RemoveByKeyA("keyA1")
73-
if err != nil {
74-
t.Fatalf("unexpected error: %v", err)
75-
}
65+
err := bm.Put("keyA1", 1, "value1")
66+
require.NoError(t, err)
67+
err = bm.RemoveByKeyA("keyA1")
68+
require.NoError(t, err)
7669

7770
_, exists := bm.GetByKeyA("keyA1")
7871
if exists {
@@ -88,11 +81,10 @@ func TestBiKeyMap_RemoveByKeyA(t *testing.T) {
8881
func TestBiKeyMap_RemoveByKeyB(t *testing.T) {
8982
bm := New[string, int, string]()
9083

91-
_ = bm.Put("keyA1", 1, "value1")
92-
err := bm.RemoveByKeyB(1)
93-
if err != nil {
94-
t.Fatalf("unexpected error: %v", err)
95-
}
84+
err := bm.Put("keyA1", 1, "value1")
85+
require.NoError(t, err)
86+
err = bm.RemoveByKeyB(1)
87+
require.NoError(t, err)
9688

9789
_, exists := bm.GetByKeyA("keyA1")
9890
if exists {
@@ -107,27 +99,23 @@ func TestBiKeyMap_RemoveByKeyB(t *testing.T) {
10799

108100
func TestBiKeyMap_String(t *testing.T) {
109101
bm := New[string, int, string]()
110-
_ = bm.Put("keyA1", 1, "value1")
102+
err := bm.Put("keyA1", 1, "value1")
103+
require.NoError(t, err)
104+
111105
expected := "BiKeyMap: map[keyA1:value1]"
112-
if bm.String() != expected {
113-
t.Errorf("expected %s, got %s", expected, bm.String())
114-
}
106+
assert.Equal(t, expected, bm.String())
115107
}
116108

117109
func TestBiKeyMap_RemoveByKeyA_NotFound(t *testing.T) {
118110
bm := New[string, int, string]()
119111
err := bm.RemoveByKeyA("nonExistentKey")
120-
if err == nil {
121-
t.Error("expected error, got nil")
122-
}
112+
require.Error(t, err)
123113
}
124114

125115
func TestBiKeyMap_RemoveByKeyB_NotFound(t *testing.T) {
126116
bm := New[string, int, string]()
127117
err := bm.RemoveByKeyB(999)
128-
if err == nil {
129-
t.Error("expected error, got nil")
130-
}
118+
require.Error(t, err)
131119
}
132120
func TestBiKeyMap_EmptyAndSize(t *testing.T) {
133121
bm := New[string, int, string]()
@@ -136,48 +124,45 @@ func TestBiKeyMap_EmptyAndSize(t *testing.T) {
136124
t.Error("expected map to be empty")
137125
}
138126

139-
_ = bm.Put("keyA1", 1, "value1")
127+
err := bm.Put("keyA1", 1, "value1")
128+
require.NoError(t, err)
140129
if bm.Empty() {
141130
t.Error("expected map to not be empty")
142131
}
143132

144-
if bm.Size() != 1 {
145-
t.Errorf("expected size 1, got %d", bm.Size())
146-
}
133+
assert.Equal(t, 1, bm.Size())
147134
}
148135

149136
func TestBiKeyMap_Clear(t *testing.T) {
150137
bm := New[string, int, string]()
151138

152-
_ = bm.Put("keyA1", 1, "value1")
153-
_ = bm.Put("keyA2", 2, "value2")
139+
err := bm.Put("keyA1", 1, "value1")
140+
require.NoError(t, err)
141+
err = bm.Put("keyA2", 2, "value2")
142+
require.NoError(t, err)
154143
bm.Clear()
155144

156145
if !bm.Empty() {
157146
t.Error("expected map to be empty after clear")
158147
}
159148

160-
if bm.Size() != 0 {
161-
t.Errorf("expected size 0, got %d", bm.Size())
162-
}
149+
assert.Equal(t, 0, bm.Size())
163150
}
164151

165152
func TestBiKeyMap_Values(t *testing.T) {
166153
bm := New[string, int, string]()
167154

168-
_ = bm.Put("keyA1", 1, "value1")
169-
_ = bm.Put("keyA2", 2, "value2")
155+
err := bm.Put("keyA1", 1, "value1")
156+
require.NoError(t, err)
157+
err = bm.Put("keyA2", 2, "value2")
158+
require.NoError(t, err)
170159

171160
values := bm.Values()
172-
if len(values) != 2 {
173-
t.Errorf("expected 2 values, got %d", len(values))
174-
}
161+
assert.Len(t, values, 2)
175162

176163
expectedValues := map[string]bool{"value1": true, "value2": true}
177164
for _, value := range values {
178-
if !expectedValues[value] {
179-
t.Errorf("unexpected value: %v", value)
180-
}
165+
assert.Contains(t, expectedValues, value)
181166
}
182167
}
183168

bikeymap/concurrent_test.go

Lines changed: 30 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77
"testing"
88

99
"github.com/aeimer/go-multikeymap/container"
10+
"github.com/stretchr/testify/assert"
11+
"github.com/stretchr/testify/require"
1012
)
1113

1214
func ExampleNewConcurrent() {
@@ -32,9 +34,7 @@ func TestConcurrentBiKeyMap_SetAndGet(t *testing.T) {
3234
bm := NewConcurrent[string, int, string]()
3335

3436
err := bm.Put("keyA1", 1, "value1")
35-
if err != nil {
36-
t.Fatalf("unexpected error: %v", err)
37-
}
37+
require.NoError(t, err)
3838

3939
value, exists := bm.GetByKeyA("keyA1")
4040
if !exists || value != "value1" {
@@ -51,29 +51,23 @@ func TestConcurrentBiKeyMap_SetDuplicateKeys(t *testing.T) {
5151
bm := NewConcurrent[string, int, string]()
5252

5353
err := bm.Put("keyA1", 1, "value1")
54-
if err != nil {
55-
t.Fatalf("unexpected error: %v", err)
56-
}
54+
require.NoError(t, err)
5755

5856
err = bm.Put("keyA2", 1, "value2")
59-
if err == nil {
60-
t.Fatal("expected error, got nil")
61-
}
57+
require.Error(t, err)
6258

6359
err = bm.Put("keyA1", 2, "value2")
64-
if err == nil {
65-
t.Fatal("expected error, got nil")
66-
}
60+
require.Error(t, err)
6761
}
6862

6963
func TestConcurrentBiKeyMap_RemoveByKeyA(t *testing.T) {
7064
bm := NewConcurrent[string, int, string]()
7165

72-
_ = bm.Put("keyA1", 1, "value1")
73-
err := bm.RemoveByKeyA("keyA1")
74-
if err != nil {
75-
t.Fatalf("unexpected error: %v", err)
76-
}
66+
err := bm.Put("keyA1", 1, "value1")
67+
require.NoError(t, err)
68+
69+
err = bm.RemoveByKeyA("keyA1")
70+
require.NoError(t, err)
7771

7872
_, exists := bm.GetByKeyA("keyA1")
7973
if exists {
@@ -89,11 +83,10 @@ func TestConcurrentBiKeyMap_RemoveByKeyA(t *testing.T) {
8983
func TestConcurrentBiKeyMap_RemoveByKeyB(t *testing.T) {
9084
bm := NewConcurrent[string, int, string]()
9185

92-
_ = bm.Put("keyA1", 1, "value1")
93-
err := bm.RemoveByKeyB(1)
94-
if err != nil {
95-
t.Fatalf("unexpected error: %v", err)
96-
}
86+
err := bm.Put("keyA1", 1, "value1")
87+
require.NoError(t, err)
88+
err = bm.RemoveByKeyB(1)
89+
require.NoError(t, err)
9790

9891
_, exists := bm.GetByKeyA("keyA1")
9992
if exists {
@@ -137,7 +130,8 @@ func TestConcurrentBiKeyMap_EmptyAndSize(t *testing.T) {
137130
t.Error("expected map to be empty")
138131
}
139132

140-
_ = bm.Put("keyA1", 1, "value1")
133+
err := bm.Put("keyA1", 1, "value1")
134+
require.NoError(t, err)
141135
if bm.Empty() {
142136
t.Error("expected map to not be empty")
143137
}
@@ -150,8 +144,11 @@ func TestConcurrentBiKeyMap_EmptyAndSize(t *testing.T) {
150144
func TestConcurrentBiKeyMap_Clear(t *testing.T) {
151145
bm := NewConcurrent[string, int, string]()
152146

153-
_ = bm.Put("keyA1", 1, "value1")
154-
_ = bm.Put("keyA2", 2, "value2")
147+
err := bm.Put("keyA1", 1, "value1")
148+
require.NoError(t, err)
149+
err = bm.Put("keyA2", 2, "value2")
150+
require.NoError(t, err)
151+
155152
bm.Clear()
156153

157154
if !bm.Empty() {
@@ -166,19 +163,19 @@ func TestConcurrentBiKeyMap_Clear(t *testing.T) {
166163
func TestConcurrentBiKeyMap_Values(t *testing.T) {
167164
bm := NewConcurrent[string, int, string]()
168165

169-
_ = bm.Put("keyA1", 1, "value1")
170-
_ = bm.Put("keyA2", 2, "value2")
166+
err := bm.Put("keyA1", 1, "value1")
167+
require.NoError(t, err)
168+
err = bm.Put("keyA2", 2, "value2")
169+
require.NoError(t, err)
171170

172171
values := bm.Values()
173-
if len(values) != 2 {
174-
t.Errorf("expected 2 values, got %d", len(values))
175-
}
172+
assert.Len(t, values, 2)
176173

174+
// We get a list here, but as the map underneath has no order
175+
// we need to check for contains and not equals list.
177176
expectedValues := map[string]bool{"value1": true, "value2": true}
178177
for _, value := range values {
179-
if !expectedValues[value] {
180-
t.Errorf("unexpected value: %v", value)
181-
}
178+
assert.Contains(t, expectedValues, value)
182179
}
183180
}
184181

go.mod

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
11
module github.com/aeimer/go-multikeymap
22

33
go 1.23.1
4+
5+
require github.com/stretchr/testify v1.10.0
6+
7+
require (
8+
github.com/davecgh/go-spew v1.1.1 // indirect
9+
github.com/pmezard/go-difflib v1.0.0 // indirect
10+
gopkg.in/yaml.v3 v3.0.1 // indirect
11+
)

go.sum

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
2+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5+
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
6+
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
7+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
8+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
9+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
10+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

multikeymap/concurrent_test.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"testing"
88

99
"github.com/aeimer/go-multikeymap/container"
10+
"github.com/stretchr/testify/assert"
1011
)
1112

1213
func ExampleNewConcurrent() {
@@ -135,11 +136,13 @@ func TestConcurrentMultiKeyMap_Values(t *testing.T) {
135136
mm.Put("key1", 1)
136137
mm.Put("key2", 2)
137138
values := mm.Values()
138-
expected := []int{1, 2}
139-
for i, v := range values {
140-
if v != expected[i] {
141-
t.Errorf("expected value %d, got %d", expected[i], v)
142-
}
139+
assert.Len(t, values, 2)
140+
141+
// We get a list here, but as the map underneath has no order
142+
// we need to check for contains and not equals list.
143+
expectedValues := map[int]bool{1: true, 2: true}
144+
for _, value := range values {
145+
assert.Contains(t, expectedValues, value)
143146
}
144147
}
145148

multikeymap/multikeymap_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"testing"
77

88
"github.com/aeimer/go-multikeymap/container"
9+
"github.com/stretchr/testify/assert"
910
)
1011

1112
func ExampleNew() {
@@ -103,19 +104,16 @@ func TestMultiKeyMap_GetBySecondaryKey_NotFound(t *testing.T) {
103104
func TestMultiKeyMap_String(t *testing.T) {
104105
mm := New[string, int]()
105106
mm.Put("key1", 1)
107+
106108
expected := "MultiKeyMap: map[key1:1]"
107-
if mm.String() != expected {
108-
t.Errorf("expected %s, got %s", expected, mm.String())
109-
}
109+
assert.Equal(t, expected, mm.String())
110110
}
111111

112112
func TestMultiKeyMap_Size(t *testing.T) {
113113
mm := New[string, int]()
114114
mm.Put("key1", 1)
115115
mm.Put("key2", 2)
116-
if mm.Size() != 2 {
117-
t.Errorf("expected size 2, got %d", mm.Size())
118-
}
116+
assert.Equal(t, 2, mm.Size())
119117
}
120118

121119
func TestMultiKeyMap_Empty(t *testing.T) {
@@ -134,11 +132,13 @@ func TestMultiKeyMap_Values(t *testing.T) {
134132
mm.Put("key1", 1)
135133
mm.Put("key2", 2)
136134
values := mm.Values()
137-
expected := []int{1, 2}
138-
for i, v := range values {
139-
if v != expected[i] {
140-
t.Errorf("expected value %d, got %d", expected[i], v)
141-
}
135+
assert.Len(t, values, 2)
136+
137+
// We get a list here, but as the map underneath has no order
138+
// we need to check for contains and not equals list.
139+
expectedValues := map[int]bool{1: true, 2: true}
140+
for _, value := range values {
141+
assert.Contains(t, expectedValues, value)
142142
}
143143
}
144144

0 commit comments

Comments
 (0)