Example #1
0
        public void DoGetConfiguration()
        {
            Console.WriteLine("GET-CONFIGURATION");

            Console.WriteLine("Getting configs:");
            foreach (var cn in _config.ConfigurationNames)
            {
                Console.WriteLine($"  * Config [{cn}]");
                var bytes = _client.GetConfiguration(cn).Result?.Content;
                Console.WriteLine($"    Got config file with [{bytes.Length}] bytes");
            }
        }
        public void TestGetConfiguration()
        {
            var config = BuildConfig();

            using (var client = new DscPullClient(config))
            {
                client.RegisterDscAgent().Wait();

                var actionResult = client.GetDscAction(new[]
                {
                    new Model.ClientStatusItem
                    {
                        ConfigurationName = "TestConfig1",
                        ChecksumAlgorithm = "SHA-256",
                        Checksum          = "",
                    }
                }).Result;
                Assert.IsNotNull(actionResult, "Action result is not null");

                var resultArr = actionResult.ToArray();
                Assert.AreEqual(1, resultArr.Length, "Number of action results");
                Assert.AreEqual("TestConfig1", resultArr[0]?.ConfigurationName,
                                "Action result config name");
                Assert.AreEqual(Model.DscActionStatus.GetConfiguration, resultArr[0].Status,
                                "Action result status");

                var configResult = client.GetConfiguration(resultArr[0]?.ConfigurationName).Result;
                Assert.IsNotNull(configResult?.Content, "Configuration content not null");
                Assert.AreNotEqual(0, configResult.Content.Length, "Configuration content length > 0");
            }
        }
        public void TestGetConfiguration_Content()
        {
            // Get path and content of expected results
            var myPath   = typeof(ClassicPullServerProtocolCompatibilityTests).GetTypeInfo().Assembly.Location;
            var myDir    = Path.GetDirectoryName(myPath);
            var dscDir   = Path.Combine(myDir, "../../../../../../tools/ci/DSC");
            var mofPath  = Path.Combine(dscDir, "StaticTestConfig.mof");
            var csumPath = Path.Combine(dscDir, "StaticTestConfig.mof.checksum");
            var mofBody  = File.ReadAllText(mofPath);
            var csumBody = File.ReadAllText(csumPath);

            var config = BuildConfig(newAgentId: true);

            config.ConfigurationNames = new[] { "StaticTestConfig" };

            using (var client = new DscPullClient(config))
            {
                client.RegisterDscAgent().Wait();

                var actionResult = client.GetDscAction(new[]
                {
                    new Model.ClientStatusItem
                    {
                        ConfigurationName = "StaticTestConfig",
                        ChecksumAlgorithm = "SHA-256",
                        Checksum          = "",
                    }
                }).Result;
                Assert.IsNotNull(actionResult, "Action result is not null");

                var resultArr = actionResult.ToArray();
                Assert.AreEqual(1, resultArr.Length, "Number of action results");
                Assert.AreEqual("StaticTestConfig", resultArr[0]?.ConfigurationName,
                                "Action result config name");
                Assert.AreEqual(Model.DscActionStatus.GetConfiguration, resultArr[0].Status,
                                "Action result status");

                var configResult = client.GetConfiguration(resultArr[0]?.ConfigurationName).Result;
                Assert.IsNotNull(configResult?.Content, "Configuration content not null");
                Assert.AreNotEqual(0, configResult.Content.Length, "Configuration content length > 0");

                Assert.AreEqual(csumBody, configResult.Checksum, "Expected MOF config checksum");

                // The fixed content is expected to be in UTF-16 Little Endian (LE)
                var configBody = Encoding.Unicode.GetString(configResult.Content);

                // Skip the BOM
                configBody = configBody.Substring(1);

                Assert.AreEqual(mofBody, configBody, "Expected MOF config content");
            }
        }
Example #4
0
        public void TestGetConfiguration()
        {
            var configRoot = Path.Combine(Directory.GetCurrentDirectory(),
                                          "BasicPullHandlerRoot/Configuration");
            var mofPath  = Path.Combine(configRoot, "SHARED/StaticTestConfig.mof");
            var csumPath = Path.Combine(configRoot, "SHARED/FYI/StaticTestConfig.mof.checksum");
            var mofBody  = File.ReadAllBytes(mofPath);
            var csumBody = File.ReadAllText(csumPath);

            var fileResult = _defaultClient.GetConfiguration(_defaultConfig.ConfigurationNames.First()).Result;

            Assert.IsNotNull(fileResult?.Content, "File result is not missing or null");
            CollectionAssert.AreEqual(mofBody, fileResult.Content, "File result content");
            Assert.AreEqual(csumBody, fileResult.Checksum, "Expected config checksum");
        }