using Dapr.Actors.Generators.Extensions; namespace Dapr.Actors.Generators.Test.Extensions { public class IEnumerableExtensionsTests { [Fact] public void IndexOf_WhenPredicateIsNull_ThrowsArgumentNullException() { // Arrange var source = new[] { 1, 2, 3, 4, 5 }; Func predicate = null!; // Act Action act = () => source.IndexOf(predicate); // Assert Assert.Throws(act); } [Theory] [InlineData(new int[] { }, 3, -1)] [InlineData(new[] { 1, 2, 3, 4, 5 }, 6, -1)] public void IndexOf_WhenItemDoesNotExist_ReturnsMinusOne(int[] source, int item, int expected) { // Arrange Func predicate = (x) => x == item; // Act var index = source.IndexOf(predicate); // Assert Assert.Equal(expected, index); } [Theory] [InlineData(new[] { 1, 2, 3, 4, 5 }, 3, 2)] [InlineData(new[] { 1, 2, 3, 4, 5 }, 1, 0)] [InlineData(new[] { 1, 2, 3, 4, 5 }, 5, 4)] public void IndexOf_WhenItemExists_ReturnsIndexOfItem(int[] source, int item, int expected) { // Arrange Func predicate = (x) => x == item; // Act var index = source.IndexOf(predicate); // Assert Assert.Equal(expected, index); } } }