public void ProForma() { var m = new MockProvider(); Assert.AreEqual(2, m.Count); m.CreateMock <Foo>(); Assert.AreEqual(3, m.Count); var md = m[2] as MockDescriptor; Assert.AreEqual(2, m.IndexOf(md)); var foo = m.GetService <Foo>(); Assert.AreSame(md.Instance, foo); Assert.IsTrue(m.Contains(md)); Assert.IsTrue(m.Remove(md)); Assert.AreEqual(2, m.Count); Assert.IsFalse(m.Contains(md)); var id = new InstanceDescriptor(typeof(Bar <Foo>), new Bar <Foo>(m)); m.Insert(2, id); m.RemoveAt(2); Assert.AreEqual(2, m.Count); m[1] = id; Assert.AreSame(m[1], id); m.Clear(); Assert.AreEqual(2, m.Count); m.CreateMock <Bar <Foo> >(m); var target = new ServiceDescriptor[m.Count]; m.CopyTo(target, 0); foreach (var mde in m) { int i = m.IndexOf(mde); Assert.AreSame(mde, target[i]); } Assert.IsFalse(m.IsReadOnly); m.Clear(); m.AddTransient(typeof(Bar <>)); m.CreateMock <Bar <Bus> >(m); }