143 lines
2.7 KiB
C#
143 lines
2.7 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 List<TestItem>
|
|
{
|
|
new() {
|
|
Number = 1,
|
|
Text = "One"
|
|
}
|
|
};
|
|
|
|
// Act
|
|
list.AddIfNotNull(item);
|
|
|
|
// Assert
|
|
Assert.AreEqual(2, list.Count);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ShouldNotAddItem()
|
|
{
|
|
// Arrange
|
|
TestItem item = null;
|
|
ICollection<TestItem> list = new List<TestItem>
|
|
{
|
|
new() {
|
|
Number = 1,
|
|
Text = "One"
|
|
}
|
|
};
|
|
|
|
// Act
|
|
list.AddIfNotNull(item);
|
|
|
|
// Assert
|
|
Assert.AreEqual(1, list.Count);
|
|
}
|
|
|
|
[TestMethod]
|
|
[ExpectedException(typeof(ArgumentNullException))]
|
|
public void ShouldThrowArgumentNullExceptionForNullList()
|
|
{
|
|
// Arrange
|
|
var item = new TestItem { Number = 10, Text = "Ten" };
|
|
ICollection<TestItem> list = null;
|
|
|
|
// Act
|
|
list.AddIfNotNull(item);
|
|
|
|
// Assert - ArgumentNullException
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ShouldAddRange()
|
|
{
|
|
// Arrange
|
|
ICollection<TestItem> items = new List<TestItem>
|
|
{
|
|
new() { Number = 10, Text = "Ten" },
|
|
new() { Number = 11, Text = "Eleven" },
|
|
};
|
|
ICollection<TestItem> list = new List<TestItem>
|
|
{
|
|
new() { Number = 1, Text = "One" },
|
|
};
|
|
|
|
// Act
|
|
list.AddRange(items);
|
|
|
|
// Assert
|
|
Assert.AreEqual(3, list.Count);
|
|
}
|
|
|
|
[TestMethod]
|
|
[ExpectedException(typeof(ArgumentNullException))]
|
|
public void ShouldThrowArgumentNullExceptionForList()
|
|
{
|
|
// Arrange
|
|
ICollection<TestItem> items = new List<TestItem>
|
|
{
|
|
new() { Number = 10, Text = "Ten" },
|
|
new() { Number = 11, Text = "Eleven" },
|
|
};
|
|
ICollection<TestItem> list = null;
|
|
|
|
// Act
|
|
list.AddRange(items);
|
|
|
|
// Assert - ArgumentNullException
|
|
}
|
|
|
|
[TestMethod]
|
|
[ExpectedException(typeof(ArgumentNullException))]
|
|
public void ShouldThrowArgumentNullExceptionForItems()
|
|
{
|
|
// Arrange
|
|
ICollection<TestItem> items = null;
|
|
ICollection<TestItem> list = new List<TestItem>
|
|
{
|
|
new() { Number = 1, Text = "One" },
|
|
};
|
|
|
|
// Act
|
|
list.AddRange(items);
|
|
|
|
// Assert - ArgumentNullException
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ShouldNotAddRange()
|
|
{
|
|
// Arrange
|
|
ICollection<TestItem> list = new List<TestItem>
|
|
{
|
|
new() { Number = 1, Text = "One" },
|
|
};
|
|
|
|
// Act
|
|
list.AddRange(list);
|
|
|
|
// Assert
|
|
Assert.AreEqual(1, list.Count);
|
|
}
|
|
|
|
private class TestItem
|
|
{
|
|
public int Number { get; set; }
|
|
|
|
public string Text { get; set; }
|
|
}
|
|
}
|
|
}
|