@@ -14,6 +14,12 @@ public void ListValuesBool()
14
14
ListValuesInternal ( "Bool" , faker => faker . Random . Bool ( ) ) ;
15
15
}
16
16
17
+ [ Fact ]
18
+ public void ListValuesString ( )
19
+ {
20
+ ListValuesInternal ( "Varchar" , faker => faker . Random . Utf16String ( ) ) ;
21
+ }
22
+
17
23
[ Fact ]
18
24
public void ListValuesSByte ( )
19
25
{
@@ -26,26 +32,34 @@ public void ListValuesInt()
26
32
ListValuesInternal ( "Integer" , faker => faker . Random . Int ( ) ) ;
27
33
}
28
34
35
+ [ Fact ]
36
+ public void ArrayValuesInt ( )
37
+ {
38
+ ListValuesInternal ( "Integer" , faker => faker . Random . Int ( ) , 5 ) ;
39
+ }
40
+
29
41
[ Fact ]
30
42
public void ListValuesLong ( )
31
43
{
32
44
ListValuesInternal ( "BigInt" , faker => faker . Random . Long ( ) ) ;
33
45
}
34
46
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 )
36
49
{
37
50
var rows = 2000 ;
38
51
var table = $ "managedAppender{ typeName } Lists";
39
52
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 } [][]);";
41
55
Command . ExecuteNonQuery ( ) ;
42
56
43
57
var lists = new List < List < T > > ( ) ;
44
58
var nestedLists = new List < List < List < T > > > ( ) ;
45
59
46
60
for ( var i = 0 ; i < rows ; i ++ )
47
61
{
48
- lists . Add ( GetRandomList ( generator , Random . Shared . Next ( 0 , 200 ) ) ) ;
62
+ lists . Add ( GetRandomList ( generator , length ?? Random . Shared . Next ( 0 , 200 ) ) ) ;
49
63
50
64
var item = new List < List < T > > ( ) ;
51
65
nestedLists . Add ( item ) ;
@@ -78,5 +92,17 @@ public void ListValuesInternal<T>(string typeName, Func<Faker, T> generator)
78
92
79
93
index ++ ;
80
94
}
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
+ }
81
107
}
82
108
}
0 commit comments