public void Should_Success_Create_Data() { Mock <IBuyerFacade> mockBuyerFacade = new Mock <IBuyerFacade>(); mockBuyerFacade.Setup(p => p.Create(It.IsAny <Buyer>())) .Returns(1); Mock <IServiceProvider> mockServiceProvider = new Mock <IServiceProvider>(); mockServiceProvider.Setup(p => p.GetService(typeof(IBuyerFacade))).Returns(mockBuyerFacade.Object); mockServiceProvider.Setup(p => p.GetService(typeof(ProjectDbContext))).Returns(MemoryDbHelper.GetDB(Helper.GetCurrentMethod(ENTITY))); Mock <IMapper> mockMapper = new Mock <IMapper>(); mockMapper.Setup(p => p.Map <Buyer>(It.IsAny <BuyerViewModel>())) .Returns(buyerDataUtil.GetModelData()); BuyersController buyersController = new BuyersController(mockServiceProvider.Object, mockMapper.Object) { ControllerContext = new ControllerContext() { HttpContext = new DefaultHttpContext() } }; buyersController.ControllerContext.HttpContext.Request.Path = new PathString("/v1/unit-test"); IActionResult result = buyersController.Post(buyerDataUtil.GetViewModelData()); Assert.Equal(HttpStatusCode.Created, (HttpStatusCode)((CreatedResult)result).StatusCode); }
public void Should_Return_Bad_Request_Create_Data() { ProjectDbContext projectDbContext = MemoryDbHelper.GetDB(Helper.GetCurrentMethod(ENTITY)); Mock <IBuyerFacade> mockBuyerFacade = new Mock <IBuyerFacade>(); mockBuyerFacade.Setup(p => p.Create(It.IsAny <Buyer>())) .Returns(0); Mock <IServiceProvider> mockServiceProvider = new Mock <IServiceProvider>(); mockServiceProvider.Setup(p => p.GetService(typeof(IBuyerFacade))).Returns(mockBuyerFacade.Object); mockServiceProvider.Setup(p => p.GetService(typeof(ProjectDbContext))).Returns(projectDbContext); Mock <IMapper> mockMapper = new Mock <IMapper>(); mockMapper.Setup(p => p.Map <Buyer>(It.IsAny <BuyerViewModel>())) .Returns(buyerDataUtil.GetModelData()); BuyersController buyersController = new BuyersController(mockServiceProvider.Object, mockMapper.Object) { ControllerContext = new ControllerContext() { HttpContext = new DefaultHttpContext() } }; buyersController.ControllerContext.HttpContext.Request.Path = new PathString("/v1/unit-test"); //Add data for make it double projectDbContext.Add(buyerDataUtil.GetModelData()); projectDbContext.SaveChanges(); BuyerViewModel viewModel = buyerDataUtil.GetViewModelData(); IActionResult result = buyersController.Post(viewModel); Assert.Equal(HttpStatusCode.BadRequest, (HttpStatusCode)((BadRequestObjectResult)result).StatusCode); }