CK.Core.Tests.UtilInterlockedTests.InterlockedAddUnique_tests_the_occurrence_of_the_item C# (CSharp) Method

InterlockedAddUnique_tests_the_occurrence_of_the_item() private method

        public void InterlockedAddUnique_tests_the_occurrence_of_the_item()
        {
            {
                // Append
                int[] a = null;
                Util.InterlockedAddUnique( ref a, 1 );
                Assert.That( a != null && a.Length == 1 && a[0] == 1 );
                var theA = a;
                Util.InterlockedAddUnique( ref a, 1 );
                Assert.That( a, Is.SameAs( theA ) );
                Util.InterlockedAddUnique( ref a, 2 );
                Assert.That( a != null && a.Length == 2 && a[0] == 1 && a[1] == 2 );
                theA = a;
                Util.InterlockedAddUnique( ref a, 2 );
                Assert.That( a, Is.SameAs( theA ) );
            }
            {
                // Prepend
                int[] a = null;
                Util.InterlockedAddUnique( ref a, 1, true );
                Assert.That( a != null && a.Length == 1 && a[0] == 1 );
                var theA = a;
                Util.InterlockedAddUnique( ref a, 1, true );
                Assert.That( a, Is.SameAs( theA ) );
                Util.InterlockedAddUnique( ref a, 2, true );
                Assert.That( a != null && a.Length == 2 && a[0] == 2 && a[1] == 1 );
                theA = a;
                Util.InterlockedAddUnique( ref a, 2, true );
                Assert.That( a, Is.SameAs( theA ) );
            }
        }