public async Task Handler_Returns_Next_Page_Of_Albums()
        {
            var expectedAlbum = _fixture
                                .Build <AlbumRecord>()
                                .With(album => album.Artist, "Black Sabbath")
                                .With(album => album.Title, "Mob Rules")
                                .With(album => album.User, _testQuery.User)
                                .With(album => album.UserId, _testQuery.User.Id)
                                .Create();

            var unexpectedAlbum = _fixture
                                  .Build <AlbumRecord>()
                                  .With(album => album.Artist, "Black Sabbath")
                                  .With(album => album.Title, "Heaven and Hell")
                                  .With(album => album.User, _testQuery.User)
                                  .With(album => album.UserId, _testQuery.User.Id)
                                  .Create();

            await _context.AlbumRecords.AddAsync(unexpectedAlbum);

            await _context.AlbumRecords.AddAsync(expectedAlbum);

            await _context.SaveChangesAsync();

            var query = new AlbumListGetQuery(1, 1, _testQuery.SearchQuery,
                                              _testQuery.User);

            var result = await _handler.Handle(query);

            result.Albums.First().Title.Should().Be(expectedAlbum.Title);
        }
        public async Task Handler_Returns_Total_Count()
        {
            await InitializeRecords();

            var count = await _context.Albums.CountAsync();

            var query = new AlbumListGetQuery(10, 0, _testQuery.SearchQuery,
                                              null);

            var result = await _handler.Handle(query);

            result.TotalCount.Should().Be(count);
        }
        public async Task Handler_Returns_Requested_Count()
        {
            await _context.AlbumRecords.AddAsync(_testRecord);

            await InitializeRecords();

            var request = new AlbumListGetQuery(1, 0, _testQuery.SearchQuery,
                                                _testQuery.User);

            var result = await _handler.Handle(request);

            result.Albums.Should().HaveCount(1);
        }
        public async Task Handler_Returns_Records_When_Search_Query_Is_Empty()
        {
            await _context.AlbumRecords.AddAsync(_testRecord);

            await InitializeRecords();

            var request = new AlbumListGetQuery(1, 0, string.Empty,
                                                _testQuery.User);

            var result = await _handler.Handle(request);

            result.Albums.Should().NotBeEmpty();
        }
        public async Task Handler_Returns_Record_With_Search_Query_For_Title()
        {
            var record = _fixture
                         .Build <AlbumRecord>()
                         .With(a => a.Title, "Heaven and Hell")
                         .Create();

            await _context.AlbumRecords.AddAsync(record);

            await InitializeRecords();

            var request = new AlbumListGetQuery(1, 0, record.Title,
                                                null);

            var result = await _handler.Handle(request);

            result.Albums.Should().Contain(a => a.Title == record.Title);
            result.TotalCount.Should().Be(request.ItemCount);
        }
        public AlbumListGetQueryHandlerTests()
        {
            _fixture = new Fixture();
            _fixture.Behaviors.Add(new OmitOnRecursionBehavior());

            _context = InitializeDatabase();

            _testQuery = new AlbumListGetQuery(13, 0, string.Empty,
                                               _fixture.Create <ApplicationUser>());

            _albumRecords = _fixture
                            .Build <AlbumRecord>()
                            .With(album => album.User, _testQuery.User)
                            .With(album => album.UserId, _testQuery.User.Id)
                            .CreateMany();

            _testRecord = _fixture
                          .Build <AlbumRecord>()
                          .With(album => album.User, _testQuery.User)
                          .With(album => album.UserId, _testQuery.User.Id)
                          .Create();

            _handler = new AlbumListGetQueryHandler(_context);
        }
예제 #7
0
        public void Query_Sets_Default_Item_Count_For_Zero(string searchQuery)
        {
            var query = new AlbumListGetQuery(0, 1, searchQuery, _testUser);

            query.ItemCount.Should().BeGreaterThan(0);
        }