@@ -752,6 +752,41 @@ func TestArrayEach(t *testing.T) {
752
752
}, "a" , "b" )
753
753
}
754
754
755
+ func TestArrayEachEmpty (t * testing.T ) {
756
+ funcError := func ([]byte , ValueType , int , error ) { t .Errorf ("Run func not allow" ) }
757
+
758
+ type args struct {
759
+ data []byte
760
+ cb func (value []byte , dataType ValueType , offset int , err error )
761
+ keys []string
762
+ }
763
+ tests := []struct {
764
+ name string
765
+ args args
766
+ wantOffset int
767
+ wantErr bool
768
+ }{
769
+ {"Empty array" , args {[]byte ("[]" ), funcError , []string {}}, 1 , false },
770
+ {"Empty array with space" , args {[]byte ("[ ]" ), funcError , []string {}}, 2 , false },
771
+ {"Empty array with \n " , args {[]byte ("[\n ]" ), funcError , []string {}}, 2 , false },
772
+ {"Empty field array" , args {[]byte ("{\" data\" : []}" ), funcError , []string {"data" }}, 10 , false },
773
+ {"Empty field array with space" , args {[]byte ("{\" data\" : [ ]}" ), funcError , []string {"data" }}, 11 , false },
774
+ {"Empty field array with \n " , args {[]byte ("{\" data\" : [\n ]}" ), funcError , []string {"data" }}, 11 , false },
775
+ }
776
+ for _ , tt := range tests {
777
+ t .Run (tt .name , func (t * testing.T ) {
778
+ gotOffset , err := ArrayEach (tt .args .data , tt .args .cb , tt .args .keys ... )
779
+ if (err != nil ) != tt .wantErr {
780
+ t .Errorf ("ArrayEach() error = %v, wantErr %v" , err , tt .wantErr )
781
+ return
782
+ }
783
+ if gotOffset != tt .wantOffset {
784
+ t .Errorf ("ArrayEach() = %v, want %v" , gotOffset , tt .wantOffset )
785
+ }
786
+ })
787
+ }
788
+ }
789
+
755
790
type keyValueEntry struct {
756
791
key string
757
792
value string
0 commit comments