1
0
Files
common/UnitTests/Common/Extensions/CollectionExtensionsTests.cs

144 lines
2.8 KiB
C#

using System;
using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace UnitTests.Common.Extensions
{
[TestClass]
public class CollectionExtensionsTests
{
[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; }
}
}
}