public void Edit_GivenValidBorrowerId_ShouldReturnBorrowerViewModelWithTitles()
        {
            //---------------Set up test pack-------------------
            var borrower = new BorrowerBuilder().WithRandomProps().Build();
            var id = borrower.Id;

            var repository = Substitute.For<IBorrowerRepository>();
            repository.Get(id).Returns(borrower);
            var title = new Title { Id = RandomValueGen.GetRandomInt(), Description = RandomValueGen.GetRandomString() };
            var titles = new List<Title> { title };
            repository.GetAllTitles().Returns(titles);

            var mapper = Substitute.For<IMappingEngine>();
            var borrowerViewModel = new BorrowerViewModel { Id = RandomValueGen.GetRandomInt() };

         
            mapper.Map<BorrowerViewModel>(borrower).Returns(borrowerViewModel);
            var borrowerController = CreateBuilder()
                .WithBorrowerRepository(repository)
                .WithMappingEngine(mapper)
                .Build();
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var result = borrowerController.Edit(id) as ViewResult;
            //---------------Test Result -----------------------
            Assert.IsNotNull(result);
            var model = result.Model as BorrowerViewModel;
            Assert.IsNotNull(model);
            Assert.AreEqual(1,model.TitlesSelectList.Count);
        }
        public void Create_GET_ShouldReturnViewResultWithTitles()
        {
            var repository = Substitute.For<IBorrowerRepository>();
            var title = new Title { Id=RandomValueGen.GetRandomInt(), Description = RandomValueGen.GetRandomString()};
            var titles = new List<Title> {title};

            repository.GetAllTitles().Returns(titles);

            var borrowerController = CreateBuilder()
                .WithBorrowerRepository(repository)
                .Build();
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var result = borrowerController.Create() as ViewResult;
            //---------------Test Result -----------------------
            Assert.IsNotNull(result);
            var model = result.Model as BorrowerViewModel;
            Assert.IsNotNull(model);
            Assert.IsInstanceOf<List<SelectListItem>>(model.TitlesSelectList);
            Assert.AreEqual(1, model.TitlesSelectList.Count);
            var selectListItem = model.TitlesSelectList.First();
            Assert.AreEqual(title.Id.ToString(), selectListItem.Value);
            Assert.AreEqual(title.Description, selectListItem.Text);
        }