mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Fixing specflow tests
--HG-- branch : 1.x
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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
|
||||
);
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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.
|
||||
|
@@ -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>
|
@@ -47,7 +47,7 @@ namespace Orchard.MultiTenancy.Commands {
|
||||
Name = tenantName,
|
||||
RequestUrlHost = Host,
|
||||
RequestUrlPrefix = UrlPrefix,
|
||||
State = new TenantState("Uninitialized")
|
||||
State = TenantState.Uninitialized
|
||||
});
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -25,11 +25,8 @@ namespace Orchard.MultiTenancy.Services {
|
||||
}
|
||||
|
||||
public void UpdateTenant(ShellSettings settings) {
|
||||
var tenant = GetTenants().FirstOrDefault(ss => ss.Name == settings.Name);
|
||||
if ( tenant != null ) {
|
||||
_shellSettingsManager.SaveSettings(settings);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Loads only installed themes
|
||||
|
@@ -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 {
|
||||
|
@@ -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>
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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];
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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 {
|
||||
public enum TenantState {
|
||||
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";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user