@@ -154,3 +154,89 @@ func TestSelectResponseReleaseMultipleObjects(t *testing.T) {
154154 require .Equal (t , []interface {}{buf3 }, data3 )
155155 require .Equal (t , header3 , resp3 .Header ())
156156}
157+
158+ func TestExecuteResponseRelease (t * testing.T ) {
159+ req := tarantool .NewExecuteRequest (insertQuery )
160+
161+ header := tarantool.Header {RequestId : 123 }
162+ buf := []byte {'v' , '3' }
163+ resp , err := req .Response (header , encodeResponseData (t , buf ))
164+
165+ require .NoError (t , err )
166+ require .NotNil (t , resp )
167+
168+ resp .Release ()
169+
170+ execResp , ok := resp .(* tarantool.ExecuteResponse )
171+ require .True (t , ok )
172+ require .Equal (t , tarantool.ExecuteResponse {}, * execResp )
173+ }
174+
175+ func TestExecuteResponseReleaseReuse (t * testing.T ) {
176+ req := tarantool .NewExecuteRequest (insertQuery )
177+
178+ header1 := tarantool.Header {RequestId : 100 }
179+ buf1 := []byte {'d' , 'a' , 't' , 'a' , '1' }
180+ resp1 , err := req .Response (header1 , encodeResponseData (t , buf1 ))
181+ require .NoError (t , err )
182+
183+ data1 , err := resp1 .Decode ()
184+ require .NoError (t , err )
185+ require .Equal (t , []interface {}{buf1 }, data1 )
186+
187+ resp1 .Release ()
188+
189+ header2 := tarantool.Header {RequestId : 200 }
190+ buf2 := []byte {'d' , 'a' , 't' , 'a' , '2' }
191+ resp2 , err := req .Response (header2 , encodeResponseData (t , buf2 ))
192+ require .NoError (t , err )
193+
194+ data2 , err := resp2 .Decode ()
195+ require .NoError (t , err )
196+ require .Equal (t , []interface {}{buf2 }, data2 )
197+ require .Equal (t , header2 , resp2 .Header ())
198+ require .Equal (t , []interface {}{buf2 }, data2 )
199+ }
200+
201+ func TestPrepareResponseRelease (t * testing.T ) {
202+ req := tarantool .NewPrepareRequest (insertQuery )
203+
204+ header := tarantool.Header {RequestId : 123 }
205+ buf := []byte {'v' , '3' }
206+ resp , err := req .Response (header , encodeResponseData (t , buf ))
207+
208+ require .NoError (t , err )
209+ require .NotNil (t , resp )
210+
211+ resp .Release ()
212+
213+ prepResp , ok := resp .(* tarantool.PrepareResponse )
214+ require .True (t , ok )
215+ require .Equal (t , tarantool.PrepareResponse {}, * prepResp )
216+ }
217+
218+ func TestPrepareResponseReleaseReuse (t * testing.T ) {
219+ req := tarantool .NewPrepareRequest (insertQuery )
220+
221+ header1 := tarantool.Header {RequestId : 100 }
222+ buf1 := []byte {'d' , 'a' , 't' , 'a' , '1' }
223+ resp1 , err := req .Response (header1 , encodeResponseData (t , buf1 ))
224+ require .NoError (t , err )
225+
226+ data1 , err := resp1 .Decode ()
227+ require .NoError (t , err )
228+ require .Equal (t , []interface {}{buf1 }, data1 )
229+
230+ resp1 .Release ()
231+
232+ header2 := tarantool.Header {RequestId : 200 }
233+ buf2 := []byte {'d' , 'a' , 't' , 'a' , '2' }
234+ resp2 , err := req .Response (header2 , encodeResponseData (t , buf2 ))
235+ require .NoError (t , err )
236+
237+ data2 , err := resp2 .Decode ()
238+ require .NoError (t , err )
239+ require .Equal (t , []interface {}{buf2 }, data2 )
240+ require .Equal (t , header2 , resp2 .Header ())
241+ require .Equal (t , []interface {}{buf2 }, data2 )
242+ }
0 commit comments