Beispiel #1
0
        public void TestStruct()
        {
            NestingStructModel model = new NestingStructModel();

            model.FieldModel         = new FieldStruct();
            model.PropertyModel      = new PropertyStruct();
            model.MethodModel        = new MethodStruct();
            NestingStructModel.Model = model;

            Delegate test = EHandler.CreateMethod <NestingStructModel>((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 <NestingStructModel> action = (Func <NestingStructModel>)test;
            NestingStructModel        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, NestingStructModel.Model.FieldModel.ValueField);
        }
Beispiel #2
0
        public void TestStructOperator()
        {
            NestingStructModel model = new NestingStructModel();

            model.FieldModel = new FieldStruct()
            {
                RefField = "Hello", ValueField = ulong.MaxValue - 1
            };
            model.PropertyModel = new PropertyStruct()
            {
                RefProperty = "World", ValueProperty = ulong.MinValue + 1
            };
            model.MethodModel        = new MethodStruct();
            NestingStructModel.Model = model;

            Delegate test = EHandler.CreateMethod <NestingStructModel>((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 + 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.Load();
            }).Compile();
            Func <NestingStructModel> action = (Func <NestingStructModel>)test;
            NestingStructModel        result = action();

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