Example #1
0
        public void TestStruct()
        {
            ComplexStructModel model = new ComplexStructModel();

            model.FieldModel         = new FieldClass();
            model.PropertyModel      = new PropertyClass();
            model.MethodModel        = new MethodClass();
            ComplexStructModel.Model = model;

            Delegate test = EHandler.CreateMethod <ComplexStructModel>((il) =>
            {
                EVar ulongMinHandler = ulong.MinValue;
                EModel modelHandler  = EModel.CreateModelFromObject(model);
                modelHandler.Load("FieldModel").Set("RefField", "Hello");
                modelHandler.Load("PropertyModel").Set("RefProperty", "Hello");
                modelHandler.Load("PropertyModel").Set("ValueProperty", ulongMinHandler);
                modelHandler.Load("Model").Load("FieldModel").Set("RefField", "Hello1");
                modelHandler.Load("Model").Load("FieldModel").Set("ValueField", () => { EMethod.Load(modelHandler.DLoad("MethodModel").Operator).ExecuteMethod("GetULongMax"); });
                modelHandler.Load();
            }).Compile();
            Func <ComplexStructModel> action = (Func <ComplexStructModel>)test;
            ComplexStructModel        result = action();

            Assert.Equal((ulong)0, result.FieldModel.ValueField);
            Assert.Equal(ulong.MinValue, result.PropertyModel.ValueProperty);
            Assert.Equal("Hello", result.FieldModel.RefField);
            Assert.Equal("Hello", result.PropertyModel.RefProperty);
            Assert.Equal(ulong.MaxValue, ComplexStructModel.Model.FieldModel.ValueField);
            Assert.Equal("Hello1", ComplexStructModel.Model.FieldModel.RefField);
            //Assert.Equal("Hello1", model.FieldModel.RefField);
        }
Example #2
0
        public void SOTest()
        {
            ComplexStructModel model = new ComplexStructModel();

            model.FieldModel = new FieldClass()
            {
                RefField = "Hello", ValueField = ulong.MaxValue - 1
            };
            model.PropertyModel = new PropertyClass()
            {
                RefProperty = "Hello", ValueProperty = ulong.MinValue + 1
            };
            model.MethodModel        = new MethodClass();
            ComplexStructModel.Model = model;

            Delegate test = EHandler.CreateMethod <ComplexStructModel>((il) =>
            {
                EVar ulongHandler           = (ulong)1;
                EVar ulongHandlerFromObject = EVar.CreateVarFromObject((ulong)1);
                EVar stringHandler          = " World";
                EModel modelHandler         = EModel.CreateModelFromObject(model);
                modelHandler.Load("FieldModel").Set("ValueField", modelHandler.DLoad("FieldModel").DLoad("ValueField").Operator + (ulong)1);
                modelHandler.DLoad("FieldModel").DLoad("ValueField").Operator--;
                modelHandler.DLoad("FieldModel").DLoad("ValueField").Operator++;

                modelHandler.Load("PropertyModel").Set("ValueProperty", modelHandler.DLoad("PropertyModel").DLoad("ValueProperty").Operator - (ulong)1);
                modelHandler.DLoad("PropertyModel").DLoad("ValueProperty").Operator++;
                modelHandler.DLoad("PropertyModel").DLoad("ValueProperty").Operator--;

                modelHandler.Load("PropertyModel").Set("RefProperty", modelHandler.DLoad("PropertyModel").DLoad("RefProperty").Operator + " World");

                modelHandler.Load("FieldModel").Set("RefField", modelHandler.DLoad("FieldModel").DLoad("RefField").Operator + stringHandler);
                modelHandler.DLoad("Model").DLoad("FieldModel").DLoad("ValueField").Operator++;
                modelHandler.Load();
            }).Compile();
            Func <ComplexStructModel> action = (Func <ComplexStructModel>)test;
            ComplexStructModel        result = action();

            Assert.Equal(ulong.MaxValue, result.FieldModel.ValueField);
            Assert.Equal(ulong.MinValue, result.PropertyModel.ValueProperty);
            Assert.Equal("Hello World", result.FieldModel.RefField);
            Assert.Equal("Hello World", result.PropertyModel.RefProperty);
            Assert.Equal(ulong.MaxValue, ComplexStructModel.Model.FieldModel.ValueField);
        }