@@ -52,52 +52,32 @@ private ParametricDecimalContext NewCtx(int p, int s)
5252 public async Task Decimal_roundtrips_or_rounds_like_ado ( int p , int s , decimal value )
5353 {
5454 await using var ctx = NewCtx ( p , s ) ;
55+ await ctx . Database . EnsureCreatedAsync ( ) ;
5556
56- try
57- {
58- var e = new ParamItem { Price = value } ;
59- ctx . Add ( e ) ;
60- await ctx . SaveChangesAsync ( ) ;
57+ var e = new ParamItem { Price = value } ;
58+ ctx . Add ( e ) ;
59+ await ctx . SaveChangesAsync ( ) ;
6160
62- var got = await ctx . Items . AsNoTracking ( ) . SingleAsync ( x => x . Id == e . Id ) ;
61+ var got = await ctx . Items . AsNoTracking ( ) . SingleAsync ( x => x . Id == e . Id ) ;
6362
64- var expected = Math . Round ( value , s , MidpointRounding . ToEven ) ;
65- Assert . Equal ( expected , got . Price ) ;
63+ var expected = Math . Round ( value , s , MidpointRounding . ToEven ) ;
64+ Assert . Equal ( expected , got . Price ) ;
6665
67- var tms = ctx . GetService < IRelationalTypeMappingSource > ( ) ;
68- var et = ctx . Model . FindEntityType ( typeof ( ParamItem ) ) ! ;
69- var prop = et . FindProperty ( nameof ( ParamItem . Price ) ) ! ;
70- var mapping = tms . FindMapping ( prop ) ! ;
71- Assert . Equal ( $ "Decimal({ p } , { s } )", mapping . StoreType ) ;
72- }
73- catch ( DbUpdateException ex ) when ( ( ex . InnerException ? . Message ?? "" ) . Contains ( "Cannot find table" ,
74- StringComparison . OrdinalIgnoreCase ) )
75- {
76- }
77- catch ( Exception ex ) when ( ex . ToString ( )
78- . Contains ( "EnableParameterizedDecimal" , StringComparison . OrdinalIgnoreCase ) )
79- {
80- }
66+ var tms = ctx . GetService < IRelationalTypeMappingSource > ( ) ;
67+ var et = ctx . Model . FindEntityType ( typeof ( ParamItem ) ) ! ;
68+ var prop = et . FindProperty ( nameof ( ParamItem . Price ) ) ! ;
69+ var mapping = tms . FindMapping ( prop ) ! ;
70+ Assert . Equal ( $ "Decimal({ p } , { s } )", mapping . StoreType ) ;
8171 }
8272
8373 [ Theory ]
8474 [ MemberData ( nameof ( OverflowCases ) ) ]
8575 public async Task Decimal_overflow_bubbles_up ( int p , int s , decimal value )
8676 {
8777 await using var ctx = NewCtx ( p , s ) ;
78+ await ctx . Database . EnsureCreatedAsync ( ) ;
8879
89- try
90- {
91- ctx . Add ( new ParamItem { Price = value } ) ;
92- await Assert . ThrowsAsync < DbUpdateException > ( ( ) => ctx . SaveChangesAsync ( ) ) ;
93- }
94- catch ( DbUpdateException ex ) when ( ( ex . InnerException ? . Message ?? "" ) . Contains ( "Cannot find table" ,
95- StringComparison . OrdinalIgnoreCase ) )
96- {
97- }
98- catch ( Exception ex ) when ( ex . ToString ( )
99- . Contains ( "EnableParameterizedDecimal" , StringComparison . OrdinalIgnoreCase ) )
100- {
101- }
80+ ctx . Add ( new ParamItem { Price = value } ) ;
81+ await Assert . ThrowsAsync < DbUpdateException > ( ( ) => ctx . SaveChangesAsync ( ) ) ;
10282 }
10383}
0 commit comments