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

86 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using AMWD.Common.Cli;
namespace AMWD.Common.Tests.Cli
{
[TestClass]
public class EnumerableWalkerTest
{
private List<string> _list;
[TestInitialize]
public void Initialize()
{
_list = ["one", "two", "three", "four"];
}
[TestMethod]
public void ShouldThrowExceptionOnNullReference()
{
// arrange
// act & assert
Assert.ThrowsExactly<ArgumentNullException>(() => new EnumerableWalker<string>(null));
}
[TestMethod]
public void ShouldReturnEnumerator()
{
// arrange
var walker = new EnumerableWalker<string>(_list);
// act
var enumerator = walker.GetEnumerator();
// assert
Assert.IsNotNull(enumerator);
}
[TestMethod]
public void ShouldReturnGenericEnumerator()
{
// arrange
var walker = new EnumerableWalker<string>(_list);
// act
var enumerator = ((IEnumerable<string>)walker).GetEnumerator();
// assert
Assert.IsNotNull(enumerator);
}
[TestMethod]
public void ShouldReturnItems()
{
// arrange
var walker = new EnumerableWalker<string>(_list);
_ = walker.GetEnumerator();
string[] items = new string[_list.Count];
// act
for (int i = 0; i < _list.Count; i++)
items[i] = walker.GetNext();
// assert
for (int i = 0; i < _list.Count; i++)
Assert.AreEqual(_list[i], items[i], $"Position {i} failed");
}
[TestMethod]
public void ShouldReturnDefaultWhenNothingLeft()
{
// arrange
var walker = new EnumerableWalker<string>([]);
_ = walker.GetEnumerator();
// act
string item = walker.GetNext();
// assert
Assert.AreEqual(default, item);
}
}
}