public LoadBalancerBodyView(IApplicationInstanceContext context, IResourceFileLocator fileLocator, ITokenReplacer replacer, IAdministratorSecurityChecker securityChecker) { _context = context; _fileLocator = fileLocator; _replacer = replacer; _securityChecker = securityChecker; }
public ApplicationListingBodyView(IAdministratorSecurityChecker securityChecker, IApplicationInstanceRepository applicationInstanceRepository, IResourceFileLocator fileLocator, ITokenReplacer replacer, IApplicationListingRowView applicationListingRowView) { this.checker = securityChecker; this.applicationInstanceRepository = applicationInstanceRepository; this.fileLocator = fileLocator; this.replacer = replacer; this.applicationListingRowView = applicationListingRowView; }
public void Correctly_returns_html_for_page_for_an_administrator() { List <ApplicationInstance> applicationList = new List <ApplicationInstance>(); //application group 1 applicationList.Add(new ApplicationInstance()); applicationList[0].MaintenanceHostHeader = "1"; applicationList.Add(new ApplicationInstance()); applicationList[1].MaintenanceHostHeader = "1"; //application group 2 applicationList.Add(new ApplicationInstance()); applicationList[2].MaintenanceHostHeader = "2"; applicationList.Add(new ApplicationInstance()); applicationList[3].MaintenanceHostHeader = "2"; MockRepository mocks = new MockRepository(); IApplicationInstanceRepository repository = mocks.CreateMock <IApplicationInstanceRepository>(); IResourceFileLocator fileLocator = mocks.CreateMock <IResourceFileLocator>(); ITokenReplacer replacer = mocks.CreateMock <ITokenReplacer>(); IAdministratorSecurityChecker securityChecker = mocks.CreateMock <IAdministratorSecurityChecker>(); IApplicationListingRowView applicationListingRowView = mocks.CreateMock <IApplicationListingRowView>(); using (mocks.Record()) { Expect.Call(securityChecker.IsCurrentUserAdministrator()).Return(true); Expect.Call(repository.GetAll()).Return(applicationList); Expect.Call(fileLocator.ReadTextFile("Tarantino.Core", ApplicationListingBodyView.BodyTemplate)).Return("body template"); replacer.Text = "body template"; Expect.Call(applicationListingRowView.BuildFirstRowHtml(applicationList[0], 2)).Return("1"); Expect.Call(applicationListingRowView.BuildMRowHtml(applicationList[1])).Return("2"); Expect.Call(applicationListingRowView.BuildFirstRowHtml(applicationList[2], 2)).Return("3"); Expect.Call(applicationListingRowView.BuildMRowHtml(applicationList[3])).Return("4"); replacer.Replace("ROWS", "1234"); Expect.Call(replacer.Text).Return("formatted HTML"); } using (mocks.Playback()) { IApplicationListingBodyView view = new ApplicationListingBodyView(securityChecker, repository, fileLocator, replacer, applicationListingRowView); string html = view.BuildHtml(); Assert.That(html, Is.EqualTo("formatted HTML")); } mocks.VerifyAll(); }
public void Correctly_returns_error_when_user_is_not_an_administrator() { MockRepository mocks = new MockRepository(); IAdministratorSecurityChecker checker = mocks.CreateMock <IAdministratorSecurityChecker>(); using (mocks.Record()) { Expect.Call(checker.IsCurrentUserAdministrator()).Return(false); } using (mocks.Playback()) { ISecureAvailabilityStatusUpdater statusUpdater = new SecureAvailabilityStatusUpdater(checker, null, null); string errorMessage = statusUpdater.SetStatus(true); Assert.That(errorMessage, Is.EqualTo("Only authenticated users can change the load balancing status.\n")); } mocks.VerifyAll(); }
public void Correctly_returns_html_for_error_authenticated_page_with_disabled_instance() { string errorMessage = "An error has occured!"; string bodyTemplate = "body template"; ApplicationInstance instance = new ApplicationInstance(); instance.MachineName = "MyMachine"; instance.AvailableForLoadBalancing = false; MockRepository mocks = new MockRepository(); IApplicationInstanceContext context = mocks.CreateMock <IApplicationInstanceContext>(); IResourceFileLocator fileLocator = mocks.CreateMock <IResourceFileLocator>(); ITokenReplacer replacer = mocks.CreateMock <ITokenReplacer>(); IAdministratorSecurityChecker securityChecker = mocks.CreateMock <IAdministratorSecurityChecker>(); using (mocks.Record()) { Expect.Call(securityChecker.IsCurrentUserAdministrator()).Return(true); Expect.Call(context.GetCurrent()).Return(instance); Expect.Call(fileLocator.ReadTextFile("Tarantino.Core", LoadBalancerBodyView.LoadBalancerBodyTemplate)).Return(bodyTemplate); replacer.Text = bodyTemplate; replacer.Replace("ERROR_MESSAGE", errorMessage); replacer.Replace("CURRENT_STATE", "disabled"); replacer.Replace("MACHINE", "MyMachine"); replacer.Replace("CHANGE_STATE_LINK", "<a href=\"?enabled=True\">enable</a>"); Expect.Call(replacer.Text).Return("formatted HTML"); } using (mocks.Playback()) { ILoadBalancerBodyView view = new LoadBalancerBodyView(context, fileLocator, replacer, securityChecker); string html = view.BuildHtml(errorMessage); Assert.That(html, Is.EqualTo("formatted HTML")); } }
public void Builder_Should_return_a_friendly_not_suthorized_message_for_non_administrators() { MockRepository mocks = new MockRepository(); ITokenReplacer replacer = mocks.CreateMock <ITokenReplacer>(); IAdministratorSecurityChecker securityChecker = mocks.CreateMock <IAdministratorSecurityChecker>(); using (mocks.Record()) { Expect.Call(securityChecker.IsCurrentUserAdministrator()).Return(false); replacer.Text = "Unauthorized request."; Expect.Call(replacer.Text).Return("formatted HTML"); } using (mocks.Playback()) { ApplicationListingBodyView view = new ApplicationListingBodyView(securityChecker, null, null, replacer, null); string html = view.BuildHtml(); Assert.That(html, Is.EqualTo("formatted HTML")); } mocks.VerifyAll(); }
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); } }
public SecureAvailabilityStatusUpdater(IAdministratorSecurityChecker securityChecker, IWebContext context, IAvailabilityStatusUpdater statusUpdater) { _securityChecker = securityChecker; _context = context; _statusUpdater = statusUpdater; }