public string BuildHtml(string errorMessage) { ApplicationInstance instance = _context.GetCurrent(); string template = _fileLocator.ReadTextFile("Tarantino.Core", LoadBalancerBodyTemplate); _replacer.Text = template; _replacer.Replace("ERROR_MESSAGE", errorMessage); _replacer.Replace("CURRENT_STATE", instance.AvailableForLoadBalancing ? "enabled" : "disabled"); _replacer.Replace("MACHINE", instance.MachineName); string changeStateLink = string.Empty; if (_securityChecker.IsCurrentUserAdministrator()) { bool newState = !instance.AvailableForLoadBalancing; string newStateLabel = newState ? "enable" : "disable"; changeStateLink = string.Format(_changeStateLinkTemplate, LoadBalanceStatusManager.ENABLED_PARAM, newState, newStateLabel); } _replacer.Replace("CHANGE_STATE_LINK", changeStateLink); return(_replacer.Text); }
public void Correctly_build_menu_view() { MockRepository mocks = new MockRepository(); IResourceFileLocator locator = mocks.CreateMock <IResourceFileLocator>(); ITokenReplacer replacer = mocks.CreateMock <ITokenReplacer>(); using (mocks.Record()) { string htmlTemplate = "||APPLICATION_URL|| ||CACHE_URL|| ||ASSEMBLY_URL|| ||LOADBALANCER_URL|| ||DISABLE_URL||"; Expect.Call(locator.ReadTextFile("Tarantino.Core", MenuView.MenuTemplate)).Return(htmlTemplate); replacer.Text = htmlTemplate; replacer.Replace("APPLICATION_URL", "Tarantino.WebManagement.Application.axd"); replacer.Replace("CACHE_URL", "Tarantino.WebManagement.Cache.axd"); replacer.Replace("ASSEMBLY_URL", "Tarantino.WebManagement.Assemblies.axd"); replacer.Replace("LOADBALANCER_URL", "Tarantino.WebManagement.LoadBalancer.axd"); replacer.Replace("DISABLE_URL", "Tarantino.WebManagement.DisableSSL.axd"); Expect.Call(replacer.Text).Return("fully formatted html"); } using (mocks.Playback()) { IMenuView menuView = new MenuView(locator, replacer); string html = menuView.BuildHtml(); Assert.That(html, Is.EqualTo("fully formatted html")); } }
public string BuildHtml() { string template = _resourceFileLocator.ReadTextFile("Tarantino.Core", MenuTemplate); _replacer.Text = template; _replacer.Replace("APPLICATION_URL", "Tarantino.WebManagement.Application.axd"); _replacer.Replace("CACHE_URL", "Tarantino.WebManagement.Cache.axd"); _replacer.Replace("ASSEMBLY_URL", "Tarantino.WebManagement.Assemblies.axd"); _replacer.Replace("LOADBALANCER_URL", "Tarantino.WebManagement.LoadBalancer.axd"); _replacer.Replace("DISABLE_URL", "Tarantino.WebManagement.DisableSSL.axd"); return(_replacer.Text); }
public string BuildHtml(string bodyHtml) { string pageTemplate = _fileLocator.ReadTextFile("Tarantino.Core", PageTemplate); string cssHtml = _fileLocator.ReadTextFile("Tarantino.Core", StylesheetTemplate); string menuHtml = _menuView.BuildHtml(); _replacer.Text = pageTemplate; _replacer.Replace("CSS", cssHtml); _replacer.Replace("MENU", menuHtml); _replacer.Replace("BODY", bodyHtml); return(_replacer.Text); }
public void Import(string excelFile, string server, string database, bool integrated, string username, string password, ITaskObserver taskObserver) { string message = string.Format("\nImporting Excel File '{0}' to Database '{1}' on Server '{2}'\n", excelFile, database, server); taskObserver.Log(message); var settings = new ConnectionSettings(server, database, integrated, username, password); string sql = _fileLocator.ReadTextFile("Tarantino.Core", "Tarantino.Core.DatabaseManager.SqlFiles.ImportExcel.sql"); _tokenReplacer.Text = sql; _tokenReplacer.Replace("DATABASE", database); _tokenReplacer.Replace("EXCEL_FILE", excelFile); _queryExecutor.ExecuteNonQuery(settings, _tokenReplacer.Text, false); }
public string BuildHtml() { if (checker.IsCurrentUserAdministrator()) { IList <ApplicationInstance> applications = new List <ApplicationInstance>(applicationInstanceRepository.GetAll()); string bodyTemplate = fileLocator.ReadTextFile("Tarantino.Core", ApplicationListingBodyView.BodyTemplate); replacer.Text = bodyTemplate; ApplicationInstance lastInstance = new ApplicationInstance(); string rowHTMl = ""; foreach (ApplicationInstance instance in applications) { if (instance.MaintenanceHostHeader != lastInstance.MaintenanceHostHeader) { int instanceCount = GetInstanceCount(applications, instance.MaintenanceHostHeader); rowHTMl += applicationListingRowView.BuildFirstRowHtml(instance, instanceCount); } else { rowHTMl += applicationListingRowView.BuildMRowHtml(instance); } lastInstance = instance; } replacer.Replace("ROWS", rowHTMl); } else { replacer.Text = "Unauthorized request."; } return(replacer.Text); }
public void Correctly_drops_connections() { string assembly = SqlDatabaseManager.SQL_FILE_ASSEMBLY; string sqlFile = string.Format(SqlDatabaseManager.SQL_FILE_TEMPLATE, "DropConnections"); ConnectionSettings settings = new ConnectionSettings("server", "MyDatabase", true, null, null); MockRepository mocks = new MockRepository(); ITaskObserver taskObserver = mocks.CreateMock <ITaskObserver>(); IResourceFileLocator fileLocator = mocks.CreateMock <IResourceFileLocator>(); ITokenReplacer replacer = mocks.CreateMock <ITokenReplacer>(); IQueryExecutor queryExecutor = mocks.CreateMock <IQueryExecutor>(); using (mocks.Record()) { taskObserver.Log("Dropping connections for database MyDatabase\n"); Expect.Call(fileLocator.ReadTextFile(assembly, sqlFile)).Return("Unformatted SQL"); replacer.Text = "Unformatted SQL"; replacer.Replace("DatabaseName", "MyDatabase"); Expect.Call(replacer.Text).Return("Formatted SQL"); queryExecutor.ExecuteNonQuery(settings, "Formatted SQL", false); } using (mocks.Playback()) { IDatabaseConnectionDropper dropper = new DatabaseConnectionDropper(fileLocator, replacer, queryExecutor); dropper.Drop(settings, taskObserver); } 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 Correctly_renders_page_view() { string cssText = "css stuff"; MockRepository mocks = new MockRepository(); IResourceFileLocator fileLocator = mocks.CreateMock <IResourceFileLocator>(); ITokenReplacer replacer = mocks.CreateMock <ITokenReplacer>(); IMenuView menuView = mocks.CreateMock <IMenuView>(); using (mocks.Record()) { string htmlTemplate = "||CSS|| ||MENU|| ||BODY||"; Expect.Call(fileLocator.ReadTextFile("Tarantino.Core", PageView.PageTemplate)).Return(htmlTemplate); replacer.Text = htmlTemplate; Expect.Call(fileLocator.ReadTextFile("Tarantino.Core", PageView.StylesheetTemplate)).Return(cssText); replacer.Replace("CSS", cssText); Expect.Call(menuView.BuildHtml()).Return("menu stuff"); replacer.Replace("MENU", "menu stuff"); replacer.Replace("BODY", "body stuff"); Expect.Call(replacer.Text).Return("page content"); } using (mocks.Playback()) { IPageView pageView = new PageView(fileLocator, menuView, replacer); string html = pageView.BuildHtml("body stuff"); Assert.That(html, Is.EqualTo("page content")); } }
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 View_should_build_html_for_row_one() { ApplicationInstance instance = new ApplicationInstance(); instance.MaintenanceHostHeader = "1"; instance.MachineName = "2"; instance.Id = Guid.NewGuid(); MockRepository mocks = new MockRepository(); IResourceFileLocator fileLocator = mocks.CreateMock <IResourceFileLocator>(); ITokenReplacer tokenReplacer = mocks.CreateMock <ITokenReplacer>(); using (mocks.Record()) { Expect.Call(fileLocator.ReadTextFile("Tarantino.Core", ApplicationListingBodyView.Row1Fragment)).Return( "template"); tokenReplacer.Text = "template"; tokenReplacer.Replace("INSTANCE_COUNT", "2"); tokenReplacer.Replace("INSTANCE_ID", instance.Id.ToString()); tokenReplacer.Replace("MAINTANANCE_HOST_HEADER", instance.MaintenanceHostHeader); tokenReplacer.Replace("MAINTANANCE_STATUS", instance.DownForMaintenance ? "Offline" : "Online"); tokenReplacer.Replace("MACHINE_NAME", instance.MachineName); tokenReplacer.Replace("LOAD_BALANCE_STATUS", instance.AvailableForLoadBalancing ? "Online" : "Offline"); tokenReplacer.Replace("NEW_LOAD_BALANCE_STATUS", (!instance.AvailableForLoadBalancing).ToString()); tokenReplacer.Replace("VERSION", instance.Version); tokenReplacer.Replace("HOST_HEADER", instance.UniqueHostHeader); Expect.Call(tokenReplacer.Text).Return("html"); } using (mocks.Playback()) { ApplicationListingRowView view = new ApplicationListingRowView(fileLocator, tokenReplacer); string html = view.BuildFirstRowHtml(instance, 2); Assert.That(html, Is.EqualTo("html")); } mocks.VerifyAll(); }
public void Drop(ConnectionSettings settings, ITaskObserver taskObserver) { string message = string.Format("Dropping connections for database {0}\n", settings.Database); taskObserver.Log(message); string assembly = SqlDatabaseManager.SQL_FILE_ASSEMBLY; string sqlFile = string.Format(SqlDatabaseManager.SQL_FILE_TEMPLATE, "DropConnections"); string sql = _fileLocator.ReadTextFile(assembly, sqlFile); _replacer.Text = sql; _replacer.Replace("DatabaseName", settings.Database); sql = _replacer.Text; _executor.ExecuteNonQuery(settings, sql, false); }
public string BuildFirstRowHtml(ApplicationInstance applicationInstance, int instanceCount) { string template = fileLocator.ReadTextFile("Tarantino.Core", ApplicationListingBodyView.Row1Fragment); tokenReplacer.Text = template; tokenReplacer.Replace("INSTANCE_COUNT", instanceCount.ToString()); tokenReplacer.Replace("INSTANCE_ID", applicationInstance.Id.ToString()); tokenReplacer.Replace("MAINTANANCE_HOST_HEADER", applicationInstance.MaintenanceHostHeader); tokenReplacer.Replace("MAINTANANCE_STATUS", applicationInstance.DownForMaintenance ? "Offline" : "Online"); tokenReplacer.Replace("MACHINE_NAME", applicationInstance.MachineName); tokenReplacer.Replace("LOAD_BALANCE_STATUS", applicationInstance.AvailableForLoadBalancing ? "Online" : "Offline"); tokenReplacer.Replace("NEW_LOAD_BALANCE_STATUS", (!applicationInstance.AvailableForLoadBalancing).ToString()); tokenReplacer.Replace("VERSION", applicationInstance.Version); tokenReplacer.Replace("HOST_HEADER", applicationInstance.UniqueHostHeader); return(tokenReplacer.Text); }