public void SavesChangesToConfigurationObject()
        {
            OracleConnectionData sourceElement = new OracleConnectionData();

            sourceElement.Packages.Add(new OraclePackageData("foo", "bar"));
            sourceElement.Packages.Add(new OraclePackageData("foo2", "bar2"));
            List <ConfigurationSetting> settings = new List <ConfigurationSetting>(1);

            OracleConnectionSettingsWmiMapper.GenerateOracleConnectionSettingWmiObjects(sourceElement, settings);
            Assert.AreEqual(1, settings.Count);
            OracleConnectionSetting setting = settings[0] as OracleConnectionSetting;

            Assert.IsNotNull(setting);
            setting.Packages = new string[] { KeyValuePairEncoder.EncodeKeyValuePair("foo3", "bar3") };
            setting.Commit();
            Assert.AreEqual(1, sourceElement.Packages.Count);
            Assert.AreEqual("bar3", sourceElement.Packages.Get("foo3").Prefix);
        }
        public void CanBindObject()
        {
            string[] packages = new string[] { "pkg1", "pkg2" };
            OracleConnectionSetting setting = new OracleConnectionSetting(null, "name", packages);

            setting.ApplicationName = "app";
            setting.SectionName     = InstrumentationConfigurationSection.SectionName;
            setting.Publish();
            using (System.Management.ManagementObjectCollection.ManagementObjectEnumerator resultEnumerator
                       = new ManagementObjectSearcher("root\\enterpriselibrary", "SELECT * FROM OracleConnectionSetting")
                         .Get().GetEnumerator())
            {
                Assert.IsTrue(resultEnumerator.MoveNext());
                Assert.AreEqual("OracleConnectionSetting", resultEnumerator.Current.SystemProperties["__CLASS"].Value);
                ManagementObject managementObject = resultEnumerator.Current as ManagementObject;
                Assert.IsNotNull(managementObject);
                managementObject.Put();
            }
        }
        public void WmiQueryReturnsSingleResultIfSinglePublishedInstance()
        {
            string[] packages = new string[] { "pkg1", "pkg2" };
            OracleConnectionSetting setting = new OracleConnectionSetting(null, "name", packages);

            setting.ApplicationName = "app";
            setting.SectionName     = InstrumentationConfigurationSection.SectionName;
            setting.Publish();
            using (System.Management.ManagementObjectCollection.ManagementObjectEnumerator resultEnumerator
                       = new ManagementObjectSearcher("root\\enterpriselibrary", "SELECT * FROM OracleConnectionSetting")
                         .Get().GetEnumerator())
            {
                Assert.IsTrue(resultEnumerator.MoveNext());
                Assert.AreEqual("name", resultEnumerator.Current.Properties["Name"].Value);
                Assert.ReferenceEquals(packages, resultEnumerator.Current.Properties["Packages"].Value);
                Assert.AreEqual("OracleConnectionSetting", resultEnumerator.Current.SystemProperties["__CLASS"].Value);
                Assert.IsFalse(resultEnumerator.MoveNext());
            }
        }