1
0
Files
common/test/AMWD.Common.Tests/Extensions/CollectionExtensionsTest.cs
2025-11-13 20:30:44 +01:00

133 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
namespace AMWD.Common.Tests.Extensions
{
[TestClass]
public class CollectionExtensionsTest
{
[TestMethod]
public void ShouldAddItem()
{
// Arrange
var item = new TestItem { Number = 10, Text = "Ten" };
ICollection<TestItem> list =
[
new() {
Number = 1,
Text = "One"
}
];
// Act
list.AddIfNotNull(item);
// Assert
Assert.HasCount(2, list);
}
[TestMethod]
public void ShouldNotAddItem()
{
// Arrange
TestItem item = null;
ICollection<TestItem> list =
[
new() {
Number = 1,
Text = "One"
}
];
// Act
list.AddIfNotNull(item);
// Assert
Assert.HasCount(1, list);
}
[TestMethod]
public void ShouldThrowArgumentNullExceptionForNullList()
{
// Arrange
var item = new TestItem { Number = 10, Text = "Ten" };
ICollection<TestItem> list = null;
// Act & Assert
Assert.ThrowsExactly<ArgumentNullException>(() => list.AddIfNotNull(item));
}
[TestMethod]
public void ShouldAddRange()
{
// Arrange
ICollection<TestItem> items =
[
new() { Number = 10, Text = "Ten" },
new() { Number = 11, Text = "Eleven" },
];
ICollection<TestItem> list =
[
new() { Number = 1, Text = "One" },
// Act
.. items,
];
// Assert
Assert.HasCount(3, list);
}
[TestMethod]
public void ShouldThrowArgumentNullExceptionForList()
{
// Arrange
ICollection<TestItem> items =
[
new() { Number = 10, Text = "Ten" },
new() { Number = 11, Text = "Eleven" },
];
ICollection<TestItem> list = null;
// Act & Assert
Assert.ThrowsExactly<ArgumentNullException>(() => list.AddRange(items));
}
[TestMethod]
public void ShouldThrowArgumentNullExceptionForItems()
{
// Arrange
ICollection<TestItem> items = null;
ICollection<TestItem> list =
[
new() { Number = 1, Text = "One" },
];
// Act & Assert
Assert.ThrowsExactly<ArgumentNullException>(() => list.AddRange(items));
}
[TestMethod]
public void ShouldNotAddRange()
{
// Arrange
ICollection<TestItem> list =
[
new() { Number = 1, Text = "One" },
];
// Act
list.AddRange(list);
// Assert
Assert.HasCount(1, list);
}
private class TestItem
{
public int Number { get; set; }
public string Text { get; set; }
}
}
}