@@ -14,6 +14,12 @@ public void ListValuesBool()
1414 ListValuesInternal ( "Bool" , faker => faker . Random . Bool ( ) ) ;
1515 }
1616
17+ [ Fact ]
18+ public void ListValuesString ( )
19+ {
20+ ListValuesInternal ( "Varchar" , faker => faker . Random . Utf16String ( ) ) ;
21+ }
22+
1723 [ Fact ]
1824 public void ListValuesSByte ( )
1925 {
@@ -26,26 +32,34 @@ public void ListValuesInt()
2632 ListValuesInternal ( "Integer" , faker => faker . Random . Int ( ) ) ;
2733 }
2834
35+ [ Fact ]
36+ public void ArrayValuesInt ( )
37+ {
38+ ListValuesInternal ( "Integer" , faker => faker . Random . Int ( ) , 5 ) ;
39+ }
40+
2941 [ Fact ]
3042 public void ListValuesLong ( )
3143 {
3244 ListValuesInternal ( "BigInt" , faker => faker . Random . Long ( ) ) ;
3345 }
3446
35- public void ListValuesInternal < T > ( string typeName , Func < Faker , T > generator )
47+
48+ public void ListValuesInternal < T > ( string typeName , Func < Faker , T > generator , int ? length = null )
3649 {
3750 var rows = 2000 ;
3851 var table = $ "managedAppender{ typeName } Lists";
3952
40- Command . CommandText = $ "CREATE TABLE { table } (a Integer, b { typeName } [], c { typeName } [][]);";
53+ var columnLength = length . HasValue ? length . Value . ToString ( ) : "" ;
54+ Command . CommandText = $ "CREATE TABLE { table } (a Integer, b { typeName } [{ columnLength } ], c { typeName } [][]);";
4155 Command . ExecuteNonQuery ( ) ;
4256
4357 var lists = new List < List < T > > ( ) ;
4458 var nestedLists = new List < List < List < T > > > ( ) ;
4559
4660 for ( var i = 0 ; i < rows ; i ++ )
4761 {
48- lists . Add ( GetRandomList ( generator , Random . Shared . Next ( 0 , 200 ) ) ) ;
62+ lists . Add ( GetRandomList ( generator , length ?? Random . Shared . Next ( 0 , 200 ) ) ) ;
4963
5064 var item = new List < List < T > > ( ) ;
5165 nestedLists . Add ( item ) ;
@@ -78,5 +92,17 @@ public void ListValuesInternal<T>(string typeName, Func<Faker, T> generator)
7892
7993 index ++ ;
8094 }
95+
96+ //Test for appending an array with wrong length
97+ if ( length . HasValue )
98+ {
99+ var appender = Connection . CreateAppender ( table ) ;
100+
101+ appender . Invoking ( app => app . CreateRow ( ) . AppendValue ( 0 ) . AppendValue ( GetRandomList ( generator , length + 1 ) ) )
102+ . Should ( ) . Throw < InvalidOperationException > ( ) . Where ( exception => exception . Message . Contains ( length . ToString ( ) ) ) ;
103+
104+ appender . Invoking ( app => app . CreateRow ( ) . AppendValue ( 0 ) . AppendValue ( GetRandomList ( generator , length - 1 ) ) )
105+ . Should ( ) . Throw < InvalidOperationException > ( ) . Where ( exception => exception . Message . Contains ( length . ToString ( ) ) ) ;
106+ }
81107 }
82108}
0 commit comments