Example #1
0
 public void AssertPublicMembersThrow(ArrayBuilder <string?> builder, string?[] array)
 {
     // Public methods & properties except for IsClosed
     Assert.Throws <ObjectDisposedException>(() => builder.Capacity -= 1);
     Assert.Throws <ObjectDisposedException>(() => builder[0]        = "closed");
     Assert.Throws <ObjectDisposedException>(() => builder.Add("closed"));
     Assert.Throws <ObjectDisposedException>(() => builder.AddRange(Enumerable.Repeat("closed", 2)));
     Assert.Throws <ObjectDisposedException>(() => _ = builder.BinarySearch(0, 4, "element", StringComparer.Ordinal));
     Assert.Throws <ObjectDisposedException>(() => _ = builder.BinarySearch("element"));
     Assert.Throws <ObjectDisposedException>(() => _ = builder.BinarySearch("element", StringComparer.Ordinal));
     Assert.Throws <ObjectDisposedException>(() => builder.Clear());
     Assert.Throws <ObjectDisposedException>(() => _ = builder.Close());
     Assert.Throws <ObjectDisposedException>(() => _ = builder.CloseAndSlice());
     Assert.Throws <ObjectDisposedException>(() => _ = builder.CloseAndSlice(1));
     Assert.Throws <ObjectDisposedException>(() => _ = builder.CloseAndSlice(1, 1));
     Assert.Throws <ObjectDisposedException>(() => _ = builder.Contains("element"));
     Assert.Throws <ObjectDisposedException>(() => builder.CopyTo(array));
     Assert.Throws <ObjectDisposedException>(() => builder.CopyTo(0, array, 0, 4));
     Assert.Throws <ObjectDisposedException>(() => builder.CopyTo(array, 0));
     Assert.Throws <ObjectDisposedException>(() => builder.EnsureCapacity(12));
     Assert.Throws <ObjectDisposedException>(() => _ = builder.GetEnumerator());
     Assert.Throws <ObjectDisposedException>(() => _ = builder.IndexOf("element"));
     Assert.Throws <ObjectDisposedException>(() => _ = builder.IndexOf("element", 0));
     Assert.Throws <ObjectDisposedException>(() => _ = builder.IndexOf("element", 0, 4));
     Assert.Throws <ObjectDisposedException>(() => builder.Insert(0, "closed"));
     Assert.Throws <ObjectDisposedException>(() => builder.InsertRange(0, Enumerable.Repeat("closed", 2)));
     Assert.Throws <ObjectDisposedException>(() => builder.Remove("element"));
     Assert.Throws <ObjectDisposedException>(() => builder.RemoveAt(2));
     Assert.Throws <ObjectDisposedException>(() => builder.RemoveRange(0, 3));
     Assert.Throws <ObjectDisposedException>(() => _ = builder.TrimAndClose());
     Assert.Throws <ObjectDisposedException>(() => builder.TrimExcess());
 }
Example #2
0
        public void TestClose()
        {
            using (var builder = new ArrayBuilder <string?>())
            {
                builder.AddRange(Enumerable.Repeat("element", 4));
                var array = builder.Close();
                Helpers.AssertSequenceEqual(Enumerable.Repeat("element", 4), array);

                Assert.DoesNotThrow(() => _ = builder.IsClosed);
                AssertPublicMembersThrow(builder, array);
                AssertListMembersThrow(builder, array);
                AssertCollectionMembersThrow(builder, array);
                AssertEnumerableMembersThrow(builder, array);
                AssertGenericCollectionMembersThrow(builder, array);
            }
            Assert.Pass();
        }
Example #3
0
        public void TestDispose()
        {
            string?[] array;
            ArrayBuilder <string?> builder;

            using (builder = new ArrayBuilder <string?>())
            {
                builder.AddRange(Enumerable.Repeat("element", 4));
                array = builder.Close();
                Helpers.AssertSequenceEqual(Enumerable.Repeat("element", 4), array);
            }
            Assert.Throws <ObjectDisposedException>(() => _ = builder.IsClosed);
            AssertPublicMembersThrow(builder, array);
            AssertListMembersThrow(builder, array);
            AssertCollectionMembersThrow(builder, array);
            AssertEnumerableMembersThrow(builder, array);
            AssertGenericCollectionMembersThrow(builder, array);
            Assert.Pass();
        }