public void CanFormatElementSyntaxCorrectly()
        {
            //Arrange
            string xaml =
                @"<DialogHost>
  <Border>
    <Button>RUN</Button>
  </Border>
</DialogHost>";

            var formatter = new XamlFormatter {
                Indent = "  "
            };

            //Act
            var formatted = formatter.FormatXaml(xaml);

            //Assert
            Assert.AreEqual(@"<DialogHost>
  <Border>
    <Button>
      RUN
    </Button>
  </Border>
</DialogHost>".NormalizeLineEndings(), formatted.NormalizeLineEndings());
        }
        public void HandlesRemovingNamespaces()
        {
            //Arrange
            string xaml =
                @"<smtx:XamlDisplay Key=""list_3"" Style=""{StaticResource PopupXamlDisplay}"" Grid.Column=""2"" Grid.Row=""0"" xmlns:smtx=""clr-namespace:ShowMeTheXAML;assembly=ShowMeTheXAML"">
  <!-- and here's another -->
  <ItemsControl ItemsSource=""{Binding Items2}"" Grid.IsSharedSizeScope=""True"" xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"">
    <ItemsControl.ItemTemplate>
      <DataTemplate DataType=""{x:Type domain:SelectableViewModel}"">
        <Border x:Name=""Border"" Padding=""8"" BorderThickness=""0 0 0 1"" BorderBrush=""{DynamicResource MaterialDesignDivider}"" xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"">
          
        </Border>
      </DataTemplate>
    </ItemsControl.ItemTemplate>
  </ItemsControl>
</smtx:XamlDisplay>";

            var formatter = new XamlFormatter {
                Indent = "  "
            };

            //Act
            var formatted = formatter.FormatXaml(xaml);

            //Assert
            Assert.AreEqual(@"<!-- and here's another -->
<ItemsControl ItemsSource=""{Binding Items2}"" Grid.IsSharedSizeScope=""True"">
  <ItemsControl.ItemTemplate>
    <DataTemplate DataType=""{x:Type domain:SelectableViewModel}"">
      <Border x:Name=""Border"" Padding=""8"" BorderThickness=""0 0 0 1"" BorderBrush=""{DynamicResource MaterialDesignDivider}""></Border>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>".NormalizeLineEndings(), formatted.NormalizeLineEndings());
        }
        public void CanIgnoreElementSyntaxChildren()
        {
            //Arrange
            string xaml = @"
<StackPanel showMeTheXaml:XamlDisplay.Ignore=""This"" xmlns:showMeTheXaml=""clr-namespace:ShowMeTheXAML;assembly=ShowMeTheXAML"">
  <StackPanel.Resources>
    <Style TargetType=""Button"" />
  </StackPanel.Resources>
  <Button>
    <TextBlock Text=""Some Text"" />
  </Button>
  <Button />
</StackPanel>";

            var formatter = new XamlFormatter {
                Indent = "  "
            };

            //Act
            var formatted = formatter.FormatXaml(xaml);

            //Assert
            Assert.AreEqual(@"<Button>
  <TextBlock Text=""Some Text"" />
</Button>
<Button />".NormalizeLineEndings(), formatted.NormalizeLineEndings());
        }
        public void CanIgnoreTopLevelElement()
        {
            //Arrange
            string xaml = @"
<StackPanel showMeTheXaml:XamlDisplay.Ignore=""This"" xmlns:showMeTheXaml=""clr-namespace:ShowMeTheXAML;assembly=ShowMeTheXAML"">
  <Button />

  <Button />
</StackPanel>";

            var formatter = new XamlFormatter();

            //Act
            var formatted = formatter.FormatXaml(xaml);

            //Assert
            Assert.AreEqual("<Button />\r\n<Button />".NormalizeLineEndings(), formatted.NormalizeLineEndings());
        }
        public void CanRemoveXamlDisplayDeclaration()
        {
            //Arrange
            string xaml =
                @"<smtx:XamlDisplay Key=""list_2"" xmlns:smtx=""clr-namespace:ShowMeTheXAML;assembly=ShowMeTheXAML"">
  <!-- some comment -->
  <ItemsControl ItemsSource=""{Binding Items1}"" Grid.IsSharedSizeScope=""True"" Margin=""12 0 12 0"" xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"">
    
  </ItemsControl>
</smtx:XamlDisplay>";

            var formatter = new XamlFormatter {
                Indent = "  "
            };

            //Act
            var formatted = formatter.FormatXaml(xaml);

            //Assert
            Assert.AreEqual(@"<!-- some comment -->
<ItemsControl ItemsSource=""{Binding Items1}"" Grid.IsSharedSizeScope=""True"" Margin=""12 0 12 0""></ItemsControl>".NormalizeLineEndings(), formatted.NormalizeLineEndings());
        }