Exemplo n.º 1
0
        public void CanCreateTypedInstanceFromDefaultConstructor()
        {
            var activator = ExpressionActivator.CreateActivator <Person>();

            var instance = activator.Invoke();

            instance.ShouldNotBeNull();
        }
Exemplo n.º 2
0
        public void CanCreateTypedInstanceWithParameters()
        {
            var activator = ExpressionActivator.CreateActivator <Person>(typeof(string), typeof(string));

            var instance = activator.Invoke("Kristian", "Hellang");

            instance.ShouldNotBeNull();
            instance.FirstName.ShouldEqual("Kristian");
            instance.LastName.ShouldEqual("Hellang");
        }
Exemplo n.º 3
0
 public void TestExpression()
 {
     var expr    = "(Age != null) && (Id > 0)";
     var context = new ExpressionActivator();
     var result  = context.Create <P>(expr);
     var flag1   = result.Func(new P {
         Id = 2, Age = null
     });
     var flag2 = result.Func(new P {
         Id = 2, Age = 2
     });
 }
Exemplo n.º 4
0
        public void CreateInstance()
        {
            var containerBuilder = ContainerBuilder.CreateBuilder();

            containerBuilder.Register <ITestInterface2>().ImplementedBy <TestInterface2Impl>();
            var container = containerBuilder.Build();

            var activator = new ExpressionActivator((Container)container, new ConstructorSelector());
            var result    = activator.CreateInstance(typeof(TestInterface2Impl));

            Assert.IsNotNull(result);
        }
Exemplo n.º 5
0
        private string ResolveIfNode <T>(IfNode node, T parameter)
        {
            if (node.Delegate == null)
            {
                lock (this)
                {
                    var context = new ExpressionActivator();
                    var result  = context.Create <T>(node.Test);
                    node.Delegate = result.Func;
                }
            }
            var func = node.Delegate as Func <T, bool>;

            if (func(parameter))
            {
                return(ResolveTextNode(new TextNode {
                    Value = node.Value
                }));
            }
            return(string.Empty);
        }
Exemplo n.º 6
0
 public void ShouldThrowIfConstructorIsNotFound()
 {
     Assert.Throws <ConstructorNotFoundException>(() => typeof(Person).CreateActivator(typeof(string)));
     Assert.Throws <ConstructorNotFoundException>(() => ExpressionActivator.CreateActivator <Person>(typeof(string)));
 }