Example #1
0
        public async Task Should_return_null_when_no_author_found()
        {
            // Arrange
            string             author       = Guid.NewGuid().ToString();
            IEnumerable <Item> expectedData = MockDataItems.Where(i => i.Author == author);

            ItemRepositoryMock.Setup(x => x.GetItemsByAuthorAsync(author, default(CancellationToken))).ReturnsAsync(expectedData);

            // Act
            IEnumerable <Item> resultItems = await ServiceUnderTest.GetItemsByAuthorAsync(author, default(CancellationToken));

            // Assert
            Assert.Null(resultItems);
        }
Example #2
0
        public async Task Should_return_single_item_by_identity()
        {
            // Arrange
            Item   expectedResult = MockDataItems[1];
            string id             = expectedResult.Id;

            ItemRepositoryMock.Setup(x => x.GetItemByIdAsync(id, default(CancellationToken))).ReturnsAsync(expectedResult);

            // Act
            Item resultItem = await ServiceUnderTest.GetItemByIdAsync(id, default(CancellationToken));

            // Assert
            Assert.Same(expectedResult, resultItem);
        }
Example #3
0
        public async Task Should_return_items_by_author()
        {
            // Arrange
            string             author       = MockDataItems[2].Author;
            IEnumerable <Item> expectedData = MockDataItems.Where(i => i.Author == author);

            ItemRepositoryMock.Setup(x => x.GetItemsByAuthorAsync(author, default(CancellationToken))).ReturnsAsync(expectedData);

            // Act
            IEnumerable <Item> resultItems = await ServiceUnderTest.GetItemsByAuthorAsync(author, default(CancellationToken));

            // Assert
            Assert.Same(expectedData, resultItems);
        }
Example #4
0
        public async Task Should_fail_update_missing_identity()
        {
            // Arrange
            Item newItem = new Item {
                Id = string.Empty, Author = "Jane Smith", HideAuthor = true, Title = "Adding new items is too simple", Description = "I think it needs to have more clicks to add an item", Votes = -7
            };

            ItemRepositoryMock.Setup(x => x.UpdateItemAsync(newItem, default(CancellationToken))).ReturnsAsync(newItem.Id);

            // Act
            ArgumentNullException exception = await Assert.ThrowsAsync <ArgumentNullException>(() => ServiceUnderTest.UpdateItemAsync(newItem, default(CancellationToken)));

            // Assert
            Assert.Equal(nameof(newItem.Id), exception.ParamName);
        }
Example #5
0
        public async Task Should_return_null_when_no_match()
        {
            // Arrange
            Item badResult = new Item {
                Id = Guid.NewGuid().ToString(), Author = "Bob Marley", HideAuthor = true, Title = "No women", Description = "No cry", Votes = 2
            };

            ItemRepositoryMock.Setup(x => x.GetItemByIdAsync(badResult.Id, default(CancellationToken))).ReturnsAsync(MockDataItems.FirstOrDefault(i => i.Id == badResult.Id));

            // Act
            Item resultItem = await ServiceUnderTest.GetItemByIdAsync(badResult.Id, default(CancellationToken));

            // Assert
            Assert.Null(resultItem);
        }
Example #6
0
        public async Task Should_update_an_existing_item()
        {
            // Arrange
            Item newItem = new Item {
                Id = Guid.NewGuid().ToString(), Author = "Jane Smith", HideAuthor = true, Title = "Adding new items is too simple", Description = "I think it needs to have more clicks to add an item", Votes = -7
            };

            ItemRepositoryMock.Setup(x => x.UpdateItemAsync(newItem, default(CancellationToken))).ReturnsAsync(newItem.Id);
            ItemRepositoryMock.Setup(x => x.GetItemByIdAsync(newItem.Id, default(CancellationToken))).ReturnsAsync(newItem);

            // Act
            Item resultItem = await ServiceUnderTest.UpdateItemAsync(newItem, default(CancellationToken));

            // Assert
            Assert.Equal(newItem, resultItem);
        }
Example #7
0
        public async Task Should_create_new_item()
        {
            // Arrange
            Item newItem = new Item {
                Id = Guid.NewGuid().ToString(), Author = "J. K. Rowling", HideAuthor = false, Title = "Fly Phising", Description = "I was wondering if you could tell if you have a book...", Votes = 0
            };

            ItemRepositoryMock.Setup(x => x.CreateNewItemAsync(newItem, default(CancellationToken))).ReturnsAsync(newItem.Id);
            ItemRepositoryMock.Setup(x => x.GetItemByIdAsync(newItem.Id, default(CancellationToken))).ReturnsAsync(newItem);

            // Act
            Item resultItem = await ServiceUnderTest.CreateItemAsync(newItem, default(CancellationToken));

            // Assert
            Assert.Same(newItem, resultItem);
        }