public void Verify_that_security_provider_is_called()
        {
            var mockProvider = MockRepository.GenerateMock<IUpdateEmployeePermissible>();
            mockProvider.Expect(x => x.CanUpdateEmployeeRate(1)).Return(true);

            Employee currentEmployee = new Employee(1, "Jim", "Holmes", "Doghouse", 5);
            EmployeeUpdater updater = new EmployeeUpdater(mockProvider);

            Employee updatedEmployee = updater.UpdateEmployeeRate(currentEmployee, 10);

            mockProvider.VerifyAllExpectations();
        }
        public void Updated_employee_has_correct_new_rate()
        {
            var stubProvider = MockRepository.GenerateStub<IUpdateEmployeePermissible>();
            stubProvider.Stub(x => x.CanUpdateEmployeeRate(1)).Return(true);

            Employee emp = new Employee(1, "Jim", "Holmes", "Doghouse", 5);
            EmployeeUpdater updater = new EmployeeUpdater(stubProvider);

            Employee updatedEmp = updater.UpdateEmployeeRate(emp, 10);

            Assert.That(updatedEmp.HourlyRate, Is.EqualTo(10));
        }
        public void Verify_security_provider_is_called()
        {
            int userId = 1;
            int oldRate = 5;
            int newRate = 10;

            var mockProvider =
                MockRepository.GenerateMock<IUpdateEmployeePermissible>();
            mockProvider.Expect(x =>
                x.CanUpdateEmployeeRate(userId)).Return(true);

            Employee current = new Employee(userId, "Jim", "Holmes", "Doghouse", oldRate);
            EmployeeUpdater updater = new EmployeeUpdater(mockProvider);

            Employee updated = updater.UpdateEmployeeRate(current, newRate);

            mockProvider.VerifyAllExpectations();
        }
        public void Updated_employee_has_correct_rate()
        {
            int userId = 1;
            int oldRate = 5;
            int newRate = 10;

            var stubProvider =
                MockRepository.GenerateStub<IUpdateEmployeePermissible>();
            stubProvider.Stub(x =>
                x.CanUpdateEmployeeRate(userId)).
                Return(true);

            Employee current = new Employee(userId, "Jim", "Holmes", "Doghouse", oldRate);
            EmployeeUpdater updater = new EmployeeUpdater(stubProvider);

            Employee updated = updater.UpdateEmployeeRate(current, newRate);

            Assert.AreEqual(updated.HourlyRate, newRate);
        }