public void CallsSaveChanges()
        {
            var fakeContext = MockRepository.GenerateMock<HrContext>();
            fakeContext.Stub(e=>e.Employees).Return( MockRepository.GenerateStub<DbSet<Employee>>());

            var ec = new StandardEmployeePersistance(dummyEmailProvider, fakeContext);

            ec.Add(new NewEmployee { FirstName = "Bob", LastName = "Smith", Salary = 30000 });

            fakeContext.AssertWasCalled(f=>f.SaveChanges());
        }
        public void GetsAnEmailAddress()
        {
            var fakeContext = MockRepository.GenerateStub<HrContext>();
            var fakeSet = MockRepository.GenerateStub<DbSet<Employee>>();
            fakeContext.Employees = fakeSet;

            var ec = new StandardEmployeePersistance(dummyEmailProvider, fakeContext);

            var result = ec.Add(new NewEmployee { FirstName = "Bob", LastName = "Smith" });

            Assert.AreEqual("*****@*****.**", result.Email);
        }
        public void AddsEmployeeToSet()
        {
            var fakeContext = MockRepository.GenerateStub<HrContext>();
            var fakeSet = MockRepository.GenerateMock<DbSet<Employee>>();
            fakeSet.Expect(f => f.Add(Arg<Employee>.Matches(
                a => a.FirstName == "Bob"
                && a.LastName == "Smith"
                && a.Email == "*****@*****.**"
                && a.Salary == 30000)));
            fakeContext.Employees = fakeSet;

            var ec = new StandardEmployeePersistance(dummyEmailProvider, fakeContext);

            var result = ec.Add(new NewEmployee { FirstName = "Bob", LastName = "Smith", Salary = 30000});

            fakeSet.VerifyAllExpectations();
        }