コード例 #1
0
        public async Task GetDescriptionTest_NullIsbn_Exception()
        {
            //arrange
            _access.WithSelectDescriptionWithIdResult(BookTestUtils.GenerateValidDescription());

            _sut = new BookRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.GetDescription(null);

            //assert
            Assert.IsNull(result);
            _access.Verify(m => m.SelectDescriptionWithId(It.IsAny <string>()), Times.Never);
        }
コード例 #2
0
        public async Task DeleteWithIsbnAsyncTest_InvalidBook_Fails()
        {
            //arrange
            _access.WithDeleteWithIdResult(true);

            _sut = new BookRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.DeleteWithIsbnAsync(BookTestUtils.GenerateInvalidBook().Isbn);

            //assert
            Assert.IsFalse(result);
            _access.Verify(m => m.DeleteWithIdAsync(It.IsAny <string>()), Times.Never);
        }
コード例 #3
0
        public async Task GetByIsbnAsyncTest_NonExistingIsbn_HappyPath()
        {
            //arrange
            _access.WithSelectWithIdResult(null);

            _sut = new BookRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.GetByIsbnAsync(BookTestUtils.GenerateValidBook().Isbn);

            //assert
            Assert.IsNull(result);
            _access.Verify(m => m.SelectWithIdAsync(It.IsAny <string>()), Times.Once);
        }
コード例 #4
0
        public async Task InsertOneAsyncTest_NullBookMap_ThrowsNullReferenceException()
        {
            //arrange
            _mapper.WithMap(null);
            _access.WithInsertResult(true);

            _sut = new BookRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.InsertAsync(BookTestUtils.GenerateInvalidBook());

            //assert
            Assert.IsFalse(result);
            _access.Verify(m => m.InsertOneAsync(It.IsAny <BookMap>()), Times.Never);
        }
コード例 #5
0
        public async Task InsertOneAsyncTest_ValidBook_HappyPath()
        {
            //arrange
            _mapper.WithMap(BookMapTestUtils.GenerateValidBookMap());
            _access.WithInsertResult(true);

            _sut = new BookRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.InsertAsync(BookTestUtils.GenerateValidBook());

            //assert
            Assert.IsTrue(result);
            _access.Verify(m => m.InsertOneAsync(It.IsAny <BookMap>()), Times.Once);
        }
        public async Task DeleteWithIsbnAsync_InvalidIsbn_ExceptionalCase()
        {
            //arrange
            var validIsbn = BookTestUtils.GenerateInvalidBook().Isbn;

            _access.WithDeleteWithIsbnResult(true);

            _sut = new BookCopyRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.DeleteWithIsbnAsync(validIsbn);

            //assert
            Assert.IsFalse(result);
            _access.Verify(m => m.DeleteWithIsbnAsync(It.IsAny <string>()), Times.Never);
        }
        public async Task DeleteWithIsbnAsync_ValidIsbn_HappyPath()
        {
            //arrange
            var validIsbn = BookTestUtils.GenerateValidBook().Isbn;

            _access.WithDeleteWithIsbnResult(true);

            _sut = new BookCopyRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.DeleteWithIsbnAsync(validIsbn);

            //assert
            Assert.IsTrue(result);
            _access.Verify(m => m.DeleteWithIsbnAsync(It.IsAny <string>()), Times.Once);
        }
        public async Task GetWithIsbnAsync_InvalidIsbn_Fails()
        {
            //arrange
            var invalidBooks = BookCopyMapTestUtils.GenerateValidBookCopyMapEnumerable();
            var isbn         = BookTestUtils.GenerateInvalidBook().Isbn;

            _access.WithGetByIsbnAsyncResult(invalidBooks);

            _sut = new BookCopyRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.GetByIsbnAsync(isbn);

            //assert
            _access.Verify(m => m.GetByIsbnAsync(It.IsAny <string>()), Times.Never);
            Assert.IsNull(result);
        }
コード例 #9
0
        public async Task DeleteAsyncTest_NullIsbnBook_ThrowsException()
        {
            //arrange
            var book = BookTestUtils.GenerateValidBook();

            book.Isbn = null;

            _access.WithDeleteWithIdResult(true);
            _sut = new BookRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.DeleteAsync(book);

            //assert
            Assert.IsFalse(result);
            _access.Verify(m => m.DeleteWithIdAsync(It.IsAny <string>()), Times.Never);
        }
コード例 #10
0
        public async Task DeleteWithIsbnAsyncTest_InvalidIsbn_ThrowsException()
        {
            //arrange
            var book = BookTestUtils.GenerateValidBook();

            book.Isbn = "invalid-isbn";

            _access.WithInsertUpdateResult(true);

            _sut = new BookRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.DeleteAsync(book);

            //assert
            Assert.IsFalse(result);
            _access.Verify(m => m.DeleteOneAsync(It.IsAny <IMap>()), Times.Never);
        }
コード例 #11
0
        public async Task GetPagedBooksFilterTest_NullFilter_Exception()
        {
            //arrange
            const int validPageId     = 10;
            const int invalidPageSize = 10;

            _access.WithValidCatalogueSearch(null);
            _filterMapper.WithMap(BookCatalogueFilterTestUtils.GetValidCatalogueFilterMap);
            _catalogueMapper.WithUnMap(BookTestUtils.GenerateInvalidBook());

            _sut = new BookRepository(_access.Object, _mapper.Object, _filterMapper.Object, _catalogueMapper.Object);

            //act
            var result = await _sut.GetPagedBooks(validPageId, invalidPageSize, null);

            //assert
            Assert.IsNull(result);
            _access.Verify(m => m.SelectDescriptionWithId(It.IsAny <string>()), Times.Never);
        }
コード例 #12
0
        public async Task GetPagedBooksFilterTest_EmptyCatalogueItems_HappyPath()
        {
            //arrange
            const int validPageId     = 10;
            const int invalidPageSize = 10;

            _access.WithValidCatalogueSearch(new List <CatalogueItemMap>());
            _filterMapper.WithMap(BookCatalogueFilterTestUtils.GetValidCatalogueFilterMap);
            _catalogueMapper.WithUnMap(BookTestUtils.GenerateInvalidBook());

            _sut = new BookRepository(_access.Object, _mapper.Object, _filterMapper.Object, _catalogueMapper.Object);

            //act
            var result = await _sut.GetPagedBooks(validPageId, invalidPageSize, BookCatalogueFilterTestUtils.GetValidCatalogueFilter);

            //assert
            Assert.IsNotNull(result);
            _access.Verify(m => m.SearchCatalogue(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <CatalogueFilterMap>()), Times.Once);
        }
コード例 #13
0
        public async Task GetByIsbnAsyncTest_InvalidIsbn_ThrowsException()
        {
            //arrange
            var book = BookTestUtils.GenerateValidBook();

            book.Isbn = "invalid-isbn";

            _mapper.WithUnmap(BookTestUtils.GenerateValidBook());
            _access.WithSelectWithIdResult(BookMapTestUtils.GenerateValidBookMap() as IBookMap);

            _sut = new BookRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.GetByIsbnAsync(book.Isbn);

            //assert
            Assert.IsNull(result);
            _access.Verify(m => m.SelectWithIdAsync(It.IsAny <string>()), Times.Never);
        }