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);
        }