コード例 #1
0
        public async Task CreateAsync_OrderValidationFailed_ThrowsError()
        {
            // Arrange
            var fixture  = new Fixture();
            var order    = new OrderUpdateModel();
            var expected = fixture.Create <string>();

            var bookGetService = new Mock <IBookGetService>();

            bookGetService
            .Setup(x => x.ValidateAsync(order))
            .Throws(new InvalidOperationException(expected));

            var clientGetService = new Mock <IClientGetService>();

            clientGetService.Setup(x => x.ValidateAsync(order)).Throws(new InvalidOperationException(expected));


            var orderDataAccess = new Mock <IOrderDataAccess>();

            var orderGetService = new OrderCreateService(orderDataAccess.Object, bookGetService.Object, clientGetService.Object);

            // Act
            var action = new Func <Task>(() => orderGetService.CreateAsync(order));

            // Assert
            await action.Should().ThrowAsync <InvalidOperationException>().WithMessage(expected);

            orderDataAccess.Verify(x => x.InsertAsync(order), Times.Never);
        }
コード例 #2
0
        public async Task CreateAsync_OrderValidationSucceed_CreateOrder()
        {
            // Arrange
            var order    = new OrderUpdateModel();
            var expected = new Order();

            var bookGetService = new Mock <IBookGetService>();

            bookGetService.Setup(x => x.ValidateAsync(order));

            var clientGetService = new Mock <IClientGetService>();

            clientGetService.Setup(x => x.ValidateAsync(order));

            var orderDataAccess = new Mock <IOrderDataAccess>();

            orderDataAccess.Setup(x => x.InsertAsync(order)).ReturnsAsync(expected);

            var orderGetService = new OrderCreateService(orderDataAccess.Object, bookGetService.Object, clientGetService.Object);

            // Act
            var result = await orderGetService.CreateAsync(order);

            // Assert
            result.Should().Be(expected);
        }
コード例 #3
0
ファイル: OrdersController.cs プロジェクト: n0eR/BookStore
 public async Task <IActionResult> Create(OrderCreateDTO orderCreate)
 {
     try
     {
         var order =
             Mapper.Map <OrderDTO>(
                 await OrderCreateService.CreateAsync(Mapper.Map <OrderUpdateModel>(orderCreate)));
         return(Redirect($"/orders/{order.Id}"));
     }
     catch
     {
         ViewData["BookId"]     = new SelectList(Mapper.Map <IEnumerable <BookDTO> >(await BookGetService.GetAsync()), "Id", "Title");
         ViewData["CustomerId"] = new SelectList(Mapper.Map <IEnumerable <CustomerDTO> >(await CustomerGetService.GetAsync()), "Id", "FullName");
         return(View());
     }
 }
コード例 #4
0
ファイル: OrdersApiController.cs プロジェクト: n0eR/BookStore
 public async Task <OrderDTO> Create(OrderCreateDTO orderCreate)
 {
     return(Mapper.Map <OrderDTO>(await OrderCreateService.CreateAsync(Mapper.Map <OrderUpdateModel>(orderCreate))));
 }