Example #1
0
        public void AreEqualCollections_UseSetOfNotEqualCollections_ReturnsFalse()
        {
            var x = new UnvalidatedObjectCollection <NameValueHeaderValue>();
            var y = new UnvalidatedObjectCollection <NameValueHeaderValue>();

            Assert.True(HeaderUtilities.AreEqualCollections(x, y), "Expected '<empty>' == '<empty>'");

            x.Add(new NameValueHeaderValue("a"));
            x.Add(new NameValueHeaderValue("c"));
            x.Add(new NameValueHeaderValue("b"));
            x.Add(new NameValueHeaderValue("c"));

            y.Add(new NameValueHeaderValue("a"));
            y.Add(new NameValueHeaderValue("b"));
            y.Add(new NameValueHeaderValue("c"));
            y.Add(new NameValueHeaderValue("d"));

            Assert.False(HeaderUtilities.AreEqualCollections(x, y));
            Assert.False(HeaderUtilities.AreEqualCollections(y, x));

            y.Clear();
            y.Add(new NameValueHeaderValue("a"));
            y.Add(new NameValueHeaderValue("b"));
            y.Add(new NameValueHeaderValue("b"));
            y.Add(new NameValueHeaderValue("c"));

            Assert.False(HeaderUtilities.AreEqualCollections(x, y));
            Assert.False(HeaderUtilities.AreEqualCollections(y, x));
        }
Example #2
0
        public void AreEqualCollections_UseSetOfEqualCollections_ReturnsTrue()
        {
            var x = new UnvalidatedObjectCollection <NameValueHeaderValue>();
            var y = new UnvalidatedObjectCollection <NameValueHeaderValue>();

            Assert.True(HeaderUtilities.AreEqualCollections(x, y));

            x.Add(new NameValueHeaderValue("a"));
            x.Add(new NameValueHeaderValue("c"));
            x.Add(new NameValueHeaderValue("b"));
            x.Add(new NameValueHeaderValue("c"));

            y.Add(new NameValueHeaderValue("c"));
            y.Add(new NameValueHeaderValue("c"));
            y.Add(new NameValueHeaderValue("b"));
            y.Add(new NameValueHeaderValue("a"));

            Assert.True(HeaderUtilities.AreEqualCollections(x, y));
            Assert.True(HeaderUtilities.AreEqualCollections(y, x));
        }
Example #3
0
        public void Ctor_ExecuteBothOverloads_MatchExpectation()
        {
            // Use default validator
            ObjectCollection <string> c = new UnvalidatedObjectCollection <string>();

            c.Add("value1");
            c.Add("value2");

            Assert.Throws <ArgumentNullException>(() => { c.Add(null); });

            Assert.Equal(2, c.Count);
            Assert.True(c.Contains("value2"));
            Assert.True(c.Contains("value1"));

            // Use custom validator
            c = new StringlyItemCollection();

            c.Add("value1");

            Assert.Throws <InvalidOperationException>(() => { c.Add(null); });
        }
Example #4
0
        public void ContainsAndRemove_UsesEqualitySemantics()
        {
            var c = new UnvalidatedObjectCollection <string>();

            string val1 = "value1";
            string val1DifferentReference = "value" + 1;

            Assert.NotSame(val1, val1DifferentReference);
            Assert.Equal(val1, val1DifferentReference);

            string val2 = "value2";
            string val2DifferentReference = "value" + 2;

            Assert.NotSame(val2, val2DifferentReference);
            Assert.Equal(val2, val2DifferentReference);

            string val3 = "value3";

            // Start empty
            Assert.Equal(0, c.Count);
            Assert.False(c.Contains(val1));

            // Single item
            c.Add(val1);
            Assert.Equal(1, c.Count);
            Assert.True(c.Contains(val1));
            Assert.True(c.Contains(val1DifferentReference));
            Assert.False(c.Contains(val2));

            // Single item removal
            Assert.True(c.Remove(val1));
            Assert.Equal(0, c.Count);
            Assert.False(c.Contains(val1));

            // Multi-value
            c.Add(val1);
            c.Add(val2);
            Assert.Equal(2, c.Count);
            Assert.True(c.Contains(val1));
            Assert.True(c.Contains(val1DifferentReference));
            Assert.True(c.Contains(val2));
            Assert.True(c.Contains(val1DifferentReference));
            Assert.False(c.Contains(val3));

            // Removal when multiple exist, using different reference.
            Assert.True(c.Remove(val1));
            Assert.False(c.Contains(val1));
            Assert.True(c.Contains(val2));
            Assert.Equal(1, c.Count);

            // Removal of non-existent
            Assert.False(c.Remove(val3));
            Assert.False(c.Remove(val1DifferentReference));
            Assert.Equal(1, c.Count);
            Assert.True(c.Contains(val2DifferentReference));

            // Removal last item
            Assert.True(c.Remove(val2DifferentReference));
            Assert.Equal(0, c.Count);
            Assert.False(c.Contains(val2));
            Assert.False(c.Contains(val1));

            // Remove from empty
            Assert.False(c.Remove(val1));
            Assert.False(c.Remove(val2));
            Assert.False(c.Remove(val3));
            Assert.Equal(0, c.Count);
        }