Skip to content

Commit a9c4ecb

Browse files
author
Ricardo Bossan (BEYONDSOFT CONSULTING INC) (from Dev Box)
committed
Adds some specific serialization test cases for the ToolStripMenuItemCodeDomSerializer class
Related #10773 Related #12883 - After the merging of #12883, [there was a request](#12883 (comment)) for some specific serialization test cases of the `ToolStripMenuItemCodeDomSerializer` class. - Adds some specific serialization test cases for the `ToolStripMenuItemCodeDomSerializer` class. - None - Minimal - Unit tests - 10.0.100-preview.3.25167.3
1 parent 93985d0 commit a9c4ecb

File tree

1 file changed

+78
-1
lines changed

1 file changed

+78
-1
lines changed

src/System.Windows.Forms.Design/tests/UnitTests/System/Windows/Forms/Design/ToolStripMenuItemCodeDomSerializerTests.cs

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
// Licensed to the .NET Foundation under one or more agreements.
1+
// Licensed to the .NET Foundation under one or more agreements.
22
// The .NET Foundation licenses this file to you under the MIT license.
33

44
using Moq;
55
using System.ComponentModel;
66
using System.ComponentModel.Design.Serialization;
7+
using System.Drawing;
78

89
namespace System.Windows.Forms.Design.Tests;
910

@@ -73,4 +74,80 @@ public void Serialize_CallsBaseSerializerForNonDummyItem()
7374
result.Should().NotBeNull();
7475
_mockBaseSerializer.Verify(s => s.Serialize(_mockManager.Object, nonDummyItem), Times.Once);
7576
}
77+
78+
[Fact]
79+
public void Serialize_SerializesDropDownItemsCorrectly()
80+
{
81+
_mockManager.Setup(m => m.GetSerializer(typeof(ToolStripMenuItem), typeof(CodeDomSerializer)))
82+
.Returns(_mockBaseSerializer.Object);
83+
84+
ToolStripMenuItem parentItem = new() { Text = "Edit" };
85+
ToolStripMenuItem childItem = new() { Text = "Undo" };
86+
parentItem.DropDownItems.Add(childItem);
87+
88+
_mockBaseSerializer.Setup(s => s.Serialize(_mockManager.Object, parentItem))
89+
.Returns(new { parentItem.Text, DropDownItems = new[] { new { childItem.Text } } });
90+
91+
object? result = _serializer.Serialize(_mockManager.Object, parentItem);
92+
93+
result.Should().NotBeNull();
94+
result.Should().BeEquivalentTo(new { Text = "Edit", DropDownItems = new[] { new { Text = "Undo" } } });
95+
_mockBaseSerializer.Verify(s => s.Serialize(_mockManager.Object, parentItem), Times.Once);
96+
}
97+
98+
[Fact]
99+
public void Serialize_SerializesEnabledPropertyCorrectly()
100+
{
101+
_mockManager.Setup(m => m.GetSerializer(typeof(ToolStripMenuItem), typeof(CodeDomSerializer)))
102+
.Returns(_mockBaseSerializer.Object);
103+
104+
ToolStripMenuItem item = new() { Enabled = false };
105+
_mockBaseSerializer.Setup(s => s.Serialize(_mockManager.Object, item))
106+
.Returns(new { item.Enabled });
107+
108+
object? result = _serializer.Serialize(_mockManager.Object, item);
109+
110+
result.Should().NotBeNull();
111+
result.Should().BeEquivalentTo(new { Enabled = false });
112+
_mockBaseSerializer.Verify(s => s.Serialize(_mockManager.Object, item), Times.Once);
113+
}
114+
115+
[Fact]
116+
public void Serialize_SerializesCheckedAndTextCorrectly()
117+
{
118+
_mockManager.Setup(m => m.GetSerializer(typeof(ToolStripMenuItem), typeof(CodeDomSerializer)))
119+
.Returns(_mockBaseSerializer.Object);
120+
121+
ToolStripMenuItem parentItem = new() { Text = "File", Checked = true };
122+
ToolStripMenuItem childItem = new() { Text = "New", Checked = false };
123+
parentItem.DropDownItems.Add(childItem);
124+
125+
_mockBaseSerializer.Setup(s => s.Serialize(_mockManager.Object, parentItem))
126+
.Returns(new { parentItem.Text, parentItem.Checked, DropDownItems = new[] { new { childItem.Text, childItem.Checked } } });
127+
128+
object? result = _serializer.Serialize(_mockManager.Object, parentItem);
129+
130+
result.Should().NotBeNull();
131+
result.Should().BeEquivalentTo(new { Text = "File", Checked = true, DropDownItems = new[] { new { Text = "New", Checked = false } } });
132+
_mockBaseSerializer.Verify(s => s.Serialize(_mockManager.Object, parentItem), Times.Once);
133+
}
134+
135+
[Fact]
136+
public void Serialize_SerializesImagePropertyCorrectly()
137+
{
138+
_mockManager.Setup(m => m.GetSerializer(typeof(ToolStripMenuItem), typeof(CodeDomSerializer)))
139+
.Returns(_mockBaseSerializer.Object);
140+
141+
Image testImage = new Bitmap(1, 1);
142+
ToolStripMenuItem item = new() { Image = testImage };
143+
144+
_mockBaseSerializer.Setup(s => s.Serialize(_mockManager.Object, item))
145+
.Returns(new { item.Image });
146+
147+
object? result = _serializer.Serialize(_mockManager.Object, item);
148+
149+
result.Should().NotBeNull();
150+
result.Should().BeEquivalentTo(new { Image = testImage });
151+
_mockBaseSerializer.Verify(s => s.Serialize(_mockManager.Object, item), Times.Once);
152+
}
76153
}

0 commit comments

Comments
 (0)