@@ -11,6 +11,7 @@ import (
1111
1212 "github.com/ARM-software/golang-utils/utils/commonerrors"
1313 "github.com/ARM-software/golang-utils/utils/commonerrors/errortest"
14+ "github.com/ARM-software/golang-utils/utils/safecast"
1415)
1516
1617func TestCopyDataWithContext (t * testing.T ) {
@@ -23,7 +24,7 @@ func TestCopyDataWithContext(t *testing.T) {
2324 n2 , err := CopyDataWithContext (context .Background (), & buf1 , & buf2 )
2425 require .NoError (t , err )
2526 require .NotZero (t , n2 )
26- assert .Equal (t , int64 (len (text )), n2 )
27+ assert .Equal (t , safecast . ToInt64 (len (text )), n2 )
2728 assert .Equal (t , text , buf2 .String ())
2829
2930 ctx , cancel := context .WithCancel (context .Background ())
@@ -49,10 +50,10 @@ func TestCopyNWithContext(t *testing.T) {
4950 require .NoError (t , err )
5051 require .NotZero (t , n )
5152 assert .Equal (t , len (text ), n )
52- n2 , err := CopyNWithContext (context .Background (), & buf1 , & buf2 , int64 (len (text )))
53+ n2 , err := CopyNWithContext (context .Background (), & buf1 , & buf2 , safecast . ToInt64 (len (text )))
5354 require .NoError (t , err )
5455 require .NotZero (t , n2 )
55- assert .Equal (t , int64 (len (text )), n2 )
56+ assert .Equal (t , safecast . ToInt64 (len (text )), n2 )
5657 assert .Equal (t , text , buf2 .String ())
5758
5859 ctx , cancel := context .WithCancel (context .Background ())
@@ -64,7 +65,7 @@ func TestCopyNWithContext(t *testing.T) {
6465 assert .Equal (t , len (text ), n )
6566
6667 cancel ()
67- n2 , err = CopyNWithContext (ctx , & buf1 , & buf2 , int64 (len (text )))
68+ n2 , err = CopyNWithContext (ctx , & buf1 , & buf2 , safecast . ToInt64 (len (text )))
6869 require .Error (t , err )
6970 errortest .AssertError (t , err , commonerrors .ErrCancelled )
7071 assert .Zero (t , n2 )
@@ -74,8 +75,91 @@ func TestCopyNWithContext(t *testing.T) {
7475 require .NoError (t , err )
7576 require .NotZero (t , n )
7677 assert .Equal (t , len (text ), n )
77- n2 , err = CopyNWithContext (context .Background (), & buf1 , & buf2 , int64 (len (text )- 1 ))
78+ n2 , err = CopyNWithContext (context .Background (), & buf1 , & buf2 , safecast . ToInt64 (len (text )- 1 ))
7879 require .NoError (t , err )
7980 require .NotZero (t , n2 )
80- assert .Equal (t , int64 (len (text )- 1 ), n2 )
81+ assert .Equal (t , safecast .ToInt64 (len (text )- 1 ), n2 )
82+ }
83+
84+ func TestCat (t * testing.T ) {
85+ var buf1 , buf2 , buf3 bytes.Buffer
86+ text1 := faker .Sentence ()
87+ text2 := faker .Paragraph ()
88+ n , err := WriteString (context .Background (), & buf1 , text1 )
89+ require .NoError (t , err )
90+ require .NotZero (t , n )
91+ assert .Equal (t , len (text1 ), n )
92+ n , err = WriteString (context .Background (), & buf2 , text2 )
93+ require .NoError (t , err )
94+ require .NotZero (t , n )
95+ assert .Equal (t , len (text2 ), n )
96+ n3 , err := Cat (context .Background (), & buf3 , & buf1 , & buf2 )
97+ require .NoError (t , err )
98+ require .NotZero (t , n3 )
99+ assert .Equal (t , safecast .ToInt64 (len (text1 )+ len (text2 )), n3 )
100+ assert .Equal (t , text1 + text2 , buf3 .String ())
101+
102+ ctx , cancel := context .WithCancel (context .Background ())
103+ buf1 .Reset ()
104+ buf2 .Reset ()
105+ buf3 .Reset ()
106+ n , err = WriteString (context .Background (), & buf1 , text1 )
107+ require .NoError (t , err )
108+ require .NotZero (t , n )
109+ assert .Equal (t , len (text1 ), n )
110+ n , err = WriteString (context .Background (), & buf2 , text2 )
111+ require .NoError (t , err )
112+ require .NotZero (t , n )
113+ assert .Equal (t , len (text2 ), n )
114+
115+ cancel ()
116+ n3 , err = Cat (ctx , & buf3 , & buf1 , & buf2 )
117+ require .Error (t , err )
118+ errortest .AssertError (t , err , commonerrors .ErrCancelled )
119+ assert .Zero (t , n3 )
120+ assert .Empty (t , buf3 .String ())
121+ }
122+
123+ func TestCatN (t * testing.T ) {
124+ var buf1 , buf2 , buf3 bytes.Buffer
125+ text1 := faker .Sentence ()
126+ text2 := faker .Paragraph ()
127+ n , err := WriteString (context .Background (), & buf1 , text1 )
128+ require .NoError (t , err )
129+ require .NotZero (t , n )
130+ assert .Equal (t , len (text1 ), n )
131+ n , err = WriteString (context .Background (), & buf2 , text2 )
132+ require .NoError (t , err )
133+ require .NotZero (t , n )
134+ assert .Equal (t , len (text2 ), n )
135+ n3 , err := CatN (context .Background (), & buf3 , safecast .ToInt64 (len (text1 )+ len (text2 )), & buf1 , & buf2 )
136+ require .NoError (t , err )
137+ require .NotZero (t , n3 )
138+ assert .Equal (t , safecast .ToInt64 (len (text1 )+ len (text2 )), n3 )
139+ assert .Equal (t , text1 + text2 , buf3 .String ())
140+
141+ ctx , cancel := context .WithCancel (context .Background ())
142+ buf1 .Reset ()
143+ buf2 .Reset ()
144+ buf3 .Reset ()
145+ n , err = WriteString (context .Background (), & buf1 , text1 )
146+ require .NoError (t , err )
147+ require .NotZero (t , n )
148+ assert .Equal (t , len (text1 ), n )
149+ n , err = WriteString (context .Background (), & buf2 , text2 )
150+ require .NoError (t , err )
151+ require .NotZero (t , n )
152+ assert .Equal (t , len (text2 ), n )
153+
154+ cancel ()
155+ n3 , err = CatN (ctx , & buf3 , safecast .ToInt64 (len (text1 )+ len (text2 )), & buf1 , & buf2 )
156+ require .Error (t , err )
157+ errortest .AssertError (t , err , commonerrors .ErrCancelled )
158+ assert .Zero (t , n3 )
159+ assert .Empty (t , buf3 .String ())
160+
161+ n3 , err = CatN (context .Background (), & buf3 , safecast .ToInt64 (len (text1 )+ 1 ), & buf1 , & buf2 )
162+ require .NoError (t , err )
163+ require .NotZero (t , n3 )
164+ assert .Equal (t , safecast .ToInt64 (len (text1 )+ 1 ), n3 )
81165}
0 commit comments