@@ -100,6 +100,95 @@ final class BasicCommandsTests: XCTestCase {
100
100
XCTAssertEqual ( first, " 100 " )
101
101
}
102
102
103
+ func test_increment( ) throws {
104
+ var result = try connection? . increment ( #function) . wait ( )
105
+ XCTAssertEqual ( result, 1 )
106
+ result = try connection? . increment ( #function) . wait ( )
107
+ XCTAssertEqual ( result, 2 )
108
+ }
109
+
110
+ func test_incrementBy( ) throws {
111
+ var result = try connection? . increment ( #function, by: 10 ) . wait ( )
112
+ XCTAssertEqual ( result, 10 )
113
+ result = try connection? . increment ( #function, by: - 3 ) . wait ( )
114
+ XCTAssertEqual ( result, 7 )
115
+ result = try connection? . increment ( #function, by: 0 ) . wait ( )
116
+ XCTAssertEqual ( result, 7 )
117
+ }
118
+
119
+ func test_incrementByFloat( ) throws {
120
+ var float = try connection? . increment ( #function, by: Float ( 3.0 ) ) . wait ( )
121
+ XCTAssertEqual ( float, 3.0 )
122
+ float = try connection? . increment ( #function, by: Float ( - 10.135901 ) ) . wait ( )
123
+ XCTAssertEqual ( float, - 7.135901 )
124
+
125
+ var double = try connection? . increment ( #function, by: Double ( 10.2839 ) ) . wait ( )
126
+ XCTAssertEqual ( double, 3.147999 )
127
+ double = try connection? . increment ( #function, by: Double ( 15.2938 ) ) . wait ( )
128
+ XCTAssertEqual ( double, 18.441799 )
129
+ }
130
+
131
+ func test_decrement( ) throws {
132
+ var result = try connection? . decrement ( #function) . wait ( )
133
+ XCTAssertEqual ( result, - 1 )
134
+ result = try connection? . decrement ( #function) . wait ( )
135
+ XCTAssertEqual ( result, - 2 )
136
+ }
137
+
138
+ func test_decrementBy( ) throws {
139
+ var result = try connection? . decrement ( #function, by: - 10 ) . wait ( )
140
+ XCTAssertEqual ( result, 10 )
141
+ result = try connection? . decrement ( #function, by: 3 ) . wait ( )
142
+ XCTAssertEqual ( result, 7 )
143
+ result = try connection? . decrement ( #function, by: 0 ) . wait ( )
144
+ XCTAssertEqual ( result, 7 )
145
+ }
146
+
147
+ func test_mget( ) throws {
148
+ let keys = [ " one " , " two " ]
149
+ try keys. forEach { _ = try connection? . set ( $0, to: $0) . wait ( ) }
150
+
151
+ let values = try connection? . mget ( keys + [ " empty " ] ) . wait ( )
152
+ XCTAssertEqual ( values? . count, 3 )
153
+ XCTAssertEqual ( values ? [ 0 ] . string, " one " )
154
+ XCTAssertEqual ( values ? [ 1 ] . string, " two " )
155
+ XCTAssertEqual ( values ? [ 2 ] . isNull, true )
156
+
157
+ XCTAssertEqual ( try connection? . mget ( [ " empty " , #function] ) . wait ( ) . count, 2 )
158
+ }
159
+
160
+ func test_mset( ) throws {
161
+ let data = [
162
+ " first " : 1 ,
163
+ " second " : 2
164
+ ]
165
+ XCTAssertNoThrow ( try connection? . mset ( data) . wait ( ) )
166
+ let values = try connection? . mget ( [ " first " , " second " ] ) . wait ( ) . compactMap { $0. string }
167
+ XCTAssertEqual ( values? . count, 2 )
168
+ XCTAssertEqual ( values ? [ 0 ] , " 1 " )
169
+ XCTAssertEqual ( values ? [ 1 ] , " 2 " )
170
+
171
+ XCTAssertNoThrow ( try connection? . mset ( [ " first " : 10 ] ) . wait ( ) )
172
+ let val = try connection? . get ( " first " ) . wait ( )
173
+ XCTAssertEqual ( val, " 10 " )
174
+ }
175
+
176
+ func test_msetnx( ) throws {
177
+ let data = [
178
+ " first " : 1 ,
179
+ " second " : 2
180
+ ]
181
+ var success = try connection? . msetnx ( data) . wait ( )
182
+ XCTAssertEqual ( success, true )
183
+
184
+ success = try connection? . msetnx ( [ " first " : 10 , " second " : 20 ] ) . wait ( )
185
+ XCTAssertEqual ( success, false )
186
+
187
+ let values = try connection? . mget ( [ " first " , " second " ] ) . wait ( ) . compactMap { $0. string }
188
+ XCTAssertEqual ( values ? [ 0 ] , " 1 " )
189
+ XCTAssertEqual ( values ? [ 1 ] , " 2 " )
190
+ }
191
+
103
192
static var allTests = [
104
193
( " test_select " , test_select) ,
105
194
( " test_set " , test_set) ,
@@ -108,5 +197,14 @@ final class BasicCommandsTests: XCTestCase {
108
197
( " test_delete " , test_delete) ,
109
198
( " test_ping " , test_ping) ,
110
199
( " test_echo " , test_echo) ,
200
+ ( " test_swapdb " , test_swapdb) ,
201
+ ( " test_increment " , test_increment) ,
202
+ ( " test_incrementBy " , test_incrementBy) ,
203
+ ( " test_incrementByFloat " , test_incrementByFloat) ,
204
+ ( " test_decrement " , test_decrement) ,
205
+ ( " test_decrementBy " , test_decrementBy) ,
206
+ ( " test_mget " , test_mget) ,
207
+ ( " test_mset " , test_mset) ,
208
+ ( " test_msetnx " , test_msetnx) ,
111
209
]
112
210
}
0 commit comments