1
0
Files
common/UnitTests/Common/Cli/EnumerableWalkerTests.cs

91 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using AMWD.Common.Cli;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace UnitTests.Common.Cli
{
[TestClass]
public class EnumerableWalkerTests
{
private List<string> _list;
[TestInitialize]
public void Initialize()
{
_list = ["one", "two", "three", "four"];
}
[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void ShouldThrowExceptionOnNullReference()
{
// arrange
// act
_ = new EnumerableWalker<object>(null);
// assert - ArgumentNullException
Assert.Fail();
}
[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>(Array.Empty<string>());
_ = walker.GetEnumerator();
// act
string item = walker.GetNext();
// assert
Assert.AreEqual(default, item);
}
}
}