@@ -204,3 +204,107 @@ fn test_fill_buffer_until_many() {
204204 assert reader.builder.len == 5
205205 assert reader.get_string () == '12345'
206206}
207+
208+ fn test_read_all_bytes_false () {
209+ mut two := TwoByteReader{
210+ data: '12345'
211+ }
212+ mut reader := StringReader.new (reader: two)
213+ assert reader.read_all_bytes (false )! == [u8 (49 ), 50 ]
214+ assert reader.read_all_bytes (false )! == [u8 (51 ), 52 ]
215+ assert reader.read_all_bytes (false )! == [u8 (53 )]
216+ }
217+
218+ fn test_read_all_bytes_true () {
219+ mut two := TwoByteReader{
220+ data: '12345'
221+ }
222+ mut reader := StringReader.new (reader: two)
223+ assert reader.read_all_bytes (false )! == [u8 (49 ), 50 ]
224+ assert reader.read_all_bytes (true )! == [u8 (51 ), 52 , 53 ]
225+ }
226+
227+ fn test_read_all_false () {
228+ mut two := TwoByteReader{
229+ data: '12345'
230+ }
231+ mut reader := StringReader.new (reader: two)
232+ assert reader.read_all (false )! == '12'
233+ assert reader.read_all (false )! == '34'
234+ assert reader.read_all (false )! == '5'
235+ }
236+
237+ fn test_read_all_true () {
238+ mut two := TwoByteReader{
239+ data: '12345'
240+ }
241+ mut reader := StringReader.new (reader: two)
242+ assert reader.read_all (false )! == '12'
243+ assert reader.read_all (true )! == '345'
244+ }
245+
246+ fn test_read_bytes_1 () {
247+ mut two := TwoByteReader{
248+ data: '12345'
249+ }
250+ mut reader := StringReader.new (reader: two)
251+ assert reader.read_bytes (1 )! == [u8 (49 )]
252+ assert reader.read_bytes (2 )! == [u8 (50 ), 51 ]
253+ assert reader.read_bytes (2 )! == [u8 (52 ), 53 ]
254+ assert reader.read_bytes (2 ) or { [u8 (255 )] } == [u8 (255 )]
255+ }
256+
257+ fn test_read_bytes_many () {
258+ mut two := TwoByteReader{
259+ data: '12345'
260+ }
261+ mut reader := StringReader.new (reader: two)
262+ assert reader.read_bytes (1 )! == [u8 (49 )]
263+ assert reader.builder.len == 1
264+ assert reader.offset == 1
265+ assert reader.read_bytes (123 )! == [u8 (50 ), 51 , 52 , 53 ]
266+ assert reader.builder.len == 5
267+ assert reader.offset == 5
268+ }
269+
270+ fn test_read_string () {
271+ mut two := TwoByteReader{
272+ data: '12345'
273+ }
274+ mut reader := StringReader.new (reader: two)
275+ assert reader.read_string (1 )! == '1'
276+ assert reader.read_string (2 )! == '23'
277+ assert reader.read_string (3 )! == '45'
278+ }
279+
280+ fn test_read () {
281+ mut two := TwoByteReader{
282+ data: '12345'
283+ }
284+ mut reader := StringReader.new (reader: two)
285+ mut o1 := []u8 {len: 1 }
286+ mut o5 := []u8 {len: 5 }
287+ mut res := reader.read (mut o1 )!
288+ assert res == 1
289+ assert o1 [..res] == [u8 (49 )]
290+ res = reader.read (mut o5 )!
291+ assert res == 4
292+ assert o5 [..res] == [u8 (50 ), 51 , 52 , 53 ]
293+ }
294+
295+ fn test_read_many () {
296+ mut two := TwoByteReader{
297+ data: '12345'
298+ }
299+ mut reader := StringReader.new (reader: two)
300+ mut o4 := []u8 {len: 4 }
301+ mut res := reader.read (mut o4 )!
302+ assert res == 4
303+ assert o4 [..res] == [u8 (49 ), 50 , 51 , 52 ]
304+ res = reader.read (mut o4 )!
305+ assert res == 1
306+ assert o4 [..res] == [u8 (53 )]
307+ res = reader.read (mut o4 ) or { - 1 }
308+ assert res == - 1
309+ assert o4 == [u8 (53 ), 50 , 51 , 52 ]
310+ }
0 commit comments