public void RunAction(MockBizActionTransact2Modes mode) { //SETUP var options = SqliteInMemory.CreateOptions <EfCoreContext>(); using (var context = new EfCoreContext(options)) { context.Database.EnsureCreated(); var action1 = new MockBizActionPart1(context); var action2 = new MockBizActionPart2(context); var runner = new RunnerTransact2WriteDb <TransactBizActionDto, TransactBizActionDto, TransactBizActionDto>(context, action1, action2); //ATTEMPT var output = runner.RunAction(new TransactBizActionDto(mode)); //VERIFY runner.HasErrors.ShouldEqual(mode != MockBizActionTransact2Modes.Ok); context.Authors.Count().ShouldEqual(mode != MockBizActionTransact2Modes.Ok ? 0 : 2); if (mode == MockBizActionTransact2Modes.BizErrorPart1) { runner.Errors.Single().ErrorMessage.ShouldEqual("Failed in Part1"); } if (mode == MockBizActionTransact2Modes.BizErrorPart2) { runner.Errors.Single().ErrorMessage.ShouldEqual("Failed in Part2"); } } }
public void RunAction(MockBizActionTransact2Modes mode) { //SETUP var inMemDb = new SqliteInMemory(); using (var context = inMemDb.GetContextWithSetup()) { var action1 = new MockBizActionPart1(context); var action2 = new MockBizActionPart2(context); var runner = new RunnerTransact2WriteDb <TransactBizActionDto, TransactBizActionDto, TransactBizActionDto>(context, action1, action2); //ATTEMPT var output = runner.RunAction(new TransactBizActionDto(mode)); //VERIFY runner.HasErrors.ShouldEqual(mode != MockBizActionTransact2Modes.Ok); context.Authors.Count().ShouldEqual(mode != MockBizActionTransact2Modes.Ok ? 0 : 2); if (mode == MockBizActionTransact2Modes.BizErrorPart1) { runner.Errors.Single().ErrorMessage.ShouldEqual("Failed in Part1"); } if (mode == MockBizActionTransact2Modes.BizErrorPart2) { runner.Errors.Single().ErrorMessage.ShouldEqual("Failed in Part2"); } } }
public PlaceOrderServiceTransact( IRequestCookieCollection cookiesIn, IResponseCookies cookiesOut, DataContext dataContext) { IPlaceOrderDbAccess dbAccess = new PlaceOrderDbAccess(dataContext); PlaceOrderPart1 placeOrderPart1 = new PlaceOrderPart1(dbAccess); PlaceOrderPart2 placeOrderPart2 = new PlaceOrderPart2(dbAccess); runner = new RunnerTransact2WriteDb <PlaceOrderInDto, Part1ToPart2Dto, Order>(dataContext, placeOrderPart1, placeOrderPart2); checkoutCookie = new CheckoutCookie(cookiesIn, cookiesOut); }
public PlaceOrderServiceTransact( IRequestCookieCollection cookiesIn, IResponseCookies cookiesOut, EfCoreContext context) { _checkoutCookie = new CheckoutCookie( cookiesIn, cookiesOut); _runner = new RunnerTransact2WriteDb //#B <PlaceOrderInDto, Part1ToPart2Dto, Order>( //#C context, //#D new PlaceOrderPart1( //#E new PlaceOrderDbAccess(context)), //#E new PlaceOrderPart2( //#F new PlaceOrderDbAccess(context))); //#F }
public void RunActionThrowException() { //SETUP var inMemDb = new SqliteInMemory(); using (var context = inMemDb.GetContextWithSetup()) { var action1 = new MockBizActionPart1(context); var action2 = new MockBizActionPart2(context); var runner = new RunnerTransact2WriteDb <TransactBizActionDto, TransactBizActionDto, TransactBizActionDto>(context, action1, action2); //ATTEMPT Assert.Throws <InvalidOperationException>(() => runner.RunAction(new TransactBizActionDto(MockBizActionTransact2Modes.ThrowExceptionPart2))); //VERIFY context.Authors.Count().ShouldEqual(0); } }
public void RunActionThrowException() { //SETUP var userId = Guid.NewGuid(); var options = SqliteInMemory.CreateOptions <EfCoreContext>(); using (var context = new EfCoreContext(options, new FakeUserIdService(userId))) { context.Database.EnsureCreated(); var action1 = new MockBizActionPart1(context); var action2 = new MockBizActionPart2(context); var runner = new RunnerTransact2WriteDb <TransactBizActionDto, TransactBizActionDto, TransactBizActionDto>(context, action1, action2); //ATTEMPT Assert.Throws <InvalidOperationException>(() => runner.RunAction(new TransactBizActionDto(MockBizActionTransact2Modes.ThrowExceptionPart2))); //VERIFY context.Authors.Count().ShouldEqual(0); } }
public void ExampleCodeForBook() { //SETUP var userId = Guid.NewGuid(); var options = SqliteInMemory.CreateOptions <EfCoreContext>(); using (var context = new EfCoreContext(options, new FakeUserIdService(userId))) { context.Database.EnsureCreated(); context.SeedDatabaseDummyBooks(); var lineItems = new List <OrderLineItem> { new OrderLineItem { BookId = 1, NumBooks = 4 }, new OrderLineItem { BookId = 2, NumBooks = 5 }, new OrderLineItem { BookId = 3, NumBooks = 6 } }; //ATTEMPT var dbAccess = new PlaceOrderDbAccess(context); var action1 = new PlaceOrderPart1(dbAccess); var action2 = new PlaceOrderPart2(dbAccess); var runner = new RunnerTransact2WriteDb < PlaceOrderInDto, Part1ToPart2Dto, Order>(context, action1, action2); var order = runner.RunAction(new PlaceOrderInDto(true, userId, lineItems.ToImmutableList())); //VERIFY runner.HasErrors.ShouldBeFalse(); context.Orders.Count().ShouldEqual(1); } }
public void ExampleCodeForBook() { //SETUP var inMemDb = new SqliteInMemory(); using (var context = inMemDb.GetContextWithSetup()) { context.SeedDatabaseDummyBooks(); var lineItems = new List <OrderLineItem> { new OrderLineItem { BookId = 1, NumBooks = 4 }, new OrderLineItem { BookId = 2, NumBooks = 5 }, new OrderLineItem { BookId = 3, NumBooks = 6 } }; var userId = Guid.NewGuid(); //ATTEMPT var dbAccess = new PlaceOrderDbAccess(context); var action1 = new PlaceOrderPart1(dbAccess); var action2 = new PlaceOrderPart2(dbAccess); var runner = new RunnerTransact2WriteDb < PlaceOrderInDto, Part1ToPart2Dto, Order>(context, action1, action2); var order = runner.RunAction(new PlaceOrderInDto(true, userId, lineItems.ToImmutableList())); //VERIFY runner.HasErrors.ShouldBeFalse(); context.Orders.Count().ShouldEqual(1); } }