@@ -682,7 +682,7 @@ void AssertSingularEquals(QuerySql.GetPostgresGeoTypesRow x, QuerySql.GetPostgre
682682 }
683683
684684 [ Test ]
685- [ TestCase ( "{\" name\" : \" Swordfishtrombones\" , \" year\" : 1983}" , "$.\" name\" " ) ]
685+ [ TestCase ( "{\" name\" : \" Swordfishtrombones\" , \" year\" : 1983}" , "$.\" name\" " ) ]
686686 [ TestCase ( null , null ) ]
687687 public async Task TestPostgresJsonDataTypes ( string cJson , string cJsonpath )
688688 {
@@ -701,14 +701,21 @@ public async Task TestPostgresJsonDataTypes(string cJson, string cJsonpath)
701701 AssertSingularEquals ( expected , actual . Value ) ;
702702 void AssertSingularEquals ( QuerySql . GetPostgresSpecialTypesRow x , QuerySql . GetPostgresSpecialTypesRow y )
703703 {
704- Assert . That ( x . CJson . HasValue , Is . EqualTo ( y . CJson . HasValue ) ) ;
705- if ( x . CJson . HasValue )
706- Assert . That ( x . CJson . Value . GetRawText ( ) , Is . EqualTo ( y . CJson . Value . GetRawText ( ) ) ) ;
707- Assert . That ( x . CJsonb . HasValue , Is . EqualTo ( y . CJsonb . HasValue ) ) ;
708- if ( x . CJsonb . HasValue )
709- Assert . That ( x . CJsonb . Value . GetRawText ( ) , Is . EqualTo ( y . CJsonb . Value . GetRawText ( ) ) ) ;
710- Assert . That ( x . CJsonStringOverride , Is . EqualTo ( y . CJsonStringOverride ) ) ;
711- Assert . That ( x . CJsonpath , Is . EqualTo ( y . CJsonpath ) ) ;
704+ AssertJsonElementEquals ( y . CJson , x . CJson ) ;
705+ AssertJsonElementEquals ( y . CJsonb , x . CJsonb ) ;
706+ Assert . That ( y . CJsonStringOverride , Is . EqualTo ( x . CJsonStringOverride ) ) ;
707+ Assert . That ( y . CJsonpath , Is . EqualTo ( x . CJsonpath ) ) ;
708+ }
709+
710+ void AssertJsonElementEquals ( JsonElement ? x , JsonElement ? y )
711+ {
712+ var options = new JsonSerializerOptions
713+ {
714+ WriteIndented = false
715+ } ;
716+ Assert . That ( y . HasValue , Is . EqualTo ( x . HasValue ) ) ;
717+ if ( y . HasValue )
718+ Assert . That ( JsonSerializer . Serialize ( y . Value , options ) , Is . EqualTo ( JsonSerializer . Serialize ( x . Value , options ) ) ) ;
712719 }
713720 }
714721
@@ -941,18 +948,21 @@ public async Task TestPostgresJsonCopyFrom(int batchSize, string cJson)
941948 var actual = await QuerySql . GetPostgresSpecialTypesCnt ( ) ;
942949 AssertSingularEquals ( expected , actual . Value ) ;
943950 void AssertSingularEquals ( QuerySql . GetPostgresSpecialTypesCntRow x , QuerySql . GetPostgresSpecialTypesCntRow y )
951+ {
952+ Assert . That ( y . Cnt , Is . EqualTo ( x . Cnt ) ) ;
953+ AssertJsonElementEquals ( y . CJson , x . CJson ) ;
954+ AssertJsonElementEquals ( y . CJsonb , x . CJsonb ) ;
955+ }
956+
957+ void AssertJsonElementEquals ( JsonElement ? x , JsonElement ? y )
944958 {
945959 var options = new JsonSerializerOptions
946960 {
947961 WriteIndented = false
948962 } ;
949- Assert . That ( y . Cnt , Is . EqualTo ( x . Cnt ) ) ;
950- Assert . That ( y . CJson . HasValue , Is . EqualTo ( x . CJson . HasValue ) ) ;
951- if ( y . CJson . HasValue )
952- Assert . That ( JsonSerializer . Serialize ( y . CJson . Value , options ) , Is . EqualTo ( JsonSerializer . Serialize ( x . CJson . Value , options ) ) ) ;
953- Assert . That ( y . CJsonb . HasValue , Is . EqualTo ( x . CJsonb . HasValue ) ) ;
954- if ( y . CJsonb . HasValue )
955- Assert . That ( JsonSerializer . Serialize ( y . CJsonb . Value , options ) , Is . EqualTo ( JsonSerializer . Serialize ( x . CJsonb . Value , options ) ) ) ;
963+ Assert . That ( y . HasValue , Is . EqualTo ( x . HasValue ) ) ;
964+ if ( y . HasValue )
965+ Assert . That ( JsonSerializer . Serialize ( y . Value , options ) , Is . EqualTo ( JsonSerializer . Serialize ( x . Value , options ) ) ) ;
956966 }
957967 }
958968
0 commit comments