public void Invoke_MissingInputs_ReturnsExpectedMissingInputs( string text, ICollection <ArmTemplateParameter> inputParameters, ICollection <ArmTemplateVariable> inputVariables, ICollection <MissingInput> expectedMissingInputs ) { var expression = new ArmTemplateExpression(text); var deployment = new MockArmDeployment() .MockInvoke("string", "value") .Object; var actual = expression.Invoke(deployment, ArmValueTypes.@string, inputParameters, inputVariables); Assert.IsType <List <MissingInput> >(actual); var missingInputs = actual as List <MissingInput>; Assert.Equal(expectedMissingInputs.Count, missingInputs.Count); Assert.All(expectedMissingInputs, e => { Assert.Contains(missingInputs, a => { return(a.Name == e.Name && a.InputType == e.InputType); }); }); }
public void Invoke_NullDeployment_ThrowsArgumentNullException() { var expression = new ArmTemplateExpression(@"[not(true)]"); var expectedOutputType = ArmValueTypes.@bool; Action act = () => { expression.Invoke(null, expectedOutputType, null, null); }; var ex = Record.Exception(act); Assert.IsType <ArgumentNullException>(ex); }
public void Invoke_NoVariableOrParameter_ReturnsExpectedOutput( string text, ArmValueTypes expectedOutputType, string outputValue, string expectedoutputString ) { var expression = new ArmTemplateExpression(text); var deployment = new MockArmDeployment() .MockInvoke(expectedOutputType.ToString(), outputValue) .Object; var actual = expression.Invoke(deployment, expectedOutputType, null, null); Assert.Equal(expectedoutputString, actual.ToString()); }
public void Invoke_WithParameters_ReturnsExpectedOutput( string text, ICollection <ArmTemplateParameter> inputParameters, ICollection <ArmTemplateVariable> inputVariables, ArmValueTypes expectedOutputType, string outputValue, string expectedOutputString ) { var expression = new ArmTemplateExpression(text); var deployment = new MockArmDeployment() .MockInvoke(expectedOutputType.ToString(), outputValue) .Object; var actual = expression.Invoke(deployment, expectedOutputType, inputParameters, inputVariables); Assert.Equal(expectedOutputString, actual.ToString()); }
static void Main(string[] args) { var container = ContainerConfig.Configure(); using (var scope = container.BeginLifetimeScope()) { var app = scope.Resolve <IApplication>(); app.Init(); var expression = new ArmTemplateExpression(@"[parameters('obj').Property1]"); var deployment = new ArmDeployment(app.Client, app.AzureRegion); var inputVariables = new List <ArmTemplateVariable>() { new ArmTemplateVariable("num2", 7) }; var inputParams = new List <ArmTemplateParameter>() { new ArmTemplateParameter("obj", new { Property1 = "customString", Property2 = true }, "object") }; try { var result = expression.Invoke(deployment, ArmValueTypes.@string, inputParams, inputVariables); if (result is List <MissingInput> ) { var missingInputs = result as List <MissingInput>; missingInputs.ForEach(m => WriteLine($"Please enter a value for {m.InputType} \"{m.Name}\".")); } else { Console.WriteLine(result); } } catch (Exception ex) { WriteLine(ex.Message); } } Console.ReadKey(); }