Fixing specflow tests

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros
2013-07-05 16:47:33 -07:00
parent 8aae36cf60
commit 66a89c3102
17 changed files with 41 additions and 62 deletions

View File

@@ -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<IShellSettingsManagerEventHandler>().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));
}
}
}

View File

@@ -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
);
}

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -3,6 +3,6 @@
OEmbedPart oEmbedPart = Model.ContentPart;
}
<a href="@oEmbedPart["src"]" target="_blank" class="button">
<a href="@oEmbedPart.Source" target="_blank" class="button">
<span>@T("Preview")</span>
</a>

View File

@@ -47,7 +47,7 @@ namespace Orchard.MultiTenancy.Commands {
Name = tenantName,
RequestUrlHost = Host,
RequestUrlPrefix = UrlPrefix,
State = new TenantState("Uninitialized")
State = TenantState.Uninitialized
});
}

View File

@@ -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);
}

View File

@@ -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);
}
/// <summary>

View File

@@ -22,7 +22,7 @@
</fieldset>
<fieldset>
<legend>@T("Database Setup")</legend>
@if (Model.State.CurrentState != TenantState.State.Uninitialized) {
@if (Model.State != TenantState.Uninitialized) {
<div class="warning message">@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.")</div>
}
else {

View File

@@ -10,7 +10,7 @@
<div class="manage">@Html.ActionLink(T("Add a Tenant").ToString(), "Add", new {area = "Orchard.MultiTenancy"}, new { @class = "button primaryAction" })</div>
<ul class="contentItems tenants">
@foreach (var tenant in Model.TenantSettings) {
<li class="tenant @tenant.State.CurrentState">
<li class="tenant @tenant.State">
<div class="summary">
<div class="properties">
<h3>@tenant.Name @if (!string.IsNullOrEmpty(tenant.RequestUrlHost)) {
@@ -26,7 +26,7 @@
<div class="related">
@if (!string.Equals(tenant.Name, "default", StringComparison.OrdinalIgnoreCase)) { //todo: (heskew) base this off the view model so logic on what can be removed and have its state changed stays in the controller
var t = tenant;
@Html.DisplayFor(m => t, string.Format("ActionsFor{0}", tenant.State.CurrentState), "") @T(" | ")
@Html.DisplayFor(m => t, string.Format("ActionsFor{0}", tenant.State.ToString()), "") @T(" | ")
}
@Html.ActionLink(T("Edit").ToString(), "Edit", new {name = tenant.Name, area = "Orchard.MultiTenancy"})
</div>

View File

@@ -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);
}
}

View File

@@ -16,7 +16,7 @@ namespace Orchard.Environment.Configuration {
public ShellSettings() {
_values = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
State = new TenantState("Invalid");
State = TenantState.Invalid;
Themes = new string[0];
}

View File

@@ -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;

View File

@@ -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
}
}

View File

@@ -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);

View File

@@ -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;
}