public void ResolveTest()
        {
            var container = A.Dummy<IContainer>();
            A.CallTo(() => container.GetSourceTypes(typeof(ITestType1))).Returns(new[] { typeof(TestType) });

            var resolver = new Resolver(container);

            var result = resolver.ResolveSingle<ITestType1>();

            Assert.IsNotNull(result);
            Assert.IsTrue(result is ITestType1);
            Assert.IsTrue(result is TestType);
        }
        public void ResolveWithArgumentNotResolvableTest()
        {
            var container = A.Dummy<IContainer>();
            A.CallTo(() => container.GetSourceTypes(typeof(ITestType1))).Returns(new[] { typeof(TestTypeWithArguments) });
            A.CallTo(() => container.GetSourceTypes(typeof(ITestType2))).Returns(new[] { typeof(TestType) });
            A.CallTo(() => container.GetSourceTypes(typeof(ITestType4))).Returns(new[] { typeof(TestType4) });

            var resolver = new Resolver(container);

            try
            {
                resolver.ResolveSingle<ITestType1>();
                Assert.Fail();
            }
            catch (ResolverException ex)
            {
                Debug.Write(ex.Message);
                return;
            }

            Assert.Fail();
        }