public async Task GetSurveyAsync_Returns_Survey_Contributors() { // All contexts that share the same service provider will share the same InMemory database var options = CreateNewContextOptions(); // Run the test against one instance of the context using (var context = new ApplicationDbContext(options)) { var survey = new Survey { Id = 1, Contributors = new List<SurveyContributor> { new SurveyContributor { SurveyId = 1, UserId = 2 } } }; context.Add(survey); context.SaveChanges(); } // Use a separate instance of the context to verify correct data was saved to database using (var context = new ApplicationDbContext(options)) { var store = new SqlServerSurveyStore(context); var result = await store.GetSurveyAsync(1); Assert.NotNull(result.Contributors); Assert.NotEmpty(result.Contributors); } }
public async Task GetSurveyAsync_Returns_CorrectSurvey() { // All contexts that share the same service provider will share the same InMemory database var options = CreateNewContextOptions(); using (var context = new ApplicationDbContext(options)) { context.Add(new Survey { Id = 1 }); context.SaveChanges(); } using (var context = new ApplicationDbContext(options)) { var store = new SqlServerSurveyStore(context); var result = await store.GetSurveyAsync(1); Assert.Equal(1, result.Id); } }
public async Task GetSurveysByContributorAsync_Returns_CorrectSurveys() { // All contexts that share the same service provider will share the same InMemory database var options = CreateNewContextOptions(); // Run the test against one instance of the context using (var context = new ApplicationDbContext(options)) { context.AddRange( new SurveyContributor { SurveyId = 1, UserId = 10 }, new SurveyContributor { SurveyId = 2, UserId = 10 }, new SurveyContributor { SurveyId = 3, UserId = 20 } ); context.AddRange( new Survey { Id = 1, OwnerId = 1 }, new Survey { Id = 2, OwnerId = 2 }, new Survey { Id = 3, OwnerId = 3 }, new Survey { Id = 4, OwnerId = 4 } ); context.SaveChanges(); } // Use a separate instance of the context to verify correct data was saved to database using (var context = new ApplicationDbContext(options)) { var store = new SqlServerSurveyStore(context); var result = await store.GetSurveysByContributorAsync(10); Assert.Equal(2, result.Count); Assert.Contains(result, s => s.Id == 1); Assert.Contains(result, s => s.Id == 2); } }
public async Task GetPublishedSurveysAsync_Returns_CorrectSurveys() { // All contexts that share the same service provider will share the same InMemory database var options = CreateNewContextOptions(); // Run the test against one instance of the context using (var context = new ApplicationDbContext(options)) { context.AddRange( new Survey { Id = 1, TenantId = 1 }, new Survey { Id = 2, TenantId = 1, Published = true }, new Survey { Id = 3, TenantId = 2 }, new Survey { Id = 4, TenantId = 2, Published = true } ); context.SaveChanges(); } // Use a separate instance of the context to verify correct data was saved to database using (var context = new ApplicationDbContext(options)) { var store = new SqlServerSurveyStore(context); var result = await store.GetPublishedSurveysAsync(); Assert.Equal(2, result.Count); Assert.True(result.All(x => x.Published)); } }
public async Task GetSurveysByOwnerAsync_Returns_CorrectSurveys() { // All contexts that share the same service provider will share the same InMemory database var options = CreateNewContextOptions(); // Run the test against one instance of the context using (var context = new ApplicationDbContext(options)) { context.AddRange( new Survey { Id = 1, OwnerId = 1 }, new Survey { Id = 2, OwnerId = 1 }, new Survey { Id = 3, OwnerId = 2 } ); context.SaveChanges(); } // Use a separate instance of the context to verify correct data was saved to database using (var context = new ApplicationDbContext(options)) { var store = new SqlServerSurveyStore(context); var result = await store.GetSurveysByOwnerAsync(1); Assert.NotEmpty(result); // Returned collection should only contain surveys with the matching owner ID. Assert.True(result.All(s => s.OwnerId == 1)); } }