public LoadBalancerBodyView(IApplicationInstanceContext context, IResourceFileLocator fileLocator, ITokenReplacer replacer, IAdministratorSecurityChecker securityChecker) { _context = context; _fileLocator = fileLocator; _replacer = replacer; _securityChecker = securityChecker; }
public void Should_disable_load_balancing_when_requested() { ApplicationInstance instance = new ApplicationInstance(); instance.AvailableForLoadBalancing = false; MockRepository mocks = new MockRepository(); IApplicationInstanceContext instanceContext = mocks.CreateMock <IApplicationInstanceContext>(); IWebContext context = mocks.CreateMock <IWebContext>(); ISecureAvailabilityStatusUpdater updater = mocks.CreateMock <ISecureAvailabilityStatusUpdater>(); using (mocks.Record()) { Expect.Call(instanceContext.GetCurrent()).Return(instance); Expect.Call(context.GetRequestItem(LoadBalanceStatusManager.ENABLED_PARAM)).Return("FALSE"); Expect.Call(updater.SetStatus(false)).Return(string.Empty); } using (mocks.Playback()) { ILoadBalanceStatusManager manager = new LoadBalanceStatusManager(instanceContext, context, updater); string errorMessage = manager.HandleLoadBalanceRequest(); Assert.That(errorMessage, Is.Empty); } }
public MaintenanceRedirectionChecker(IFileExtensionChecker extensionChecker, IExternalUrlChecker urlChecker, IApplicationInstanceContext context) { _extensionChecker = extensionChecker; _urlChecker = urlChecker; _context = context; }
public void Return_status_400_message_if_instance_should_be_offline_and_status_not_being_changed() { ApplicationInstance instance = new ApplicationInstance(); instance.AvailableForLoadBalancing = false; MockRepository mocks = new MockRepository(); IApplicationInstanceContext instanceContext = mocks.CreateMock <IApplicationInstanceContext>(); IWebContext context = mocks.CreateMock <IWebContext>(); using (mocks.Record()) { Expect.Call(instanceContext.GetCurrent()).Return(instance); Expect.Call(context.GetRequestItem(LoadBalanceStatusManager.ENABLED_PARAM)).Return(null); context.SetHttpResponseStatus(400, "This application has been turned off"); } using (mocks.Playback()) { ILoadBalanceStatusManager manager = new LoadBalanceStatusManager(instanceContext, context, null); string errorMessage = manager.HandleLoadBalanceRequest(); Assert.That(errorMessage, Is.Empty); } }
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 Correctly_disables_application_instance() { ApplicationInstance instance = new ApplicationInstance(); MockRepository mocks = new MockRepository(); IApplicationInstanceRepository repository = mocks.CreateMock <IApplicationInstanceRepository>(); IApplicationInstanceContext context = mocks.CreateMock <IApplicationInstanceContext>(); using (mocks.Record()) { Expect.Call(context.GetCurrent()).Return(instance); repository.Save(instance); } using (mocks.Playback()) { IAvailabilityStatusUpdater updater = new AvailabilityStatusUpdater(repository, context); updater.SetAvailabilityStatus(false); Assert.That(instance.AvailableForLoadBalancing, Is.False); } mocks.VerifyAll(); }
private void performTest(bool isRedirectableExtension, bool isExternalUrl, bool isDownForMaintenance, bool shouldBeRedirected) { ApplicationInstance instance = new ApplicationInstance(); instance.DownForMaintenance = isDownForMaintenance; MockRepository mocks = new MockRepository(); IFileExtensionChecker extensionChecker = mocks.CreateMock <IFileExtensionChecker>(); IExternalUrlChecker urlChecker = mocks.CreateMock <IExternalUrlChecker>(); IApplicationInstanceContext context = mocks.CreateMock <IApplicationInstanceContext>(); using (mocks.Record()) { Expect.Call(extensionChecker.CurrentUrlCanBeRedirected()).Return(isRedirectableExtension); Expect.Call(urlChecker.CurrentUrlIsExternal()).Return(isExternalUrl); Expect.Call(context.GetCurrent()).Return(instance); } using (mocks.Playback()) { IMaintenanceRedirectionChecker checker = new MaintenanceRedirectionChecker(extensionChecker, urlChecker, context); Assert.That(checker.ShouldBeRedirectedToMaintenancePage(), Is.EqualTo(shouldBeRedirected)); } }
public AvailabilityStatusUpdater(IApplicationInstanceRepository repository, IApplicationInstanceContext context) { _repository = repository; _context = context; }
public LoadBalanceStatusManager(IApplicationInstanceContext instanceContext, IWebContext context, ISecureAvailabilityStatusUpdater statusUpdater) { _instanceContext = instanceContext; _context = context; _statusUpdater = statusUpdater; }