public void ProcessSucceedsForUndo()
 {
     using (var scope = new TemporaryFileScope("web-modified.config"))
     {
         var result = new ConfigurationSpecificationProcessor(
             new ConfigurationSpecification(
                 new FileInfo(scope.FilePath),
                 new[] {
             new ElementDeletionCommand("/configuration/system.net"),
             new ElementDeletionCommand("/configuration/system.net/settings"),
             new ElementDeletionCommand("/configuration/system.web"),
             new ElementDeletionCommand("/configuration/system.web/authorization")
         },
                 true))
                      .Process();
         result.ModifiedConfiguration.SelectNodes("/configuration/*").Should().BeEmpty();
     }
 }
 public void ProcessSucceeds()
 {
     using (var scope = new TemporaryFileScope("web-original.config"))
     {
         var result = new ConfigurationSpecificationProcessor(
             new ConfigurationSpecification(
                 new FileInfo(scope.FilePath),
                 new[] {
             new ElementInsertionCommand(
                 "/configuration",
                 new ElementSpecification(
                     "system.net",
                     string.Empty,
                     new AttributeSpecification[0],
                     "system.net"))
         },
                 false))
                      .Process();
         result.ModifiedConfiguration.SelectSingleNode("/configuration/system.net").Should().NotBeNull();
     }
 }
        public static ConfigurationSpecificationProcessor.Result Apply(this ConfigurationSpecification specification)
        {
            var processor = new ConfigurationSpecificationProcessor(specification);

            return(processor.Process());
        }