Exemple #1
0
        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);
                });
            });
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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());
        }
Exemple #4
0
        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());
        }
Exemple #5
0
        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();
        }