public void RunAction(MockBizActionWithWriteModes mode) { //SETUP var userId = Guid.NewGuid(); var options = SqliteInMemory.CreateOptions <EfCoreContext>(); using (var context = new EfCoreContext(options, new FakeUserIdService(userId))) { context.Database.EnsureCreated(); context.SeedDatabaseFourBooks(); var action = new MockBizActionWithWrite(context, userId); var runner = new RunnerWriteDbWithValidation <MockBizActionWithWriteModes, string>(action, context); //ATTEMPT var output = runner.RunAction(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 PlaceOrderServiceWithVal( IRequestCookieCollection cookiesIn, IResponseCookies cookiesOut, EfCoreContext context) { _basketCookie = new BasketCookie(cookiesIn, cookiesOut); _runner = new RunnerWriteDbWithValidation <PlaceOrderInDto, Order>( new PlaceOrderAction( new PlaceOrderDbAccess(context)), context); }
public PlaceOrderServiceWithVal( IRequestCookieCollection cookiesIn, IResponseCookies cookiesOut, DataContext dataContext) { IPlaceOrderDbAccess dbAccess = new PlaceOrderDbAccess(dataContext); IPlaceOrderAction placeOrderAction = new PlaceOrderAction(dbAccess); runner = new RunnerWriteDbWithValidation <PlaceOrderInDto, Order>(placeOrderAction, dataContext); checkoutCookie = new CheckoutCookie(cookiesIn, cookiesOut); }