public void TestPlaceOrderOk() { //SETUP var options = EfInMemory.CreateNewContextOptions(); using (var context = new EfCoreContext(options)) { context.SeedDatabaseFourBooks(); } using (var context = new EfCoreContext(options)) { var mockCookieRequests = new MockHttpCookieAccess(CheckoutCookie.CheckoutCookieName, $"{Guid.NewGuid()},1,2"); var service = new PlaceOrderService(mockCookieRequests.CookiesIn, mockCookieRequests.CookiesOut, context); //ATTEMPT var orderId = service.PlaceOrder(true); context.SaveChanges(); //VERIFY orderId.ShouldNotEqual(0); service.Errors.Count.ShouldEqual(0); context.Orders.Count().ShouldEqual(1); context.Orders.First().OrderId.ShouldEqual(orderId); } }
public async Task RunActionAsync(MockBizActionWithWriteModes mode) { //SETUP var options = EfInMemory.CreateNewContextOptions(); using (var context = new EfCoreContext(options)) { context.SeedDatabaseFourBooks(); var action = new MockBizActionWithWriteAsync(context); var runner = new RunnerWriteDbWithValidationAsync <MockBizActionWithWriteModes, string>(action, context); //ATTEMPT var output = await runner.RunActionAsync(mode); //VERIFY output.ShouldEqual(mode.ToString()); runner.HasErrors.ShouldEqual(mode != MockBizActionWithWriteModes.Ok); context.Orders.Count().ShouldEqual(mode != MockBizActionWithWriteModes.Ok ? 0 : 1); if (mode == MockBizActionWithWriteModes.BizError) { runner.Errors.Single().ErrorMessage.ShouldEqual("There is a biz error."); } if (mode == MockBizActionWithWriteModes.SaveChangesError) { runner.Errors.Single().ErrorMessage.ShouldEqual("If you want to order a 100 or more books please phone us on 01234-5678-90"); } } }
public void Init() { var options = EfInMemory.CreateOptions <MWDBContext>(); _context = new MWDBContext(options); DbInitializer.Initialize(_context); _boardRepository = new BoardRepository(_context); _boardController = new BoardController(_boardRepository); }
public void GetAllProductsReturnsEmptyList() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { var products = context.Product.ToList(); products.Count().ShouldEqual(0); } }
public void UpdateProductNotFoundError() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); Assert.Throws <KeyNotFoundException>(() => repository.UpdateProduct(ProductMocks.ProductSamsungGalaxyS7)); } }
public void DeleteProductNotFound() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); Assert.Throws <KeyNotFoundException>(() => repository.DeleteProduct(ProductMocks.NewProductiPhoneXS)); } }
public void AddRangeGetAllReturnsAll2Items() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { context.FeedDataContext(ProductMocks.ProductsBaseDataset); var products = context.Product.ToList(); products.Count().ShouldEqual(2); } }
public void GetProductOptionNotFoundError() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { context.FeedDataContext(ProductMocks.ProductsBaseDataset); var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); Assert.Throws <KeyNotFoundException>(() => repository.GetProductOption(new Guid(), new Guid())); } }
public void DeleteProductSuccess() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { context.FeedDataContext(ProductMocks.ProductsBaseDataset); var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); repository.DeleteProduct(ProductMocks.ProductSamsungGalaxyS7).ShouldBeTrue(); } }
public void DeleteProductOptionNotFoundError() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { var option = ProductMocks.ProductSamsungGalaxyS7.ProductOptions.First(); var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); Assert.Throws <KeyNotFoundException>(() => repository.DeleteProductOption(option.ProductId, option.Id)); } }
public void AddProductDuplicateKeyError() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { context.FeedDataContext(ProductMocks.ProductsBaseDataset); var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); Assert.Throws <InvalidOperationException>(() => repository.AddProduct(ProductMocks.ProductSamsungGalaxyS7)); } }
public void TestInMemorySupportsSchema() { //SETUP var options = EfInMemory.CreateOptions <DbContextWithSchema>(); using (var context = new DbContextWithSchema(options)) { //ATTEMPT context.Database.EnsureCreated(); //VERIFY } }
public void TestInMemoryAcceptsComputedCol() { //SETUP var options = EfInMemory.CreateOptions <MyEntityComputedColDbContext>(); using (var context = new MyEntityComputedColDbContext(options)) { //ATTEMPT context.Database.EnsureCreated(); //VERIFY } }
public void GetProductOptionsSuccess() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { context.FeedDataContext(ProductMocks.ProductsBaseDataset); var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); var productOptions = repository.GetProductOptions(ProductMocks.ProductSamsungGalaxyS7.Id); productOptions.Count().ShouldEqual(ProductMocks.ProductSamsungGalaxyS7.ProductOptions.Count()); } }
public void TestUpdateLineItemInOrder() { //SETUP var options = EfInMemory.CreateNewContextOptions(); using (var context = new EfCoreContext(options)) { context.SeedDatabaseFourBooks(); var userId = Guid.NewGuid(); var order = new Order { CustomerName = userId, LineItems = new List <LineItem> { new LineItem { BookId = 1, LineNum = 0, BookPrice = 123, NumBooks = 1 } } }; context.Orders.Add(order); context.SaveChanges(); } //ATTEMPT using (var context = new EfCoreContext(options)) { var order = context.Orders.Include(x => x.LineItems).First(); order.LineItems = new List <LineItem> { new LineItem { BookId = 1, LineNum = 0, BookPrice = 456, NumBooks = 1 } }; context.SaveChanges(); } //VERIFY using (var context = new EfCoreContext(options)) { var order = context.Orders.Include(x => x.LineItems).First(); order.LineItems.First().BookPrice.ShouldEqual(456); } }
public void Setup() { var options = EfInMemory .CreateOptions <TestDBContext>(); Context = new TestDBContext(options); Context.Database.EnsureCreated(); DbSeeder.Feed(Context); Context.SaveChanges(); _repository = new TestRepository <TestEntity>(Context); }
public void GetProductByNameReturnsEmpty() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { context.FeedDataContext(ProductMocks.ProductsBaseDataset); var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); var matches = repository.SearchByName("Microsoft"); matches.Count().ShouldEqual(0); } }
public void TestInMemoryOk() { //SETUP var options = EfInMemory.CreateOptions <BookContext>(); using (var context = new BookContext(options)) { context.Database.EnsureCreated(); //ATTEMPT context.SeedDatabaseFourBooks(); //VERIFY context.Books.Count().ShouldEqual(4); } }
public void TestInMemoryAcceptsComputedColButDoesntWork() { //SETUP var options = EfInMemory.CreateOptions <MyEntityComputedColDbContext>(); using (var context = new MyEntityComputedColDbContext(options)) { context.Database.EnsureCreated(); //ATTEMPT context.Add(new MyEntity()); context.SaveChanges(); //VERIFY context.Set <MyEntity>().First().MyDateTime.ShouldEqual(new DateTime()); } }
public void GetProductOptionSuccess() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { context.FeedDataContext(ProductMocks.ProductsBaseDataset); var targetOption = ProductMocks.ProductSamsungGalaxyS7.ProductOptions.First(); var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); var sourceOption = repository.GetProductOption(targetOption.ProductId, targetOption.Id); var compareLogic = new CompareLogic(); var result = compareLogic.Compare(targetOption, sourceOption); result.AreEqual.ShouldBeTrue(); } }
public void GetProductByNameReturnsSuccess() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { context.FeedDataContext(ProductMocks.ProductsBaseDataset); var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); var matches = repository.SearchByName("Samsung"); matches.Count().ShouldEqual(1); var product = matches.First(); product.Name.ShouldEqual(ProductMocks.ProductSamsungGalaxyS7.Name); } }
public void GetProductByIdReturnsSucessAndWithOptions() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { context.FeedDataContext(ProductMocks.ProductsBaseDataset); var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); var product = repository.GetProduct(ProductMocks.ProductSamsungGalaxyS7.Id); var compareLogic = new CompareLogic(); var result = compareLogic.Compare(product, ProductMocks.ProductSamsungGalaxyS7); result.AreEqual.ShouldBeTrue(); product.ProductOptions.Count().ShouldEqual(2); } }
public void UpdateProductSuccess() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { context.FeedDataContext(ProductMocks.ProductsBaseDataset); var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); var product = ProductMocks.ProductSamsungGalaxyS7; product.Description = "TestDescription"; product.Name = "TestName"; repository.UpdateProduct(product); var updatedProduct = repository.GetProduct(product.Id); updatedProduct.Name.ShouldBeSameAs(product.Name); updatedProduct.Description.ShouldBeSameAs(product.Description); } }
public void RunAction(int input, bool hasErrors) { //SETUP var options = EfInMemory.CreateNewContextOptions(); using (var context = new EfCoreContext(options)) { var action = new MockBizAction(context); var runner = new RunnerWriteDb <int, string>(action, context); //ATTEMPT var output = runner.RunAction(input); //VERIFY output.ShouldEqual(input.ToString()); runner.HasErrors.ShouldEqual(hasErrors); context.Authors.Count().ShouldEqual(hasErrors ? 0 : 1); } }
public void UpdateProductOptionSuccess() { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { var option = ProductMocks.ProductSamsungGalaxyS7.ProductOptions.First(); var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); var compareLogic = new CompareLogic(); context.FeedDataContext(ProductMocks.ProductsBaseDataset); option.Name = "UpdatedName"; option.Description = "UpdatedDescription"; repository.UpdateProductOption(option); var updatedOption = repository.GetProductOption(option.ProductId, option.Id); var result = compareLogic.Compare(option, updatedOption); result.AreEqual.ShouldBeTrue(); } }
public void AddProductSuccess() { try { var options = EfInMemory.CreateOptions <ProductsContext>(); using (var context = new ProductsContext(options)) { var logger = new Mock <ILogger <ProductsRepository> >(); var repository = new ProductsRepository(context, logger.Object); repository.AddProduct(ProductMocks.NewProductiPhoneXS); var product = repository.GetProduct(ProductMocks.NewProductiPhoneXS.Id); product.ShouldBeSameAs(ProductMocks.NewProductiPhoneXS); } } catch (Exception ex) { var s = ex.Message; } }
public void TestCheckoutListOneBookDatabaseOneBook() { //SETUP var options = EfInMemory.CreateNewContextOptions(); using (var context = new EfCoreContext(options)) { context.SeedDatabaseDummyBooks(1); } //two line items: BookId:1 NumBooks:1 var mockCookieRequests = new MockHttpCookieAccess(CheckoutCookie.CheckoutCookieName, $"{Guid.NewGuid()},1,1"); //ATTEMPT using (var context = new EfCoreContext(options)) { var service = new CheckoutListService(context, mockCookieRequests.CookiesIn); var list = service.GetCheckoutList(); //VERIFY list.Count.ShouldEqual(1); list.First().BookId.ShouldEqual(1); list.First().BookPrice.ShouldEqual(1); } }
public SurveyRepositoryTests() { _options = EfInMemory.CreateOptions <ApplicationDataContext>(); }