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");
                }
            }
        }
Ejemplo n.º 2
0
 public PlaceOrderServiceWithVal(
     IRequestCookieCollection cookiesIn,
     IResponseCookies cookiesOut,
     EfCoreContext context)
 {
     _basketCookie = new BasketCookie(cookiesIn, cookiesOut);
     _runner       = new RunnerWriteDbWithValidation <PlaceOrderInDto, Order>(
         new PlaceOrderAction(
             new PlaceOrderDbAccess(context)),
         context);
 }
Ejemplo n.º 3
0
        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);
        }