public async Task GetSortedHorsesAsync_WhenRepositoryReturnsNull_ReturnEmptyCollection() { var repositoryMock = new Mock <IHorseRepository>(); repositoryMock.Setup(item => item.LoadAllHorsesAsync()).Returns(Task.FromResult <IEnumerable <Horse> >(null)); var handler = new HorseInfoHandler(new[] { repositoryMock.Object }); var result = await handler.GetSortedHorsesAsync(); Assert.NotNull(result); Assert.Empty(result); }
public async Task GetSortedHorsesAsync_WhenHavingMultipleRepositories_ReturnSortedAggragatedCollection() { var horse1 = new Horse { Name = "horse 1", Price = 1 }; var horse2 = new Horse { Name = "horse 2", Price = 2 }; var horse3 = new Horse { Name = "horse 3", Price = 3 }; var repositoryMock1 = new Mock <IHorseRepository>(); repositoryMock1.Setup(item => item.LoadAllHorsesAsync()).Returns(Task.FromResult <IEnumerable <Horse> >(new[] { horse2 })); var repositoryMock2 = new Mock <IHorseRepository>(); repositoryMock2.Setup(item => item.LoadAllHorsesAsync()).Returns(Task.FromResult <IEnumerable <Horse> >(new[] { horse3, horse1 })); var handler = new HorseInfoHandler(new[] { repositoryMock1.Object, repositoryMock2.Object }); var result = await handler.GetSortedHorsesAsync(); Assert.NotNull(result); Assert.True(result.SequenceEqual(new[] { horse1, horse2, horse3 })); }