public void TestSaveRestore([Values(true, false)] bool alwaysOnTop,
                                    [Values(true, false)] bool isLeftSidePanelCollapsed)
        {
            using (var stream = new MemoryStream())
            {
                using (var writer = XmlWriter.Create(stream))
                {
                    writer.WriteStartElement("Test");

                    var settings = new MainWindowSettings();
                    settings.SelectedMainPanel = "Bar";
                    settings.SelectedSidePanel = "Foo";
                    settings.Height            = 10;
                    settings.Width             = 100;
                    settings.Left                   = 42;
                    settings.Top                    = 101;
                    settings.AlwaysOnTop            = alwaysOnTop;
                    settings.IsLeftSidePanelVisible = isLeftSidePanelCollapsed;
                    settings.Save(writer);
                }
                stream.Position = 0;
                //Console.WriteLine(Encoding.UTF8.GetString(stream.ToArray()));

                using (var reader = XmlReader.Create(stream))
                {
                    reader.MoveToContent();

                    var settings = new MainWindowSettings();
                    settings.Restore(reader);
                    settings.SelectedMainPanel.Should().Be("Bar");
                    settings.SelectedSidePanel.Should().Be("Foo");
                    settings.Height.Should().Be(10);
                    settings.Width.Should().Be(100);
                    settings.Left.Should().Be(42);
                    settings.Top.Should().Be(101);
                    settings.AlwaysOnTop.Should().Be(alwaysOnTop);
                    settings.IsLeftSidePanelVisible.Should().Be(isLeftSidePanelCollapsed);
                }
            }
        }