public void IndividualService_Add_Throws_On_Null_Individual()
        {
            //Arrange
            _service = new IndividualService(_mockUnitOfWork.Object);

            //Assert
            Assert.Throws<ArgumentNullException>(() => _service.Add(null));
        }
        public void IndividualService_Add_Calls_Repository_Add_Method_With_The_Same_Individual_Object_It_Recieved()
        {
            // Create test data
            var newIndividual = new Individual
                                    {
                                        FirstName = "Foo",
                                        LastName = "Bar"
                                    };

            //Create Mock
            var mockRepository = new Mock<IRepository<Individual>>();
            _mockUnitOfWork.Setup(d => d.GetRepository<Individual>()).Returns(mockRepository.Object);

            //Arrange
            _service = new IndividualService(_mockUnitOfWork.Object);

            //Act
            _service.Add(newIndividual);

            //Assert
            mockRepository.Verify(r => r.Add(newIndividual));
        }
        public void IndividualService_Add_Calls_UnitOfWork_Commit_Method()
        {
            // Create test data
            var newIndividual = new Individual
                                    {
                                        FirstName = "Foo",
                                        LastName = "Bar"
                                    };

            //Create Mock
            var mockRepository = new Mock<IRepository<Individual>>();
            _mockUnitOfWork.Setup(d => d.GetRepository<Individual>()).Returns(mockRepository.Object);

            //Arrange
            _service = new IndividualService(_mockUnitOfWork.Object);

            //Act
            _service.Add(newIndividual);

            //Assert
            _mockUnitOfWork.Verify(db => db.Commit());
        }