1
- using System . Text ;
2
-
3
- namespace SurrealDb . Net . Tests ;
1
+ namespace SurrealDb . Net . Tests ;
4
2
5
3
public class UpsertTests
6
4
{
@@ -16,7 +14,7 @@ public async Task ShouldCreateNewPost(string connectionString)
16
14
await using var surrealDbClientGenerator = new SurrealDbClientGenerator ( ) ;
17
15
var dbInfo = surrealDbClientGenerator . GenerateDatabaseInfo ( ) ;
18
16
19
- using var client = surrealDbClientGenerator . Create ( connectionString ) ;
17
+ await using var client = surrealDbClientGenerator . Create ( connectionString ) ;
20
18
await client . Use ( dbInfo . Namespace , dbInfo . Database ) ;
21
19
22
20
await client . ApplySchemaAsync ( SurrealSchemaFile . Post ) ;
@@ -64,7 +62,7 @@ public async Task ShouldUpdateExistingPost(string connectionString)
64
62
await using var surrealDbClientGenerator = new SurrealDbClientGenerator ( ) ;
65
63
var dbInfo = surrealDbClientGenerator . GenerateDatabaseInfo ( ) ;
66
64
67
- using var client = surrealDbClientGenerator . Create ( connectionString ) ;
65
+ await using var client = surrealDbClientGenerator . Create ( connectionString ) ;
68
66
await client . Use ( dbInfo . Namespace , dbInfo . Database ) ;
69
67
70
68
await client . ApplySchemaAsync ( SurrealSchemaFile . Post ) ;
@@ -109,7 +107,7 @@ public async Task ShouldCreateNewPostUsingStringRecordId(string connectionString
109
107
await using var surrealDbClientGenerator = new SurrealDbClientGenerator ( ) ;
110
108
var dbInfo = surrealDbClientGenerator . GenerateDatabaseInfo ( ) ;
111
109
112
- using var client = surrealDbClientGenerator . Create ( connectionString ) ;
110
+ await using var client = surrealDbClientGenerator . Create ( connectionString ) ;
113
111
await client . Use ( dbInfo . Namespace , dbInfo . Database ) ;
114
112
115
113
await client . ApplySchemaAsync ( SurrealSchemaFile . Post ) ;
@@ -156,7 +154,7 @@ public async Task ShouldUpdateExistingPostUsingStringRecordId(string connectionS
156
154
await using var surrealDbClientGenerator = new SurrealDbClientGenerator ( ) ;
157
155
var dbInfo = surrealDbClientGenerator . GenerateDatabaseInfo ( ) ;
158
156
159
- using var client = surrealDbClientGenerator . Create ( connectionString ) ;
157
+ await using var client = surrealDbClientGenerator . Create ( connectionString ) ;
160
158
await client . Use ( dbInfo . Namespace , dbInfo . Database ) ;
161
159
162
160
await client . ApplySchemaAsync ( SurrealSchemaFile . Post ) ;
@@ -187,4 +185,46 @@ public async Task ShouldUpdateExistingPostUsingStringRecordId(string connectionS
187
185
result ! . CreatedAt . Should ( ) . NotBeNull ( ) ;
188
186
result ! . Status . Should ( ) . Be ( "DRAFT" ) ;
189
187
}
188
+
189
+ [ Test ]
190
+ [ ConnectionStringFixtureGenerator ]
191
+ [ SinceSurrealVersion ( "2.1" ) ]
192
+ public async Task ShouldCreatePersonUsingADictionary ( string connectionString )
193
+ {
194
+ Person ? result = null ;
195
+
196
+ Func < Task > func = async ( ) =>
197
+ {
198
+ await using var surrealDbClientGenerator = new SurrealDbClientGenerator ( ) ;
199
+ var dbInfo = surrealDbClientGenerator . GenerateDatabaseInfo ( ) ;
200
+
201
+ await using var client = surrealDbClientGenerator . Create ( connectionString ) ;
202
+ await client . Use ( dbInfo . Namespace , dbInfo . Database ) ;
203
+
204
+ var person = new Dictionary < string , object >
205
+ {
206
+ { "title" , "Mr." } ,
207
+ {
208
+ "name" ,
209
+ new Dictionary < string , object >
210
+ {
211
+ { "first_name" , "Jaime" } ,
212
+ { "last_name" , "Lannister" } ,
213
+ }
214
+ } ,
215
+ { "marketing" , false } ,
216
+ } ;
217
+
218
+ var list = await client . Upsert < Dictionary < string , object > , Person > ( "person" , person ) ;
219
+ result = list . Single ( ) ;
220
+ } ;
221
+
222
+ await func . Should ( ) . NotThrowAsync ( ) ;
223
+
224
+ result . Should ( ) . NotBeNull ( ) ;
225
+ result ! . Title . Should ( ) . Be ( "Mr." ) ;
226
+ result ! . Name . FirstName . Should ( ) . Be ( "Jaime" ) ;
227
+ result ! . Name . LastName . Should ( ) . Be ( "Lannister" ) ;
228
+ result ! . Marketing . Should ( ) . BeFalse ( ) ;
229
+ }
190
230
}
0 commit comments