public async Task Handle_GivenInvalidRequest_ShouldThrowNotFoundException() { // Arrange var query = new GetGameDetailsQuery() { Id = 90125 }; var gameRepositoryMock = new Mock <IDeletableEntityRepository <Game> >(); var resultData = new List <Game>() { new Game() { Id = 3 } }; var resultDataMock = resultData.AsQueryable().BuildMock(); gameRepositoryMock.Setup(x => x.AllAsNoTracking()).Returns(resultDataMock.Object); var sut = new GetGameDetailsQueryHandler(gameRepositoryMock.Object, this.mapper); // Act & Assert await Should.ThrowAsync <NotFoundException>(sut.Handle(query, CancellationToken.None)); }
public async Task Handle_GivenNullRequest_ShouldThrowArgumentNullException() { // Arrange var repositoryMock = new Mock <IDeletableEntityRepository <Game> >(); var sut = new GetGameDetailsQueryHandler(repositoryMock.Object, this.mapper); // Act & Assert await Should.ThrowAsync <ArgumentNullException>(sut.Handle(null, CancellationToken.None)); }
public async Task Handle_GivenValidRequest_ShouldReturnValidViewModel() { // Arrange var entityId = 2; var query = new GetGameDetailsQuery() { Id = entityId }; var gameRepositoryMock = new Mock <IDeletableEntityRepository <Game> >(); var resultData = new List <Game>() { new Game() { Id = entityId, Name = "TestGame", Description = "TesxtGameDescription", GameImageUrl = "https://www.foo.bar/thumbnail.jpg", CreatedOn = new DateTime(2019, 05, 21) } }; var resultDataMock = resultData.AsQueryable().BuildMock(); gameRepositoryMock.Setup(x => x.AllAsNoTracking()).Returns(resultDataMock.Object); var sut = new GetGameDetailsQueryHandler(gameRepositoryMock.Object, this.mapper); // Act var result = await sut.Handle(query, CancellationToken.None); // Assert result.ShouldNotBeNull(); result.Name.ShouldNotBeNullOrEmpty(); result.Description.ShouldNotBeNullOrEmpty(); result.GameImageUrl.ShouldNotBeNullOrEmpty(); result.ShouldBeOfType(typeof(GameDetailsViewModel)); }