public void Get_GivenBorrowerDoesNotExistForId_ShouldReturnBorrower()
        {
            //---------------Set up test pack-------------------
            var borrower = new BorrowerBuilder()
                .WithRandomProps().Build();
            var dbContext = new TestDbContextBuilder()
                .WithBorrowers(borrower)
                .Build();

            var repository = new BorrowerRepository(dbContext);
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var actualBorrower = repository.Get(borrower.Id + 1);
            //---------------Test Result -----------------------
            Assert.IsNull(actualBorrower);
        }
        public void GetAll_GivenOneBorrower_ShouldReturnBorrower()
        {
            //---------------Set up test pack-------------------
            var borrower = new BorrowerBuilder()
                .WithRandomProps().Build();

            var dbContext = new TestDbContextBuilder()
                .WithBorrowers(borrower)
                .Build();

            var repository = new BorrowerRepository(dbContext);
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var borrowers = repository.GetAll();
            //---------------Test Result -----------------------
            Assert.AreEqual(1, borrowers.Count);
            var actual = borrowers.First();
            Assert.AreSame(borrower, actual);
        }
        public void GetTitleByID_GivenSingleTitleWithNoMatchingId_ShouldReturnNull()
        {
            //---------------Set up test pack-------------------
            var title = new TitleBuilder()
                .WithRandomProps().Build();

            var dbContext = new TestDbContextBuilder()
                .WithTitles(title)
                .Build();

            var repository = new BorrowerRepository(dbContext);
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var actualTitle = repository.GetTitleById(title.Id + 1);
            //---------------Test Result -----------------------
            Assert.IsNull(actualTitle);
        }
        public void GetAllTitles_GivenManyTitle_ShouldReturnTitle()
        {
            //---------------Set up test pack-------------------
            var title1 = new TitleBuilder()
                .WithRandomProps().Build();
            var title2 = new TitleBuilder()
               .WithRandomProps().Build();
            var title3 = new TitleBuilder()
              .WithRandomProps().Build();
            var dbContext = new TestDbContextBuilder()
                .WithTitles(title1, title2, title3)
                .Build();

            var repository = new BorrowerRepository(dbContext);
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var titles = repository.GetAllTitles();
            //---------------Test Result -----------------------
            Assert.AreEqual(3, titles.Count);
            var actualFirst = titles.First();
            Assert.AreSame(title1, actualFirst);
            var actualLast = titles.Last();
            Assert.AreSame(title3, actualLast);
        }