예제 #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));
        }
예제 #2
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));
        }
예제 #3
0
 public async Task <IActionResult> Details(GetGameDetailsQuery query)
 => this.View(await this.Mediator.Send(query));
예제 #4
0
        public async Task <IActionResult> Details(GetGameDetailsQuery query)
        {
            var viewModel = await this.Mediator.Send(query);

            return(this.View(viewModel));
        }