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"]); }
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"]); }
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)); }
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"]); }
public void Link_AddsTheMash_IfNew() { _emptyMash.Link("a", _threeMash); Assert.AreSame(_threeMash, _emptyMash["a"]); }