public void WmiQueryReturnsSingleResultIfSinglePublishedInstance()
        {
            LoggingExceptionHandlerSetting setting = new LoggingExceptionHandlerSetting(null,
                                                                                        "name",
                                                                                        1,
                                                                                        typeof(String).AssemblyQualifiedName,
                                                                                        "LogCategory",
                                                                                        1,
                                                                                        "Severity",
                                                                                        "Title");

            setting.ApplicationName = "app";
            setting.SectionName     = InstrumentationConfigurationSection.SectionName;
            setting.Publish();
            using (ManagementObjectCollection.ManagementObjectEnumerator resultEnumerator
                       = new ManagementObjectSearcher("root\\enterpriselibrary", "SELECT * FROM LoggingExceptionHandlerSetting")
                         .Get().GetEnumerator())
            {
                Assert.IsTrue(resultEnumerator.MoveNext());
                Assert.AreEqual("name", resultEnumerator.Current.Properties["Name"].Value);
                Assert.AreEqual("LogCategory", resultEnumerator.Current.Properties["LogCategory"].Value);
                Assert.AreEqual("LoggingExceptionHandlerSetting", resultEnumerator.Current.SystemProperties["__CLASS"].Value);
                Assert.IsFalse(resultEnumerator.MoveNext());
            }
        }
        public void CanBindObject()
        {
            LoggingExceptionHandlerSetting setting
                = new LoggingExceptionHandlerSetting(null,
                                                     "name",
                                                     1,
                                                     typeof(String).AssemblyQualifiedName,
                                                     "LogCategory",
                                                     1,
                                                     "Severity",
                                                     "Title");

            setting.ApplicationName = "app";
            setting.SectionName     = InstrumentationConfigurationSection.SectionName;
            setting.Policy          = "policy";
            setting.ExceptionType   = typeof(Exception).AssemblyQualifiedName;
            setting.Publish();
            using (ManagementObjectCollection.ManagementObjectEnumerator resultEnumerator
                       = new ManagementObjectSearcher("root\\enterpriselibrary", "SELECT * FROM LoggingExceptionHandlerSetting")
                         .Get().GetEnumerator())
            {
                Assert.IsTrue(resultEnumerator.MoveNext());
                Assert.AreEqual("LoggingExceptionHandlerSetting", resultEnumerator.Current.SystemProperties["__CLASS"].Value);
                ManagementObject managementObject = resultEnumerator.Current as ManagementObject;
                Assert.IsNotNull(managementObject);
                managementObject.Put();
            }
        }
        public void SavesChangesToConfigurationObject()
        {
            LoggingExceptionHandlerData sourceElement = new LoggingExceptionHandlerData("name",
                                                                                        "LogCategory",
                                                                                        0,
                                                                                        System.Diagnostics.TraceEventType.Error,
                                                                                        "Title",
                                                                                        typeof(String).AssemblyQualifiedName,
                                                                                        0);
            List <ConfigurationSetting> settings = new List <ConfigurationSetting>(1);

            LoggingExceptionHandlerDataWmiMapper.GenerateWmiObjects(sourceElement, settings);
            Assert.AreEqual(1, settings.Count);
            LoggingExceptionHandlerSetting setting = settings[0] as LoggingExceptionHandlerSetting;

            Assert.IsNotNull(setting);
            setting.Title         = "Changed";
            setting.FormatterType = typeof(bool).AssemblyQualifiedName;
            setting.Commit();
            Assert.AreEqual(setting.FormatterType, sourceElement.FormatterTypeName);
            Assert.AreEqual(setting.Title, sourceElement.Title);
        }