Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }