public void GivenArgsInit_PopertyValueMustEqualInput()
        {
            var prox         = ProxyUtil.CreateProx();
            var type         = typeof(object);
            var nameTransfer = NullNameTransfer.Instance;
            var nameCreator  = IdentityNamedCreator.Instance;
            var propVisitor  = CompilePropertyVisitor.Instance;
            var creator      = new ProxyCreator(prox, type, nameTransfer, nameCreator, propVisitor);

            Assert.AreEqual(prox, creator.ProxyHelper);
            Assert.AreEqual(type, creator.Type);
            Assert.AreEqual(nameTransfer, creator.NameTransfer);
            Assert.AreEqual(propVisitor, creator.PropertyVisitor);
            Assert.AreEqual(nameCreator, creator.NamedCreator);
            Assert.AreEqual(type, creator.Type);
            Assert.IsNotNull(creator.PropertyInfos);
            Assert.IsFalse(creator.HasConfigPath);
        }
        public void BuildComplexProxy()
        {
            var root = ConfigHelper.CreateEmptyRoot();
            var prox = ProxyUtil.CreateProx();
            var cp   = new ComplexProxyHelper(prox, true);

            Assert.IsTrue(cp.AutoAnalysis);
            Assert.AreEqual(prox, cp.ProxyHelper);
            var cr = cp.GetCreatorOrDefault <ComplexClass>();

            Assert.IsNull(cr);
            var c = cp.Build <ComplexClass>(root);

            Assert.IsNotNull(c);
            _ = cp.GetCreatorOrDefault <ComplexClass>();
            Assert.IsNotNull(c);
            Assert.IsTrue(cp.IsCreated <ComplexClass>());
        }