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

test_Append_extension_method() private method

private test_Append_extension_method ( ) : void
return void
        public void test_Append_extension_method()
        {
            int[] t = new int[0];
            CollectionAssert.AreEqual( t.Append( 5 ), new[] { 5 } );
            CollectionAssert.AreEqual( t.Append( 2 ).Append( 5 ), new[] { 2, 5 } );
            CollectionAssert.AreEqual( t.Append( 2 ).Append( 3 ).Append( 5 ), new[] { 2, 3, 5 } );

            var tX =  t.Append( 2 ).Append( 3 ).Append( 4 ).Append( 5 );
            CollectionAssert.AreEqual( tX, new[] { 2, 3, 4, 5 } );

            var e = tX.GetEnumerator();
            Assert.Throws<InvalidOperationException>( () => Console.Write( e.Current ) );
            Assert.That( e.MoveNext() );
            Assert.That( e.Current, Is.EqualTo( 2 ) );
            e.Reset();
            Assert.That( e.MoveNext() );
            Assert.That( e.Current, Is.EqualTo( 2 ) );
            Assert.That( e.MoveNext() );
            Assert.That( e.Current, Is.EqualTo( 3 ) );
            Assert.That( e.MoveNext() );
            Assert.That( e.Current, Is.EqualTo( 4 ) );
            Assert.That( e.MoveNext() );
            Assert.That( e.Current, Is.EqualTo( 5 ) );
            Assert.That( !e.MoveNext() );
            Assert.Throws<InvalidOperationException>( () => Console.Write( e.Current ) );
            Assert.Throws<InvalidOperationException>( () => e.MoveNext() );

            t = null;
            Assert.Throws<NullReferenceException>( () => t.Append( 5 ) );

        }