public void CreateInstance_ChildClassConstructor()
        {
            var arg    = new ArgumentChildClass();
            var result = ConstructorDiscovery.CreateInstance(typeof(DummyClassWithSingleArgConstructor), arg);

            Assert.NotNull(result);
            Assert.IsInstanceOf(typeof(DummyClassWithSingleArgConstructor), result);

            var typed = result as DummyClassWithSingleArgConstructor;

            Assert.False(typed.WithParentClass);
            Assert.True(typed.WithChildClass);
        }
        public void CreateInstance_ParentAndChildClassConstructor_Ordered()
        {
            var arg1   = new ArgumentBaseClass();
            var arg2   = new ArgumentChildClass();
            var result = ConstructorDiscovery.CreateInstance(typeof(DummyClassWithSingleArgConstructor), arg1, arg2);

            Assert.NotNull(result);
            Assert.IsInstanceOf(typeof(DummyClassWithSingleArgConstructor), result);

            var typed = result as DummyClassWithSingleArgConstructor;

            Assert.True(typed.WithParentClass);
            Assert.True(typed.WithChildClass);
        }
 public DummyClassWithSingleArgConstructor(ArgumentBaseClass arg1, ArgumentChildClass arg2)
 {
     WithChildClass  = true;
     WithParentClass = true;
 }
 public DummyClassWithSingleArgConstructor(ArgumentChildClass arg)
 {
     WithChildClass = true;
 }