Skip to content

Commit 2320d08

Browse files
committed
Add unit tests for ICollectionView
1 parent 9a46adc commit 2320d08

1 file changed

Lines changed: 149 additions & 0 deletions

File tree

tests/CollectionExtensionsTests.cs

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
using Microsoft.UI.Xaml.Data;
12
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer;
24
using System.Collections;
35
using System.Collections.Generic;
46
using System.Collections.ObjectModel;
@@ -97,6 +99,46 @@ public void IndexOf_IList_EmptyList_ReturnsNegativeOne()
9799
Assert.AreEqual(-1, list.IndexOf("a"));
98100
}
99101

102+
[UITestMethod]
103+
public void IndexOf_ICollectionView_FindsItemAtCorrectIndex()
104+
{
105+
var list = new List<string> { "a", "b", "c" };
106+
var collectionView = new CollectionViewSource { Source = list }.View;
107+
Assert.AreEqual(1, collectionView.IndexOf("b"));
108+
}
109+
110+
[UITestMethod]
111+
public void IndexOf_ICollectionView_ReturnsNegativeOneWhenNotFound()
112+
{
113+
var list = new List<string> { "a", "b", "c" };
114+
var collectionView = new CollectionViewSource { Source = list }.View;
115+
Assert.AreEqual(-1, collectionView.IndexOf("d"));
116+
}
117+
118+
[UITestMethod]
119+
public void IndexOf_ICollectionView_FindsNullItem()
120+
{
121+
var list = new List<string?> { "a", null, "c" };
122+
var collectionView = new CollectionViewSource { Source = list }.View;
123+
Assert.AreEqual(1, collectionView.IndexOf(null));
124+
}
125+
126+
[UITestMethod]
127+
public void IndexOf_ICollectionView_ReturnsFirstOccurrence()
128+
{
129+
var list = new List<int> { 1, 2, 3, 2, 4 };
130+
var collectionView = new CollectionViewSource { Source = list }.View;
131+
Assert.AreEqual(1, collectionView.IndexOf(2));
132+
}
133+
134+
[UITestMethod]
135+
public void IndexOf_ICollectionView_EmptyList_ReturnsNegativeOne()
136+
{
137+
var list = new List<string>();
138+
var collectionView = new CollectionViewSource { Source = list }.View;
139+
Assert.AreEqual(-1, collectionView.IndexOf("a"));
140+
}
141+
100142
[TestMethod]
101143
public void IndexOf_ArrayList_FindsItemAtCorrectIndex()
102144
{
@@ -151,6 +193,14 @@ public void IsReadOnly_ReadOnlyCollection_ReturnsTrue()
151193
Assert.IsTrue(readOnly.IsReadOnly());
152194
}
153195

196+
[UITestMethod]
197+
public void IsReadOnly_ICollectionView_ReturnsFalse()
198+
{
199+
var list = new List<int> { 1, 2, 3 };
200+
var collectionView = new CollectionViewSource { Source = list }.View;
201+
Assert.IsFalse(collectionView.IsReadOnly());
202+
}
203+
154204
[TestMethod]
155205
public void IsReadOnly_Array_ReturnsFalse()
156206
{
@@ -199,6 +249,24 @@ public void Add_IList_AddsNullItem()
199249
CollectionAssert.AreEqual(new[] { "a", "b", null }, list);
200250
}
201251

252+
[UITestMethod]
253+
public void Add_ICollectionView_AddsItem()
254+
{
255+
var list = new List<string> { "a", "b" };
256+
var collectionView = new CollectionViewSource { Source = list }.View;
257+
collectionView.Add("c");
258+
CollectionAssert.AreEqual(new[] { "a", "b", "c" }, list);
259+
}
260+
261+
[UITestMethod]
262+
public void Add_ICollectionView_AddsNullItem()
263+
{
264+
var list = new List<string?> { "a", "b" };
265+
var collectionView = new CollectionViewSource { Source = list }.View;
266+
collectionView.Add(null);
267+
CollectionAssert.AreEqual(new[] { "a", "b", null }, list);
268+
}
269+
202270
[TestMethod]
203271
public void Add_ArrayList_AddsItem()
204272
{
@@ -267,6 +335,42 @@ public void Insert_IList_InsertsNull()
267335
CollectionAssert.AreEqual(new[] { "a", null, "b" }, list);
268336
}
269337

