Beispiel #1
0
        public void Link_MaintainsState_OnReplace_1()
        {
            var mash  = new Mash <string, int>();
            var m1    = new Mash <string, int>();
            var shunt = new Mash <string, int>();

            mash.Link("1", m1);
            mash.Link("1", shunt);
            Assert.AreSame(shunt, mash["1"]);
        }
Beispiel #2
0
        public void Link_MaintainsState_OnReplace_4()
        {
            var mash  = new Mash <string, int>();
            var m1    = new Mash <string, int>();
            var m2    = new Mash <string, int>();
            var m3    = new Mash <string, int>();
            var m4    = new Mash <string, int>();
            var shunt = new Mash <string, int>();

            mash.Link("1", m1);
            mash.Link("2", m2);
            mash.Link("3", m3);
            mash.Link("4", m4);
            mash.Link("1", shunt);
            Assert.AreSame(shunt, mash["1"]);
            Assert.AreSame(m2, mash["2"]);
            Assert.AreSame(m3, mash["3"]);
            Assert.AreSame(m4, mash["4"]);
            mash.Link("2", shunt);
            Assert.AreSame(shunt, mash["2"]);
            Assert.AreSame(m3, mash["3"]);
            Assert.AreSame(m4, mash["4"]);
            mash.Link("3", shunt);
            Assert.AreSame(shunt, mash["3"]);
            Assert.AreSame(m4, mash["4"]);
            mash.Link("4", shunt);
            Assert.AreSame(shunt, mash["4"]);
        }
Beispiel #3
0
        public void Unlink_RemovesTheExpectedElement(int index, int count)
        {
            var mash = new Mash <int, string>();
            var ms   = new Mash <int, string> [count];

            for (var i = 0; i < count; i++)
            {
                ms[i] = new Mash <int, string>();
                mash.Link(i, ms[i]);
            }

            mash.Unlink(index);

            for (var i = 0; i < count; i++)
            {
                if (i != index)
                {
                    Assert.AreSame(ms[i], mash.GetLinked(i));
                }
            }

            Assert.AreNotSame(ms[index], mash.GetLinked(index));
        }
Beispiel #4
0
        public void Link_MaintainsState_OnAdd()
        {
            var mash = new Mash <string, int>();
            var m1   = new Mash <string, int>();
            var m2   = new Mash <string, int>();
            var m3   = new Mash <string, int>();
            var m4   = new Mash <string, int>();
            var m5   = new Mash <string, int>();
            var m6   = new Mash <string, int>();

            mash.Link("1", m1);
            Assert.AreSame(m1, mash["1"]);

            mash.Link("2", m2);
            Assert.AreSame(m1, mash["1"]);
            Assert.AreSame(m2, mash["2"]);

            mash.Link("3", m3);
            Assert.AreSame(m1, mash["1"]);
            Assert.AreSame(m2, mash["2"]);
            Assert.AreSame(m3, mash["3"]);

            mash.Link("4", m4);
            Assert.AreSame(m1, mash["1"]);
            Assert.AreSame(m2, mash["2"]);
            Assert.AreSame(m3, mash["3"]);
            Assert.AreSame(m4, mash["4"]);

            mash.Link("5", m5);
            Assert.AreSame(m1, mash["1"]);
            Assert.AreSame(m2, mash["2"]);
            Assert.AreSame(m3, mash["3"]);
            Assert.AreSame(m4, mash["4"]);
            Assert.AreSame(m5, mash["5"]);

            mash.Link("6", m6);
            Assert.AreSame(m1, mash["1"]);
            Assert.AreSame(m2, mash["2"]);
            Assert.AreSame(m3, mash["3"]);
            Assert.AreSame(m4, mash["4"]);
            Assert.AreSame(m5, mash["5"]);
            Assert.AreSame(m6, mash["6"]);
        }
Beispiel #5
0
        public void Link_AddsTheMash_IfNew()
        {
            _emptyMash.Link("a", _threeMash);

            Assert.AreSame(_threeMash, _emptyMash["a"]);
        }