public void When_VariableDefinedInBaseEnvReferenceTwoVariables_Should_Return_ConcatOfBaseValueAndCurrentValue() { //arrange var currentEnvironment = "dev"; var fixture = new CakeContextFixture(currentEnvironment); //act var context = fixture.GetContext(); var referencedVariableName1 = "var1"; var baseReferencedValue1 = "default1"; var referencedVariableName2 = "var2"; var baseReferencedValue2 = "default2"; var currentReferencedValue = "development"; var variableName = "webSiteName"; context.ReleaseEnvironment("default") .AddVariable(referencedVariableName1, baseReferencedValue1) .AddVariable(referencedVariableName2, baseReferencedValue2) .AddVariable(variableName, x => x[referencedVariableName1] + " " + x[referencedVariableName2]); context.ReleaseEnvironment(currentEnvironment) .IsBasedOn("default") .AddVariable(referencedVariableName1, currentReferencedValue); //assert Assert.Equal(currentReferencedValue + " " + baseReferencedValue2, context.ReleaseVariable()[variableName]); }
When_VariableDefinedInBaseEnvReferenceOtherVariableOverridenInCurrentEnvironment_Should_ReturnValueFromCurrentEnvironment () { //arrange var currentEnvironment = "dev"; var fixture = new CakeContextFixture(currentEnvironment); //act var context = fixture.GetContext(); var referencedVariableName = "envName"; var baseReferencedValue = "default"; var currentReferencedValue = "development"; var variableName = "webSiteName"; context.ReleaseEnvironment("default") .AddVariable(referencedVariableName, baseReferencedValue) .AddVariable(variableName, x => x[referencedVariableName]); context.ReleaseEnvironment(currentEnvironment) .IsBasedOn("default") .AddVariable(referencedVariableName, currentReferencedValue); //assert Assert.Equal(currentReferencedValue, context.ReleaseVariable()[variableName]); }
public void When_VariableDefinedInCurrentEnvironment_Should_ReturnItsValue() { // arrange var currentEnvironment = "dev"; var fixture = new CakeContextFixture(currentEnvironment); //act var context = fixture.GetContext(); var variableName = "simpleVariable"; var variableValue = "simpleVariableValue"; context.ReleaseEnvironment(currentEnvironment) .AddVariable(variableName, variableValue); //assert Assert.Equal(variableValue, context.ReleaseVariable()[variableName]); }
public void When_VariableNotDefined_Should_ThrowAnException() { //arrange var currentEnvironment = "dev"; var fixture = new CakeContextFixture(currentEnvironment); //act var context = fixture.GetContext(); context.ReleaseEnvironment("default"); context.ReleaseEnvironment(currentEnvironment); var variableName = "testVariable"; var exception = Record.Exception(() => context.ReleaseVariable()[variableName]); Assert.IsType(typeof(KeyNotFoundException), exception); }
public void When_VariableReferencesOtherVariableInCurrentEnvironment_Should_ReturnOtherVariableValue() { // arrange var currentEnvironment = "dev"; var fixture = new CakeContextFixture(currentEnvironment); //act var context = fixture.GetContext(); var baseVariable = "referencedVariable"; var baseVariableValue = "defaultValue"; var childVariable = "functionVariable"; context.ReleaseEnvironment(currentEnvironment) .AddVariable(baseVariable, baseVariableValue) .AddVariable(childVariable, x => x[baseVariable]); //assert Assert.Equal(baseVariableValue, context.ReleaseVariable()[childVariable]); }
public void When_VariableDefinedOnlyInBaseEnvironment_Should_ReturnVariableValueFromTheBaseEnvironment() { //arrange var currentEnvironment = "dev"; var fixture = new CakeContextFixture(currentEnvironment); //act var context = fixture.GetContext(); var baseVariable = "baseVariable"; var baseVariableValue = "defaultValue"; context.ReleaseEnvironment("default") .AddVariable(baseVariable, baseVariableValue); context.ReleaseEnvironment(currentEnvironment) .IsBasedOn("default"); //assert Assert.Equal(baseVariableValue, context.ReleaseVariable()[baseVariable]); }
public void When_VariableDefinedInCurrentEnvironmentReferencesVariableInBaseEnv_Should_ReturnBaseVariableValue() { //arrange var currentEnvironment = "dev"; var fixture = new CakeContextFixture(currentEnvironment); //act var context = fixture.GetContext(); var baseVariable = "referencedVariable"; var baseVariableValue = "defaultValue"; context.ReleaseEnvironment("default") .AddVariable(baseVariable, baseVariableValue); var currentEnvVariable = "childVariable"; context.ReleaseEnvironment(currentEnvironment) .IsBasedOn("default") .AddVariable(currentEnvVariable, x => x[baseVariable]); //assert Assert.Equal(baseVariableValue, context.ReleaseVariable()[currentEnvVariable]); }