338+
[UITestMethod]
339+
public void Insert_ICollectionView_InsertsItemAtIndex()
340+
{
341+
var list = new List<string> { "a", "c" };
342+
var collectionView = new CollectionViewSource { Source = list }.View;
343+
collectionView.Insert(1, "b");
344+
CollectionAssert.AreEqual(new[] { "a", "b", "c" }, list);
345+
}
346+
347+
[UITestMethod]
348+
public void Insert_ICollectionView_InsertsAtBeginning()
349+
{
350+
var list = new List<int> { 2, 3 };
351+
var collectionView = new CollectionViewSource { Source = list }.View;
352+
collectionView.Insert(0, 1);
353+
CollectionAssert.AreEqual(new[] { 1, 2, 3 }, list);
354+
}
355+
356+
[UITestMethod]
357+
public void Insert_ICollectionView_InsertsAtEnd()
358+
{
359+
var list = new List<int> { 1, 2 };
360+
var collectionView = new CollectionViewSource { Source = list }.View;
361+
collectionView.Insert(2, 3);
362+
CollectionAssert.AreEqual(new[] { 1, 2, 3 }, list);
363+
}
364+
365+
[UITestMethod]
366+
public void Insert_ICollectionView_InsertsNull()
367+
{
368+
var list = new List<string?> { "a", "b" };
369+
var collectionView = new CollectionViewSource { Source = list }.View;
370+
collectionView.Insert(1, null);
371+
CollectionAssert.AreEqual(new[] { "a", null, "b" }, list);
372+
}
373+
270374
[TestMethod]
271375
public void Insert_ArrayList_InsertsItemAtIndex()
272376
{
@@ -335,6 +439,42 @@ public void Remove_IList_NonExistentItem_DoesNothing()
335439
CollectionAssert.AreEqual(new[] { "a", "b", "c" }, list);
336440
}
337441

442+
[UITestMethod]
443+
public void Remove_ICollectionView_RemovesItem()
444+
{
445+
var list = new List<string> { "a", "b", "c" };
446+
var collectionView = new CollectionViewSource { Source = list }.View;
447+
collectionView.Remove("b");
448+
CollectionAssert.AreEqual(new[] { "a", "c" }, list);
449+
}
450+
451+
[UITestMethod]
452+
public void Remove_ICollectionView_RemovesFirstOccurrence()
453+
{
454+
var list = new List<int> { 1, 2, 3, 2, 4 };
455+
var collectionView = new CollectionViewSource { Source = list }.View;
456+
collectionView.Remove(2);
457+
CollectionAssert.AreEqual(new[] { 1, 3, 2, 4 }, list);
458+
}
459+
460+
[UITestMethod]
461+
public void Remove_ICollectionView_RemovesNull()
462+
{
463+
var list = new List<string?> { "a", null, "c" };
464+
var collectionView = new CollectionViewSource { Source = list }.View;
465+
collectionView.Remove(null);
466+
CollectionAssert.AreEqual(new[] { "a", "c" }, list);
467+
}
468+
469+
[UITestMethod]
470+
public void Remove_ICollectionView_NonExistentItem_DoesNothing()
471+
{
472+
var list = new List<string> { "a", "b", "c" };
473+
var collectionView = new CollectionViewSource { Source = list }.View;
474+
collectionView.Remove("d");
475+
CollectionAssert.AreEqual(new[] { "a", "b", "c" }, list);
476+
}
477+
338478
[TestMethod]
339479
public void Remove_ArrayList_RemovesItem()
340480
{
@@ -379,6 +519,15 @@ public void Clear_IList_RemovesAllItems()
379519
Assert.AreEqual(0, list.Count);
380520
}
381521

522+
[UITestMethod]
523+
public void Clear_ICollectionView_RemovesAllItems()
524+
{
525+
var list = new List<int> { 1, 2, 3, 4, 5 };
526+
var collectionView = new CollectionViewSource { Source = list }.View;
527+
collectionView.Clear();
528+
Assert.AreEqual(0, list.Count);
529+
}
530+
382531
[TestMethod]
383532
public void Clear_ArrayList_RemovesAllItems()
384533
{

0 commit comments

Comments
 (0)