public string SetStatus(bool enabled) { string errorMessage = string.Empty; if (_securityChecker.IsCurrentUserAdministrator()) { _statusUpdater.SetAvailabilityStatus(enabled); _context.Redirect(_context.GetCurrentUrl()); } else { errorMessage = "Only authenticated users can change the load balancing status.\n"; } return(errorMessage); }
public void Correctly_sets_availability_status_for_administrator() { MockRepository mocks = new MockRepository(); IAdministratorSecurityChecker checker = mocks.CreateMock <IAdministratorSecurityChecker>(); IWebContext context = mocks.CreateMock <IWebContext>(); IAvailabilityStatusUpdater updater = mocks.CreateMock <IAvailabilityStatusUpdater>(); using (mocks.Record()) { Expect.Call(checker.IsCurrentUserAdministrator()).Return(true); updater.SetAvailabilityStatus(true); Expect.Call(context.GetCurrentUrl()).Return("http://mydomain/"); context.Redirect("http://mydomain/"); } using (mocks.Playback()) { ISecureAvailabilityStatusUpdater statusUpdater = new SecureAvailabilityStatusUpdater(checker, context, updater); string errorMessage = statusUpdater.SetStatus(true); Assert.That(errorMessage, Is.Empty); } }