From 66a89c3102df9f0e4bd8886e8ce613bca642c5e1 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Fri, 5 Jul 2013 16:47:33 -0700 Subject: [PATCH] Fixing specflow tests --HG-- branch : 1.x --- .../DefaultTenantManagerTests.cs | 14 ++++++ .../Environment/RunningShellTableTests.cs | 2 +- .../Orchard.Fields/Specs/DateTime.feature | 2 +- .../Orchard.Fields/Specs/DateTime.feature.cs | 4 +- .../Orchard.Fields/Specs/Input.feature.cs | 2 +- .../Views/Parts/OEmbed.Summary.cshtml | 2 +- .../Commands/TenantCommand.cs | 2 +- .../Controllers/AdminController.cs | 6 +-- .../Services/TenantService.cs | 5 +-- .../Views/Admin/Edit.cshtml | 2 +- .../Views/Admin/Index.cshtml | 4 +- src/Orchard/Commands/CommandHostAgent.cs | 2 +- .../Configuration/ShellSettings.cs | 2 +- .../Configuration/ShellSettingsSerializer.cs | 3 +- .../Environment/Configuration/TenantState.cs | 43 +++---------------- src/Orchard/Environment/DefaultOrchardHost.cs | 6 +-- src/Orchard/Environment/RunningShellTable.cs | 2 +- 17 files changed, 41 insertions(+), 62 deletions(-) diff --git a/src/Orchard.Tests/Environment/Configuration/DefaultTenantManagerTests.cs b/src/Orchard.Tests/Environment/Configuration/DefaultTenantManagerTests.cs index ddeb6c3e8..b5052ee14 100644 --- a/src/Orchard.Tests/Environment/Configuration/DefaultTenantManagerTests.cs +++ b/src/Orchard.Tests/Environment/Configuration/DefaultTenantManagerTests.cs @@ -112,5 +112,19 @@ namespace Orchard.Tests.Environment.Configuration { Assert.That(settings.HashAlgorithm, Is.EqualTo("HMACSHA256")); Assert.That(settings.HashKey, Is.EqualTo("HIJKLMN")); } + + + [Test] + public void SettingsDontLoseTenantState() { + IShellSettingsManager loader = new ShellSettingsManager(_appDataFolder, new Mock().Object); + var foo = new ShellSettings { Name = "Default" }; + foo.State = TenantState.Disabled; + + loader.SaveSettings(foo); + var settings = loader.LoadSettings().First(); + + Assert.That(settings.Name, Is.EqualTo("Default")); + Assert.That(settings.State, Is.EqualTo(TenantState.Disabled)); + } } } diff --git a/src/Orchard.Tests/Environment/RunningShellTableTests.cs b/src/Orchard.Tests/Environment/RunningShellTableTests.cs index 38f128ede..eedf136de 100644 --- a/src/Orchard.Tests/Environment/RunningShellTableTests.cs +++ b/src/Orchard.Tests/Environment/RunningShellTableTests.cs @@ -255,7 +255,7 @@ namespace Orchard.Tests.Environment { x.Name == y.Name && x.RequestUrlHost == y.RequestUrlHost && x.RequestUrlPrefix == y.RequestUrlPrefix && - x.State.CurrentState == y.State.CurrentState + x.State == y.State ); } diff --git a/src/Orchard.Web/Modules/Orchard.Fields/Specs/DateTime.feature b/src/Orchard.Web/Modules/Orchard.Fields/Specs/DateTime.feature index 2a05100b3..0debfa3ed 100644 --- a/src/Orchard.Web/Modules/Orchard.Fields/Specs/DateTime.feature +++ b/src/Orchard.Web/Modules/Orchard.Fields/Specs/DateTime.feature @@ -54,7 +54,7 @@ Scenario: Creating and using Date fields And I am redirected Then I should see "Your Event has been created." When I go to "Admin/Contents/List" - Then I should see "Date of the event:" + Then I should see "Date of the event" And I should see "1/31/2012 12:00" # The hint should be displayed diff --git a/src/Orchard.Web/Modules/Orchard.Fields/Specs/DateTime.feature.cs b/src/Orchard.Web/Modules/Orchard.Fields/Specs/DateTime.feature.cs index 8c64f326f..e03861d0c 100644 --- a/src/Orchard.Web/Modules/Orchard.Fields/Specs/DateTime.feature.cs +++ b/src/Orchard.Web/Modules/Orchard.Fields/Specs/DateTime.feature.cs @@ -3,7 +3,7 @@ // This code was generated by SpecFlow (http://www.specflow.org/). // SpecFlow Version:1.9.0.77 // SpecFlow Generator Version:1.9.0.0 -// Runtime Version:4.0.30319.18010 +// Runtime Version:4.0.30319.18046 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -176,7 +176,7 @@ this.ScenarioSetup(scenarioInfo); #line 56 testRunner.When("I go to \"Admin/Contents/List\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When "); #line 57 - testRunner.Then("I should see \"Date of the event:\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then "); + testRunner.Then("I should see \"Date of the event\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then "); #line 58 testRunner.And("I should see \"1/31/2012 12:00\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And "); #line 61 diff --git a/src/Orchard.Web/Modules/Orchard.Fields/Specs/Input.feature.cs b/src/Orchard.Web/Modules/Orchard.Fields/Specs/Input.feature.cs index 8f6d09af3..5cf1b6d04 100644 --- a/src/Orchard.Web/Modules/Orchard.Fields/Specs/Input.feature.cs +++ b/src/Orchard.Web/Modules/Orchard.Fields/Specs/Input.feature.cs @@ -3,7 +3,7 @@ // This code was generated by SpecFlow (http://www.specflow.org/). // SpecFlow Version:1.9.0.77 // SpecFlow Generator Version:1.9.0.0 -// Runtime Version:4.0.30319.17929 +// Runtime Version:4.0.30319.18046 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Parts/OEmbed.Summary.cshtml b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Parts/OEmbed.Summary.cshtml index 1bf14e540..b1a3b1021 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Parts/OEmbed.Summary.cshtml +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Parts/OEmbed.Summary.cshtml @@ -3,6 +3,6 @@ OEmbedPart oEmbedPart = Model.ContentPart; } - + @T("Preview") \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Commands/TenantCommand.cs b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Commands/TenantCommand.cs index 044d363bc..6de70d9c4 100644 --- a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Commands/TenantCommand.cs +++ b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Commands/TenantCommand.cs @@ -47,7 +47,7 @@ namespace Orchard.MultiTenancy.Commands { Name = tenantName, RequestUrlHost = Host, RequestUrlPrefix = UrlPrefix, - State = new TenantState("Uninitialized") + State = TenantState.Uninitialized }); } diff --git a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Controllers/AdminController.cs index 935fbafab..3e3c7c235 100644 --- a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Controllers/AdminController.cs @@ -75,7 +75,7 @@ namespace Orchard.MultiTenancy.Controllers { DataProvider = viewModel.DataProvider, DataConnectionString = viewModel.DatabaseConnectionString, DataTablePrefix = viewModel.DatabaseTablePrefix, - State = new TenantState("Uninitialized"), + State = TenantState.Uninitialized, Themes = viewModel.Themes.Where(x => x.Checked).Select(x => x.ThemeId).ToArray() }); @@ -167,7 +167,7 @@ namespace Orchard.MultiTenancy.Controllers { var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == name); if (tenant != null && tenant.Name != _thisShellSettings.Name) { - tenant.State.CurrentState = TenantState.State.Disabled; + tenant.State = TenantState.Disabled; _tenantService.UpdateTenant(tenant); } @@ -185,7 +185,7 @@ namespace Orchard.MultiTenancy.Controllers { var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == name); if (tenant != null && tenant.Name != _thisShellSettings.Name) { - tenant.State.CurrentState = TenantState.State.Running; + tenant.State = TenantState.Running; _tenantService.UpdateTenant(tenant); } diff --git a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Services/TenantService.cs b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Services/TenantService.cs index 08e7376ee..44dc17356 100644 --- a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Services/TenantService.cs +++ b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Services/TenantService.cs @@ -25,10 +25,7 @@ namespace Orchard.MultiTenancy.Services { } public void UpdateTenant(ShellSettings settings) { - var tenant = GetTenants().FirstOrDefault(ss => ss.Name == settings.Name); - if ( tenant != null ) { - _shellSettingsManager.SaveSettings(settings); - } + _shellSettingsManager.SaveSettings(settings); } /// diff --git a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Views/Admin/Edit.cshtml b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Views/Admin/Edit.cshtml index cce3ae244..cfba2c3f4 100644 --- a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Views/Admin/Edit.cshtml +++ b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Views/Admin/Edit.cshtml @@ -22,7 +22,7 @@
@T("Database Setup") - @if (Model.State.CurrentState != TenantState.State.Uninitialized) { + @if (Model.State != TenantState.Uninitialized) {
@T("Warning: If you don't know what you're doing you *will* (likely) send this tenant into a downward spiral of irrecoverable disrepair. Have a nice day.")
} else { diff --git a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Views/Admin/Index.cshtml b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Views/Admin/Index.cshtml index 8d00cfa85..25c564182 100644 --- a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Views/Admin/Index.cshtml +++ b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Views/Admin/Index.cshtml @@ -10,7 +10,7 @@
@Html.ActionLink(T("Add a Tenant").ToString(), "Add", new {area = "Orchard.MultiTenancy"}, new { @class = "button primaryAction" })
    @foreach (var tenant in Model.TenantSettings) { -
  • +
  • @tenant.Name @if (!string.IsNullOrEmpty(tenant.RequestUrlHost)) { @@ -26,7 +26,7 @@ diff --git a/src/Orchard/Commands/CommandHostAgent.cs b/src/Orchard/Commands/CommandHostAgent.cs index f0a9e1b9a..6c7a955aa 100644 --- a/src/Orchard/Commands/CommandHostAgent.cs +++ b/src/Orchard/Commands/CommandHostAgent.cs @@ -208,7 +208,7 @@ namespace Orchard.Commands { } else { // In case of an unitiliazed site (no default settings yet), we create a default settings instance. - var settings = new ShellSettings { Name = ShellSettings.DefaultName, State = new TenantState("Uninitialized") }; + var settings = new ShellSettings { Name = ShellSettings.DefaultName, State = TenantState.Uninitialized }; return host.CreateStandaloneEnvironment(settings); } } diff --git a/src/Orchard/Environment/Configuration/ShellSettings.cs b/src/Orchard/Environment/Configuration/ShellSettings.cs index 43bd53975..8953bc5e1 100644 --- a/src/Orchard/Environment/Configuration/ShellSettings.cs +++ b/src/Orchard/Environment/Configuration/ShellSettings.cs @@ -16,7 +16,7 @@ namespace Orchard.Environment.Configuration { public ShellSettings() { _values = new Dictionary(StringComparer.OrdinalIgnoreCase); - State = new TenantState("Invalid"); + State = TenantState.Invalid; Themes = new string[0]; } diff --git a/src/Orchard/Environment/Configuration/ShellSettingsSerializer.cs b/src/Orchard/Environment/Configuration/ShellSettingsSerializer.cs index ce67dda40..7b50051e6 100644 --- a/src/Orchard/Environment/Configuration/ShellSettingsSerializer.cs +++ b/src/Orchard/Environment/Configuration/ShellSettingsSerializer.cs @@ -33,7 +33,8 @@ namespace Orchard.Environment.Configuration { shellSettings.DataProvider = value; break; case "State": - shellSettings.State = new TenantState(value); + TenantState state; + shellSettings.State = Enum.TryParse(value, true, out state) ? state : TenantState.Uninitialized; break; case "DataConnectionString": shellSettings.DataConnectionString = value; diff --git a/src/Orchard/Environment/Configuration/TenantState.cs b/src/Orchard/Environment/Configuration/TenantState.cs index 8b20fa840..5f1a79060 100644 --- a/src/Orchard/Environment/Configuration/TenantState.cs +++ b/src/Orchard/Environment/Configuration/TenantState.cs @@ -1,41 +1,8 @@ namespace Orchard.Environment.Configuration { - public class TenantState { - public TenantState(string state) { - switch (state) { - case "Uninitialized": - CurrentState = State.Uninitialized; - break; - case "Running": - CurrentState = State.Running; - break; - case "Disabled": - CurrentState = State.Disabled; - break; - default: - CurrentState = State.Invalid; - break; - } - } - - public State CurrentState { get; set; } - - public enum State { - Uninitialized, - Running, - Disabled, - Invalid - } - - public override string ToString() { - switch (CurrentState) { - case State.Uninitialized: - return "Uninitialized"; - case State.Running: - return "Running"; - case State.Disabled: - return "Disabled"; - } - return "Invalid"; - } + public enum TenantState { + Uninitialized, + Running, + Disabled, + Invalid } } diff --git a/src/Orchard/Environment/DefaultOrchardHost.cs b/src/Orchard/Environment/DefaultOrchardHost.cs index b0486efb5..ceafd25af 100644 --- a/src/Orchard/Environment/DefaultOrchardHost.cs +++ b/src/Orchard/Environment/DefaultOrchardHost.cs @@ -165,7 +165,7 @@ namespace Orchard.Environment { } ShellContext CreateShellContext(ShellSettings settings) { - if (settings.State.CurrentState == TenantState.State.Uninitialized) { + if (settings.State == TenantState.Uninitialized) { Logger.Debug("Creating shell context for tenant {0} setup", settings.Name); return _shellContextFactory.CreateSetupContext(settings); } @@ -231,7 +231,7 @@ namespace Orchard.Environment { lock (_syncLock) { // if a tenant has been altered, and is not invalid, reload it - if (settings.State.CurrentState != TenantState.State.Invalid) { + if (settings.State != TenantState.Invalid) { _tenantsToRestart = _tenantsToRestart.Where(x => x.Name != settings.Name).Union(new[] { settings }); } } @@ -242,7 +242,7 @@ namespace Orchard.Environment { var shellContext = _shellContexts.FirstOrDefault(c => c.Settings.Name == settings.Name); // is this is a new tenant ? or is it a tenant waiting for setup ? - if (shellContext == null || settings.State.CurrentState == TenantState.State.Uninitialized) { + if (shellContext == null || settings.State == TenantState.Uninitialized) { // create the Shell var context = CreateShellContext(settings); diff --git a/src/Orchard/Environment/RunningShellTable.cs b/src/Orchard/Environment/RunningShellTable.cs index 4e140beba..c0700a392 100644 --- a/src/Orchard/Environment/RunningShellTable.cs +++ b/src/Orchard/Environment/RunningShellTable.cs @@ -100,7 +100,7 @@ namespace Orchard.Environment { .SelectMany(group => group .OrderByDescending(settings => (settings.RequestUrlPrefix ?? string.Empty).Length)) .FirstOrDefault(settings => { - if (settings.State.CurrentState == TenantState.State.Disabled) { + if (settings.State == TenantState.Disabled) { return false; }