public async Task CancelPromotionAsync_ShouldBeNotFoundObjectResult() { // Arrange TestMock.PromotionService .Setup( promotionService => promotionService.FindPromotionOrNullAsync( It.IsAny <string>())) .Verifiable(); var controller = new PromotionController(TestMock.PromotionService.Object, TestMapper) { ControllerContext = { HttpContext = MockHttpContextAccessor.GetInstance() } }; // Act var result = await controller.CancelPromotionAsync(TestCode); // Assert result.Should().BeOfType <NotFoundObjectResult>(); TestMock.PromotionService.Verify( promotionService => promotionService.FindPromotionOrNullAsync( It.IsAny <string>()), Times.Once); }
public async Task CancelPromotionAsync_ShouldBeOkObjectResult() { // Arrange var promotion = GeneratePromotion(); TestMock.PromotionService .Setup( promotionService => promotionService.FindPromotionOrNullAsync( It.IsAny <string>())) .ReturnsAsync(promotion) .Verifiable(); TestMock.PromotionService .Setup( promotionService => promotionService.CancelPromotionAsync( It.IsAny <Promotion>(), It.IsAny <IDateTimeProvider>())) .ReturnsAsync(DomainValidationResult <Promotion> .Succeeded(promotion)) .Verifiable(); var controller = new PromotionController(TestMock.PromotionService.Object, TestMapper) { ControllerContext = { HttpContext = MockHttpContextAccessor.GetInstance() } }; // Act var result = await controller.CancelPromotionAsync(TestCode); // Assert result.Should().BeOfType <OkObjectResult>(); result.As <OkObjectResult>().Value.Should().BeEquivalentTo(TestMapper.Map <PromotionDto>(promotion)); TestMock.PromotionService.Verify( promotionService => promotionService.FindPromotionOrNullAsync( It.IsAny <string>()), Times.Once); TestMock.PromotionService.Verify( promotionService => promotionService.CancelPromotionAsync( It.IsAny <Promotion>(), It.IsAny <IDateTimeProvider>()), Times.Once); }