public async Task CreateItem_ReturnOkObjectResult_WhenCreateItemIsSuccess() { //Arrange var saveItemResource = new SaveItemResource() { Title = "Item 1", Description = "Description", Price = 30.00M, Condition = "New", Quantity = 1, IsAuction = false }; var newItem = _mapper.Map <SaveItemResource, Item>(saveItemResource); _mockItemService.Setup(service => service.CreateItem(It.IsAny <Item>())) .ReturnsAsync(newItem); var controller = new ItemsController(_mockItemService.Object, _mapper); SetupHttpContextUser(controller, _user); // Act var actionResult = await controller.CreateItem(saveItemResource); // Assert Assert.IsType <OkObjectResult>(actionResult); }
public async Task CreateItem_ReturnNotFoundObject_WhenCreateItemMethodReturnsNull() { //Arrange var saveItemResource = new SaveItemResource() { Title = "Item 1", Description = "Description", Price = 30.00M, Condition = "New", IsAuction = false, SellerId = 1 }; var itemToCreate = _mapper.Map <SaveItemResource, Item>(saveItemResource); _mockItemService.Setup(service => service.CreateItem(itemToCreate)) .ReturnsAsync((Item)null); var controller = new ItemsController(_mockItemService.Object, _mapper); SetupHttpContextUser(controller, _user); // Act var actionResult = await controller.CreateItem(saveItemResource); // Assert Assert.IsType <NotFoundResult>(actionResult); }
public void GivenItem_ReturnsNewId() { var createdItem = new ItemPostDto() { Description = _chance.Sentence(5), Upc = TestUtils.CreateUpc() }; var actionResult = _itemsController.CreateItem(createdItem); var okObjectResult = actionResult as OkObjectResult; }
public void CreateItem_ReturnsUnprocessable_ForRepeatedItem() { // Assign var mock = new Mock <IItemRepository>(); mock.Setup(repo => repo.GetItemByName(It.IsAny <string>())).Returns(new Item()); var controller = new ItemsController(itemRepository: mock.Object, cartService: null, mapper: null); // Act var result = controller.CreateItem(new ItemDto()); // Assert Assert.IsType <ConflictObjectResult>(result.Result); }
public void CreateItem_ReturnsBadRequest_ForInvalidItem() { // Arrange var mock = new Mock <IItemRepository>(); var controller = new ItemsController(itemRepository: mock.Object, cartService: null, mapper: null); controller.ModelState.AddModelError("error", "some error"); // Act var result = controller.CreateItem(item: null); // Assign Assert.IsType <BadRequestObjectResult>(result.Result); }
public async Task CreateItem_ReturnBadRequestResult_WhenSaveItemResourceIsInvalid() { //Arrange var saveItemResource = new SaveItemResource() { Title = null }; var controller = new ItemsController(_mockItemService.Object, _mapper); SetupHttpContextUser(controller, _user); // Act var actionResult = await controller.CreateItem(saveItemResource); // Assert Assert.IsType <BadRequestObjectResult>(actionResult); }
public async Task CreateItem_WithItemToCreate_ReturnsCreatedItem() { // Arrange var itemToCreate = new ItemCreateDto() { Name = Guid.NewGuid().ToString(), Price = rand.Next(1000) }; var controller = new ItemsController(itemRepositoryStub.Object); // Act var result = await controller.CreateItem(itemToCreate); // Assert var createdResult = Assert.IsType <CreatedAtActionResult>(result.Result); var item = Assert.IsType <ItemReadDto>(createdResult.Value); itemToCreate.Should().BeEquivalentTo(item, options => options.ComparingByMembers <ItemCreateDto>().ExcludingMissingMembers()); item.Id.Should().NotBeEmpty(); }
public void CreateItem_ReturnsCreate_ForValidItem() { // Arrange ItemDto testItem = new ItemDto() { Name = "NewItem", Price = 50, Discount = 0 }; var mock = new Mock <IItemRepository>(); var mock_mapper = new Mock <IMapper>(); mock.Setup(repo => repo.AddItem(new Item())).Returns(It.IsAny <int>()); mock_mapper.Setup(mapper => mapper.Map <Item>(testItem)).Returns(new Item()); mock_mapper.Setup(mapper => mapper.Map <ItemDto>(It.IsAny <Item>())).Returns(new ItemDto()); var controller = new ItemsController(itemRepository: mock.Object, cartService: null, mock_mapper.Object); // Act var result = controller.CreateItem(testItem); // Assert var createdResult = Assert.IsType <CreatedAtActionResult>(result.Result); Assert.IsType <ItemDto>(createdResult.Value); }