public void FinishRegistrationTest()
        {
            var container = new Container();
            var registration = container.StartRegistration(typeof(TestType));

            container.FinishRegistration(typeof(ITestType1), registration);

            var sourceTypes = container.GetSourceTypes(typeof(ITestType1));

            Assert.AreEqual(1, sourceTypes.Count());
            Assert.AreEqual(typeof(TestType), sourceTypes.First());
        }
        public void FinishRegistrationNotAReferenceTypeTest()
        {
            var container = new Container();
            var registration = container.StartRegistration(typeof(TestType));

            try
            {
                container.FinishRegistration(typeof(int), registration);
                Assert.Fail();
            }
            catch (NotAReferenceTypeException)
            {
                return;
            }

            Assert.Fail();
        }
        public void FinishRegistrationTargetNotAssignableFromSourceTest()
        {
            var container = new Container();
            var registration = container.StartRegistration(typeof(TestType));

            try
            {
                container.FinishRegistration(typeof(ITestType4), registration);
                Assert.Fail();
            }
            catch (InvalidOperationException ex)
            {
                StringAssert.Contains(ex.Message, "is not assignable to");
                return;
            }

            Assert.Fail();
        }
        public void StartRegistrationTest()
        {
            var container = new Container();
            var registration = container.StartRegistration(typeof(TestType));

            Assert.AreEqual(typeof(TestType), registration.SourceType);
        }