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); } } }