예제 #1
0
        public async Task AddItemsForUser_ShouldReturnLatestInventory_IfAllArgumentsValid()
        {
            // Arrange
            var mockQueryHelper = new Mock <IQueryHelper>(MockBehavior.Strict);
            var controller      = new UserItemsController(mockQueryHelper.Object);
            int userId          = 1;
            var items           = new List <ItemDto>()
            {
                new ItemDto()
            };

            mockQueryHelper.Setup(q => q.UserQueries.GetUser(userId))
            .ReturnsAsync(new UserDto());
            mockQueryHelper.Setup(q => q.UserItemQueries
                                  .AddItemForUser(userId, It.IsAny <ItemDto>()))
            .Returns(Task.CompletedTask);
            var expectedLatestInventory = new List <UserItemDto>();

            mockQueryHelper.Setup(q => q.UserItemQueries.GetAllItemsForUser(userId))
            .ReturnsAsync(expectedLatestInventory);

            // Act
            IActionResult result = await controller.AddItemsForUser(userId, items);

            // Assert
            var okResult = Assert.IsType <OkObjectResult>(result);

            Assert.Equal(expectedLatestInventory, okResult.Value);
        }
예제 #2
0
        public async Task AddItemsForUser_ShouldReturnResult_IfNoItemsSentInRequest()
        {
            // Arrange
            var mockQueryHelper = new Mock <IQueryHelper>(MockBehavior.Strict);
            var controller      = new UserItemsController(mockQueryHelper.Object);

            // Act
            IActionResult result = await controller.AddItemsForUser(1, new List <ItemDto>());

            // Assert
            var badRequestResult = Assert.IsType <BadRequestObjectResult>(result);

            Assert.Equal("Items in request body could not be parsed", badRequestResult.Value);
        }
예제 #3
0
        public async Task AddItemsForUser_ShouldReturnNotFound_IfRequestUserCannotBeFound()
        {
            // Arrange
            var mockQueryHelper = new Mock <IQueryHelper>(MockBehavior.Strict);
            var controller      = new UserItemsController(mockQueryHelper.Object);
            int userId          = 1;
            var items           = new List <ItemDto>()
            {
                new ItemDto()
            };

            mockQueryHelper.Setup(q => q.UserQueries.GetUser(userId))
            .ReturnsAsync((UserDto)null);

            // Act
            IActionResult result = await controller.AddItemsForUser(userId, items);

            // Assert
            var notFoundResult = Assert.IsType <NotFoundObjectResult>(result);

            Assert.Equal($"No user can be found with ID {userId}", notFoundResult.Value);
        }