public void TestAddOrderViaBizLogicOk() { //SETUP var options = SqliteInMemory.CreateOptions <EfCoreContext>(); using (var context = new EfCoreContext(options)) { context.Database.EnsureCreated(); context.SeedDatabaseFourBooks(); var service = new PlaceOrderAction(new PlaceOrderDbAccess(context)); var dto = new PlaceOrderInDto { AcceptTAndCs = true, CheckoutLineItems = new List <OrderLineItem> { new OrderLineItem { BookId = 1, NumBooks = 2 } } }; //ATTEMPT var order = service.BizAction(dto); //VERIFY service.HasErrors.ShouldBeFalse(); order.LineItems.Count().ShouldEqual(1); order.LineItems.Single().BookPrice.ShouldEqual(context.Books.Find(1).ActualPrice); } }
public void TestAddOrderNoAcceptBad() { //SETUP var options = SqliteInMemory.CreateOptions <EfCoreContext>(); using (var context = new EfCoreContext(options)) { context.Database.EnsureCreated(); context.SeedDatabaseFourBooks(); var service = new PlaceOrderAction(new PlaceOrderDbAccess(context)); var dto = new PlaceOrderInDto { AcceptTAndCs = false, }; //ATTEMPT var order = service.BizAction(dto); //VERIFY service.HasErrors.ShouldBeTrue(); service.Errors.Single().ErrorResult.ErrorMessage.ShouldEqual("You must accept the T&Cs to place an order."); } }