Beispiel #1
0
        public void RuleTable_AsReadOnly()
        {
            var tbl = new RuleTable <int, string, object>(d => Expression.Constant(1), (d, s) => d);

            tbl.Add <int>("foo", x => x);

            var rdo = tbl.AsReadOnly();

            Assert.ThrowsException <NotSupportedException>(() => rdo.Add <int>("qux", x => x));

            var e1 = rdo.GetEnumerator();
            var e2 = ((IEnumerable)rdo).GetEnumerator();

            Assert.IsTrue(e1.MoveNext());
            Assert.IsTrue(e2.MoveNext());

            var c1 = e1.Current;
            var c2 = (Rule <int, string, object>)e2.Current;

            Assert.AreEqual("foo", c1.Name);
            Assert.AreEqual("foo", c2.Name);

            Assert.IsFalse(e1.MoveNext());
            Assert.IsFalse(e2.MoveNext());
        }