@@ -24,6 +24,16 @@ final class MemcachedRequestEncoderTests: XCTestCase {
24
24
self . encoder = MemcachedRequestEncoder ( )
25
25
}
26
26
27
+ func encodeRequest( _ request: MemcachedRequest ) -> ByteBuffer {
28
+ var outBuffer = ByteBufferAllocator ( ) . buffer ( capacity: 0 )
29
+ do {
30
+ try self . encoder. encode ( data: request, out: & outBuffer)
31
+ } catch {
32
+ XCTFail ( " Encoding failed with error: \( error) " )
33
+ }
34
+ return outBuffer
35
+ }
36
+
27
37
func testEncodeSetRequest( ) {
28
38
// Prepare a MemcachedRequest
29
39
var buffer = ByteBufferAllocator ( ) . buffer ( capacity: 2 )
@@ -32,17 +42,46 @@ final class MemcachedRequestEncoderTests: XCTestCase {
32
42
let request = MemcachedRequest . set ( command)
33
43
34
44
// pass our request through the encoder
35
- var outBuffer = ByteBufferAllocator ( ) . buffer ( capacity: 0 )
36
- do {
37
- try self . encoder. encode ( data: request, out: & outBuffer)
38
- } catch {
39
- XCTFail ( " Encoding failed with error: \( error) " )
40
- }
45
+ let outBuffer = self . encodeRequest ( request)
41
46
42
47
let expectedEncodedData = " ms foo 2 \r \n hi \r \n "
43
48
XCTAssertEqual ( outBuffer. getString ( at: 0 , length: outBuffer. readableBytes) , expectedEncodedData)
44
49
}
45
50
51
+ func testEncodeAppendRequest( ) {
52
+ // Prepare a MemcachedRequest
53
+ var buffer = ByteBufferAllocator ( ) . buffer ( capacity: 2 )
54
+ buffer. writeString ( " hi " )
55
+
56
+ var flags = MemcachedFlags ( )
57
+ flags. storageMode = . append
58
+ let command = MemcachedRequest . SetCommand ( key: " foo " , value: buffer, flags: flags)
59
+ let request = MemcachedRequest . set ( command)
60
+
61
+ // pass our request through the encoder
62
+ let outBuffer = self . encodeRequest ( request)
63
+
64
+ let expectedEncodedData = " ms foo 2 MA \r \n hi \r \n "
65
+ XCTAssertEqual ( outBuffer. getString ( at: 0 , length: outBuffer. readableBytes) , expectedEncodedData)
66
+ }
67
+
68
+ func testEncodePrependRequest( ) {
69
+ // Prepare a MemcachedRequest
70
+ var buffer = ByteBufferAllocator ( ) . buffer ( capacity: 2 )
71
+ buffer. writeString ( " hi " )
72
+
73
+ var flags = MemcachedFlags ( )
74
+ flags. storageMode = . prepend
75
+ let command = MemcachedRequest . SetCommand ( key: " foo " , value: buffer, flags: flags)
76
+ let request = MemcachedRequest . set ( command)
77
+
78
+ // pass our request through the encoder
79
+ let outBuffer = self . encodeRequest ( request)
80
+
81
+ let expectedEncodedData = " ms foo 2 MP \r \n hi \r \n "
82
+ XCTAssertEqual ( outBuffer. getString ( at: 0 , length: outBuffer. readableBytes) , expectedEncodedData)
83
+ }
84
+
46
85
func testEncodeTouchRequest( ) {
47
86
// Prepare a MemcachedRequest
48
87
var flags = MemcachedFlags ( )
@@ -53,12 +92,7 @@ final class MemcachedRequestEncoderTests: XCTestCase {
53
92
let request = MemcachedRequest . get ( command)
54
93
55
94
// pass our request through the encoder
56
- var outBuffer = ByteBufferAllocator ( ) . buffer ( capacity: 0 )
57
- do {
58
- try self . encoder. encode ( data: request, out: & outBuffer)
59
- } catch {
60
- XCTFail ( " Encoding failed with error: \( error) " )
61
- }
95
+ let outBuffer = self . encodeRequest ( request)
62
96
63
97
let expectedEncodedData = " mg foo T89 \r \n "
64
98
XCTAssertEqual ( outBuffer. getString ( at: 0 , length: outBuffer. readableBytes) , expectedEncodedData)
@@ -75,12 +109,7 @@ final class MemcachedRequestEncoderTests: XCTestCase {
75
109
let request = MemcachedRequest . get ( command)
76
110
77
111
// pass our request through the encoder
78
- var outBuffer = ByteBufferAllocator ( ) . buffer ( capacity: 0 )
79
- do {
80
- try self . encoder. encode ( data: request, out: & outBuffer)
81
- } catch {
82
- XCTFail ( " Encoding failed with error: \( error) " )
83
- }
112
+ let outBuffer = self . encodeRequest ( request)
84
113
85
114
// Time-To-Live has been transformed to a Unix timestamp
86
115
var timespec = timespec ( )
@@ -109,12 +138,7 @@ final class MemcachedRequestEncoderTests: XCTestCase {
109
138
let request = MemcachedRequest . get ( command)
110
139
111
140
// pass our request through the encoder
112
- var outBuffer = ByteBufferAllocator ( ) . buffer ( capacity: 0 )
113
- do {
114
- try self . encoder. encode ( data: request, out: & outBuffer)
115
- } catch {
116
- XCTFail ( " Encoding failed with error: \( error) " )
117
- }
141
+ let outBuffer = self . encodeRequest ( request)
118
142
119
143
let expectedEncodedData = " mg foo T0 \r \n "
120
144
XCTAssertEqual ( outBuffer. getString ( at: 0 , length: outBuffer. readableBytes) , expectedEncodedData)
@@ -128,13 +152,8 @@ final class MemcachedRequestEncoderTests: XCTestCase {
128
152
129
153
let request = MemcachedRequest . get ( command)
130
154
131
- // Pass our request through the encoder
132
- var outBuffer = ByteBufferAllocator ( ) . buffer ( capacity: 0 )
133
- do {
134
- try self . encoder. encode ( data: request, out: & outBuffer)
135
- } catch {
136
- XCTFail ( " Encoding failed with error: \( error) " )
137
- }
155
+ // pass our request through the encoder
156
+ let outBuffer = self . encodeRequest ( request)
138
157
139
158
let expectedEncodedData = " mg foo v \r \n "
140
159
XCTAssertEqual ( outBuffer. getString ( at: 0 , length: outBuffer. readableBytes) , expectedEncodedData)
@@ -145,13 +164,8 @@ final class MemcachedRequestEncoderTests: XCTestCase {
145
164
let command = MemcachedRequest . DeleteCommand ( key: " foo " )
146
165
let request = MemcachedRequest . delete ( command)
147
166
148
- // Pass our request through the encoder
149
- var outBuffer = ByteBufferAllocator ( ) . buffer ( capacity: 0 )
150
- do {
151
- try self . encoder. encode ( data: request, out: & outBuffer)
152
- } catch {
153
- XCTFail ( " Encoding failed with error: \( error) " )
154
- }
167
+ // pass our request through the encoder
168
+ let outBuffer = self . encodeRequest ( request)
155
169
156
170
let expectedEncodedData = " md foo \r \n "
157
171
XCTAssertEqual ( outBuffer. getString ( at: 0 , length: outBuffer. readableBytes) , expectedEncodedData)
0 commit comments