1515
1616namespace AutoMapper . OData . EFCore . Tests
1717{
18- public class GetQuerySelectTests
18+ public class GetQuerySelectTests : IClassFixture < GetQuerySelectTestsFixture >
1919 {
20- public GetQuerySelectTests ( )
20+ private readonly GetQuerySelectTestsFixture _fixture ;
21+
22+ public GetQuerySelectTests ( GetQuerySelectTestsFixture fixture )
2123 {
22- Initialize ( ) ;
24+ _fixture = fixture ;
25+ serviceProvider = _fixture . ServiceProvider ;
2326 }
2427
2528 #region Fields
26- private IServiceProvider serviceProvider ;
29+ private readonly IServiceProvider serviceProvider ;
2730 #endregion Fields
2831
29- private void Initialize ( )
30- {
31- IServiceCollection services = new ServiceCollection ( ) ;
32- IMvcCoreBuilder builder = new TestMvcCoreBuilder
33- {
34- Services = services
35- } ;
36-
37- builder . AddOData ( ) ;
38- services . AddDbContext < MyDbContext >
39- (
40- options =>
41- {
42- options . UseInMemoryDatabase ( "MyDbContext" ) ;
43- options . UseInternalServiceProvider ( new ServiceCollection ( ) . AddEntityFrameworkInMemoryDatabase ( ) . BuildServiceProvider ( ) ) ;
44- } ,
45- ServiceLifetime . Transient
46- )
47- . AddSingleton < IConfigurationProvider > ( new MapperConfiguration ( cfg => cfg . AddMaps ( typeof ( GetTests ) . Assembly ) ) )
48- . AddTransient < IMapper > ( sp => new Mapper ( sp . GetRequiredService < IConfigurationProvider > ( ) , sp . GetService ) )
49- . AddTransient < IApplicationBuilder > ( sp => new ApplicationBuilder ( sp ) )
50- . AddRouting ( )
51- . AddLogging ( ) ;
52-
53- serviceProvider = services . BuildServiceProvider ( ) ;
54-
55- MyDbContext context = serviceProvider . GetRequiredService < MyDbContext > ( ) ;
56- context . Database . EnsureCreated ( ) ;
57- DatabaseInitializer . SeedDatabase ( context ) ;
58- }
59-
6032 [ Fact ]
6133 public async void OpsTenantSelectNameExpandBuildings ( )
6234 {
@@ -84,7 +56,7 @@ public async void OpsTenantExpandBuildingsFilterEqAndOrderBy_FirstBuildingHasVal
8456
8557 void Test ( ICollection < OpsTenant > collection )
8658 {
87- Assert . Equal ( 1 , collection . Count ) ;
59+ Assert . Single ( collection ) ;
8860 Assert . Equal ( 2 , collection . First ( ) . Buildings . Count ) ;
8961 Assert . NotNull ( collection . First ( ) . Buildings . First ( ) . Name ) ;
9062 Assert . NotEqual ( default , collection . First ( ) . Buildings . First ( ) . Identity ) ;
@@ -103,7 +75,7 @@ public async void BuildingSelectNameExpandBuilder_BuilderNameShouldBeSam()
10375
10476 void Test ( ICollection < CoreBuilding > collection )
10577 {
106- Assert . Equal ( 1 , collection . Count ) ;
78+ Assert . Single ( collection ) ;
10779 Assert . Equal ( "Sam" , collection . First ( ) . Builder . Name ) ;
10880 Assert . Equal ( default , collection . First ( ) . Builder . Id ) ;
10981 Assert . Null ( collection . First ( ) . Builder . City ) ;
@@ -122,7 +94,7 @@ public async void BuildingExpandBuilderSelectNamefilterEqAndOrderBy()
12294
12395 void Test ( ICollection < CoreBuilding > collection )
12496 {
125- Assert . Equal ( 1 , collection . Count ) ;
97+ Assert . Single ( collection ) ;
12698 Assert . Equal ( "Sam" , collection . First ( ) . Builder . Name ) ;
12799 Assert . Equal ( default , collection . First ( ) . Builder . Id ) ;
128100 Assert . Null ( collection . First ( ) . Builder . City ) ;
@@ -141,7 +113,7 @@ public async void BuildingExpandBuilderSelectNameExpandCityFilterEqAndOrderBy_Ci
141113
142114 void Test ( ICollection < CoreBuilding > collection )
143115 {
144- Assert . Equal ( 1 , collection . Count ) ;
116+ Assert . Single ( collection ) ;
145117 Assert . Equal ( "Sam" , collection . First ( ) . Builder . Name ) ;
146118 Assert . Equal ( default , collection . First ( ) . Builder . Id ) ;
147119 Assert . Equal ( "London" , collection . First ( ) . Builder . City . Name ) ;
@@ -220,4 +192,41 @@ private ODataQueryOptions<TModel> GetODataQueryOptions<TModel>(string query, str
220192 ) ;
221193 }
222194 }
195+
196+ public class GetQuerySelectTestsFixture
197+ {
198+ public GetQuerySelectTestsFixture ( )
199+ {
200+ IServiceCollection services = new ServiceCollection ( ) ;
201+ IMvcCoreBuilder builder = new TestMvcCoreBuilder
202+ {
203+ Services = services
204+ } ;
205+
206+ builder . AddOData ( ) ;
207+ services . AddDbContext < MyDbContext >
208+ (
209+ options => options . UseSqlServer
210+ (
211+ @"Server=(localdb)\mssqllocaldb;Database=GetQuerySelectTestsatabase;ConnectRetryCount=0" ,
212+ options => options . EnableRetryOnFailure ( )
213+ ) ,
214+ ServiceLifetime . Transient
215+ )
216+ . AddSingleton < IConfigurationProvider > ( new MapperConfiguration ( cfg => cfg . AddMaps ( typeof ( GetTests ) . Assembly ) ) )
217+ . AddTransient < IMapper > ( sp => new Mapper ( sp . GetRequiredService < IConfigurationProvider > ( ) , sp . GetService ) )
218+ . AddTransient < IApplicationBuilder > ( sp => new ApplicationBuilder ( sp ) )
219+ . AddRouting ( )
220+ . AddLogging ( ) ;
221+
222+ ServiceProvider = services . BuildServiceProvider ( ) ;
223+
224+ MyDbContext context = ServiceProvider . GetRequiredService < MyDbContext > ( ) ;
225+ context . Database . EnsureDeleted ( ) ;
226+ context . Database . EnsureCreated ( ) ;
227+ DatabaseInitializer . SeedDatabase ( context ) ;
228+ }
229+
230+ internal IServiceProvider ServiceProvider ;
231+ }
223232}
0 commit comments