Esempio n. 1
0
        public static DeviceTwinTestCase FromJson(ILogger logger, JObject testCaseJson)
        {
            logger.Log(LoggingLevel.Information, "        Parsing test case...");

            string name;

            if (!JsonHelpers.TryGetString(testCaseJson, Constants.TCJsonName, out name))
            {
                ReportError(logger, "Missing " + Constants.TCJsonName);
                return(null);
            }

            string description;

            if (!JsonHelpers.TryGetString(testCaseJson, Constants.TCJsonDescription, out description))
            {
                ReportError(logger, "Missing " + Constants.TCJsonDescription);
                return(null);
            }

            JObject input;

            if (!JsonHelpers.TryGetObject(testCaseJson, Constants.TCJsonInput, out input))
            {
                ReportError(logger, "Missing " + Constants.TCJsonInput);
                return(null);
            }

            JObject output;

            if (!JsonHelpers.TryGetObject(testCaseJson, Constants.TCJsonOutput, out output))
            {
                ReportError(logger, "Missing " + Constants.TCJsonOutput);
                return(null);
            }

            JObject expectedPresentReportedState = null;

            if (JsonHelpers.TryGetObject(output, Constants.TCJsonOutputPresent, out expectedPresentReportedState))
            {
                expectedPresentReportedState = (JObject)expectedPresentReportedState.DeepClone();
            }

            JObject expectedAbsentReportedState = null;

            if (JsonHelpers.TryGetObject(output, Constants.TCJsonOutputAbsent, out expectedAbsentReportedState))
            {
                expectedAbsentReportedState = (JObject)expectedAbsentReportedState.DeepClone();
            }

            DeviceTwinTestCase testCase = new DeviceTwinTestCase();

            testCase._name         = name;
            testCase._description  = description;
            testCase._desiredState = input;
            testCase._expectedPresentReportedState = expectedPresentReportedState;
            testCase._expectedAbsentReportedState  = expectedAbsentReportedState;
            return(testCase);
        }
Esempio n. 2
0
        private static TestCase TestCaseFromJson(ILogger logger, JObject testCaseJson)
        {
            string type;

            if (!JsonHelpers.TryGetString(testCaseJson, Constants.TCJsonType, out type))
            {
                logger.Log(LoggingLevel.Error, "        Missing " + Constants.TCJsonType + " attribute.");
                return(null);
            }

            TestCase testCase = null;

            switch (type)
            {
            case Constants.TCJsonInteractionDeviceTwin:
                testCase = DeviceTwinTestCase.FromJson(logger, testCaseJson);
                break;

            case Constants.TCJsonInteractionDirectMethod:
                testCase = DirectMethodTestCase.FromJson(logger, testCaseJson);
                break;

            case Constants.TCJsonInteractionDotNetApi:
            {
                string dotNetApiName;
                if (JsonHelpers.TryGetString(testCaseJson, Constants.TCJsonDotNetApiName, out dotNetApiName))
                {
                    switch (dotNetApiName)
                    {
                    case Constants.TCJsonSetWindowsUpdateRingAsync:
                        testCase = SetWindowsUpdateRingAsyncTestCase.FromJson(logger, testCaseJson);
                        break;
                    }
                }
            }
            break;
            }

            return(testCase);
        }