Skip to content

Commit ad9d413

Browse files
authored
Add unit test for NumericUpDownAccelerationCollection file (#13746)
1 parent a821c1c commit ad9d413

File tree

1 file changed

+160
-0
lines changed

1 file changed

+160
-0
lines changed
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
namespace System.Windows.Forms.Tests;
5+
6+
public class NumericUpDownAccelerationCollectionTests
7+
{
8+
[Fact]
9+
public void Clear_RemovesAllItems()
10+
{
11+
NumericUpDownAcceleration item1 = new(1, 1.0m);
12+
NumericUpDownAcceleration item2 = new(2, 2.0m);
13+
NumericUpDownAccelerationCollection collection = new();
14+
collection.Add(item1);
15+
collection.Add(item2);
16+
17+
collection.Count.Should().Be(2);
18+
19+
collection.Clear();
20+
21+
collection.Count.Should().Be(0);
22+
collection.Contains(item1).Should().BeFalse();
23+
collection.Contains(item2).Should().BeFalse();
24+
}
25+
26+
[Fact]
27+
public void Contains_ReturnsTrue_IfItemExists()
28+
{
29+
NumericUpDownAcceleration item = new(2, 1.5m);
30+
NumericUpDownAccelerationCollection collection = new();
31+
collection.Add(item);
32+
33+
collection.Contains(item).Should().BeTrue();
34+
}
35+
36+
[Fact]
37+
public void Contains_ReturnsFalse_IfItemDoesNotExist()
38+
{
39+
NumericUpDownAcceleration item = new(2, 1.5m);
40+
NumericUpDownAccelerationCollection collection = new();
41+
42+
collection.Contains(item).Should().BeFalse();
43+
}
44+
45+
[Fact]
46+
public void CopyTo_CopiesItemsToArray()
47+
{
48+
NumericUpDownAcceleration item1 = new(1, 1.0m);
49+
NumericUpDownAcceleration item2 = new(2, 2.0m);
50+
NumericUpDownAccelerationCollection collection = new();
51+
collection.Add(item1);
52+
collection.Add(item2);
53+
NumericUpDownAcceleration[] array = new NumericUpDownAcceleration[2];
54+
55+
collection.CopyTo(array, 0);
56+
57+
array[0].Should().Be(item1);
58+
array[1].Should().Be(item2);
59+
}
60+
61+
[Fact]
62+
public void CopyTo_ThrowsArgumentException_IfArrayTooSmall()
63+
{
64+
NumericUpDownAcceleration item1 = new(1, 1.0m);
65+
NumericUpDownAcceleration item2 = new(2, 2.0m);
66+
NumericUpDownAccelerationCollection collection = new();
67+
collection.Add(item1);
68+
collection.Add(item2);
69+
NumericUpDownAcceleration[] array = new NumericUpDownAcceleration[1];
70+
71+
collection.Invoking(c => c.CopyTo(array, 0))
72+
.Should().Throw<ArgumentException>();
73+
}
74+
75+
[Fact]
76+
public void CopyTo_ThrowsArgumentNullException_IfArrayIsNull()
77+
{
78+
NumericUpDownAccelerationCollection collection = new();
79+
collection.Add(new NumericUpDownAcceleration(1, 1.0m));
80+
81+
collection.Invoking(c => c.CopyTo(null!, 0))
82+
.Should().Throw<ArgumentNullException>();
83+
}
84+
85+
[Fact]
86+
public void IsReadOnly_AlwaysReturnsFalse()
87+
{
88+
NumericUpDownAccelerationCollection collection = new();
89+
collection.IsReadOnly.Should().BeFalse();
90+
}
91+
92+
[Fact]
93+
public void Remove_RemovesItem_IfExists()
94+
{
95+
NumericUpDownAcceleration item1 = new(1, 1.0m);
96+
NumericUpDownAcceleration item2 = new(2, 2.0m);
97+
NumericUpDownAccelerationCollection collection = new();
98+
collection.Add(item1);
99+
collection.Add(item2);
100+
101+
bool removed = collection.Remove(item1);
102+
103+
removed.Should().BeTrue();
104+
collection.Count.Should().Be(1);
105+
collection.Contains(item1).Should().BeFalse();
106+
collection.Contains(item2).Should().BeTrue();
107+
}
108+
109+
[Fact]
110+
public void Remove_ReturnsFalse_IfItemNotInCollection()
111+
{
112+
NumericUpDownAcceleration item1 = new(1, 1.0m);
113+
NumericUpDownAcceleration item2 = new(2, 2.0m);
114+
NumericUpDownAccelerationCollection collection = new();
115+
collection.Add(item1);
116+
117+
bool removed = collection.Remove(item2);
118+
119+
removed.Should().BeFalse();
120+
collection.Count.Should().Be(1);
121+
collection.Contains(item1).Should().BeTrue();
122+
}
123+
124+
[Fact]
125+
public void AddRange_AddsAllItems_AndKeepsSorted()
126+
{
127+
NumericUpDownAcceleration item1 = new(5, 1.0m);
128+
NumericUpDownAcceleration item2 = new(2, 2.0m);
129+
NumericUpDownAcceleration item3 = new(3, 3.0m);
130+
NumericUpDownAccelerationCollection collection = new();
131+
132+
collection.AddRange(item1, item2, item3);
133+
134+
collection.Count.Should().Be(3);
135+
collection[0].Should().Be(item2);
136+
collection[1].Should().Be(item3);
137+
collection[2].Should().Be(item1);
138+
}
139+
140+
[Fact]
141+
public void AddRange_ThrowsArgumentNullException_IfArrayIsNull()
142+
{
143+
NumericUpDownAccelerationCollection collection = new();
144+
145+
collection.Invoking(c => c.AddRange(null!))
146+
.Should().Throw<ArgumentNullException>();
147+
}
148+
149+
[Fact]
150+
public void AddRange_ThrowsArgumentNullException_IfAnyElementIsNull()
151+
{
152+
NumericUpDownAcceleration item1 = new(1, 1.0m);
153+
NumericUpDownAcceleration? item2 = null;
154+
NumericUpDownAcceleration item3 = new(2, 2.0m);
155+
NumericUpDownAccelerationCollection collection = new();
156+
157+
collection.Invoking(c => c.AddRange(item1, item2!, item3))
158+
.Should().Throw<ArgumentNullException>();
159+
}
160+
}

0 commit comments

Comments
 (0)