Skip to content

Commit 5416d51

Browse files
committed
added unit tests for TableViewColumnCollection
1 parent f28d663 commit 5416d51

File tree

1 file changed

+189
-0
lines changed

1 file changed

+189
-0
lines changed
Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
using Microsoft.UI.Xaml;
2+
using Microsoft.UI.Xaml.Controls;
3+
using Microsoft.VisualStudio.TestTools.UnitTesting;
4+
using Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer;
5+
using System;
6+
using System.Collections.Specialized;
7+
8+
namespace WinUI.TableView.Tests;
9+
10+
[TestClass]
11+
public class TableViewColumnsCollectionTests
12+
{
13+
[UITestMethod]
14+
public void Constructor_ShouldInitializeTableViewProperty()
15+
{
16+
var tableView = new TableView();
17+
var collection = new TableViewColumnsCollection(tableView);
18+
Assert.AreEqual(tableView, collection.TableView);
19+
}
20+
21+
[UITestMethod]
22+
public void Add_ShouldRaiseCollectionChangedEvent()
23+
{
24+
var tableView = new TableView();
25+
var collection = new TableViewColumnsCollection(tableView);
26+
var column = new TableViewTextColumn();
27+
28+
var eventRaised = false;
29+
collection.CollectionChanged += (s, e) => eventRaised = true;
30+
31+
collection.Add(column);
32+
33+
Assert.IsTrue(eventRaised);
34+
}
35+
36+
[UITestMethod]
37+
public void Remove_ShouldRaiseCollectionChangedEvent()
38+
{
39+
var tableView = new TableView();
40+
var collection = new TableViewColumnsCollection(tableView);
41+
var column = new TableViewTextColumn();
42+
43+
collection.Add(column);
44+
45+
var eventRaised = false;
46+
collection.CollectionChanged += (s, e) => eventRaised = true;
47+
48+
collection.Remove(column);
49+
50+
Assert.IsTrue(eventRaised);
51+
}
52+
53+
[UITestMethod]
54+
public void VisibleColumns_ShouldReturnOnlyVisibleColumns()
55+
{
56+
var tableView = new TableView();
57+
var collection = new TableViewColumnsCollection(tableView);
58+
59+
var visibleColumn = new TableViewTextColumn { Visibility = Visibility.Visible };
60+
var hiddenColumn = new TableViewTextColumn { Visibility = Visibility.Collapsed };
61+
62+
collection.Add(visibleColumn);
63+
collection.Add(hiddenColumn);
64+
65+
var visibleColumns = collection.VisibleColumns;
66+
67+
Assert.AreEqual(1, visibleColumns.Count);
68+
Assert.AreEqual(visibleColumn, visibleColumns[0]);
69+
}
70+
71+
[UITestMethod]
72+
public void HandleColumnPropertyChanged_ShouldRaiseColumnPropertyChangedEvent()
73+
{
74+
var tableView = new TableView();
75+
var collection = new TableViewColumnsCollection(tableView);
76+
var column = new TableViewTextColumn();
77+
78+
collection.Add(column);
79+
80+
var eventRaised = false;
81+
collection.ColumnPropertyChanged += (s, e) => eventRaised = true;
82+
83+
collection.HandleColumnPropertyChanged(column, "TestProperty");
84+
85+
Assert.IsTrue(eventRaised);
86+
}
87+
88+
[UITestMethod]
89+
public void HandleColumnPropertyChanged_ShouldNotRaiseEvent_ForInvalidColumn()
90+
{
91+
var tableView = new TableView();
92+
var collection = new TableViewColumnsCollection(tableView);
93+
var column = new TableViewTextColumn();
94+
95+
var eventRaised = false;
96+
collection.ColumnPropertyChanged += (s, e) => eventRaised = true;
97+
98+
collection.HandleColumnPropertyChanged(column, "TestProperty");
99+
100+
Assert.IsFalse(eventRaised);
101+
}
102+
103+
[UITestMethod]
104+
public void ResetCollection_ShouldRaiseCollectionChangedEvent()
105+
{
106+
var tableView = new TableView();
107+
var collection = new TableViewColumnsCollection(tableView);
108+
var column1 = new TableViewTextColumn();
109+
var column2 = new TableViewTextColumn();
110+
111+
collection.Add(column1);
112+
collection.Add(column2);
113+
114+
var eventRaised = false;
115+
collection.CollectionChanged += (s, e) =>
116+
{
117+
if (e.Action == NotifyCollectionChangedAction.Reset)
118+
{
119+
eventRaised = true;
120+
}
121+
};
122+
123+
collection.Clear();
124+
125+
Assert.IsTrue(eventRaised);
126+
}
127+
128+
129+
[UITestMethod]
130+
public void VisibleColumns_ShouldReturnColumnsInCorrectOrder()
131+
{
132+
var tableView = new TableView();
133+
var collection = new TableViewColumnsCollection(tableView);
134+
135+
var column1 = new TableViewTextColumn { Header = "column1", Visibility = Visibility.Visible, Order = 1 };
136+
var column2 = new TableViewTextColumn { Header = "column2", Visibility = Visibility.Visible, Order = 2 };
137+
var column3 = new TableViewTextColumn { Header = "column3", Visibility = Visibility.Visible, Order = 1 };
138+
139+
collection.Add(column1);
140+
collection.Add(column2);
141+
collection.Add(column3);
142+
143+
var visibleColumns = collection.VisibleColumns;
144+
145+
Assert.AreEqual(column1, visibleColumns[0]);
146+
Assert.AreEqual(column3, visibleColumns[1]);
147+
Assert.AreEqual(column2, visibleColumns[2]);
148+
}
149+
150+
[UITestMethod]
151+
public void AddDuplicateColumns_ShouldHandleCorrectly()
152+
{
153+
var tableView = new TableView();
154+
var collection = new TableViewColumnsCollection(tableView);
155+
var column = new TableViewTextColumn();
156+
157+
collection.Add(column);
158+
collection.Add(column);
159+
160+
Assert.AreEqual(2, collection.Count);
161+
}
162+
163+
[UITestMethod]
164+
public void ColumnVisibilityChange_ShouldUpdateVisibleColumns()
165+
{
166+
var tableView = new TableView();
167+
var collection = new TableViewColumnsCollection(tableView);
168+
169+
var column = new TableViewTextColumn { Visibility = Visibility.Visible };
170+
collection.Add(column);
171+
172+
Assert.AreEqual(1, collection.VisibleColumns.Count);
173+
174+
column.Visibility = Visibility.Collapsed;
175+
176+
Assert.AreEqual(0, collection.VisibleColumns.Count);
177+
}
178+
179+
[UITestMethod]
180+
public void Add_ShouldThrowException_ForInvalidObjectType()
181+
{
182+
var tableView = new TableView();
183+
var collection = new TableViewColumnsCollection(tableView);
184+
185+
var invalidObject = new TextBox();
186+
187+
Assert.ThrowsExactly<InvalidCastException>(() => collection.Add(invalidObject));
188+
}
189+
}

0 commit comments

Comments
 (0)