CK.Core.Tests.EnumerableExtensionTests.test_IndexOf_extension_method C# (CSharp) Method

test_IndexOf_extension_method() private method

private test_IndexOf_extension_method ( ) : void
return void
        public void test_IndexOf_extension_method()
        {
            List<int> listToTest = new List<int>();
            listToTest.AddRangeArray<int>( 1, 2 );

            Assert.That( listToTest.IndexOf( a => a == 0 ), Is.EqualTo( -1 ) );
            Assert.That( listToTest.IndexOf( a => a == 1 ), Is.EqualTo( 0 ) );
            Assert.That( listToTest.IndexOf( a => a == 2 ), Is.EqualTo( 1 ) );
            Assert.That( listToTest.IndexOf( ( a, b ) => b == listToTest.IndexOf<int>( c => c == 0 ) && a == 0 ), Is.EqualTo( -1 ) );
            Assert.That( listToTest.IndexOf( ( a, b ) => b == listToTest.IndexOf<int>( c => c == 1 ) && a == 1 ), Is.EqualTo( 0 ) );
            Assert.That( listToTest.IndexOf( ( a, b ) => b == listToTest.IndexOf<int>( c => c == 2 ) && a == 2 ), Is.EqualTo( 1 ) );

            listToTest.Add( 2 );

            Assert.That( listToTest.IndexOf( a => a == 2 ), Is.EqualTo( 1 ) );
            Assert.That( listToTest.IndexOf( ( a, idx ) => idx == 2 && a == 2 ), Is.EqualTo( 2 ) );

            Func<int,bool> nullFunc = null;
            Func<int,int,bool> nullFuncWithIndex = null;
            Assert.Throws<ArgumentNullException>( () => listToTest.IndexOf( nullFunc ) );
            Assert.Throws<ArgumentNullException>( () => listToTest.IndexOf( nullFuncWithIndex ) );
            listToTest = null;
            Assert.Throws<NullReferenceException>( () => listToTest.IndexOf( a => a == 0 ) );
            Assert.Throws<NullReferenceException>( () => listToTest.IndexOf( (a,idx) => a == 0 ) );
        }