Ejemplo n.º 1
0
        public void TestGetFragmentName()
        {
            string TestJSONtring = "\"Property\" : 1.0";
            var    Name          = ElementsFinder.GetFragmentName(TestJSONtring);

            Assert.Equal("Property", Name);
        }
Ejemplo n.º 2
0
        public void TestGetPropertyFragment()
        {
            string TestJSONString = "{ \"Property\" : 1.0, \"Property2\" : 1 }";
            var    result1        = ElementsFinder.GetPropertyFragment(TestJSONString, ElementsFinder.GetNextPropertyIndex(TestJSONString, 0));

            Assert.Equal("\"Property\" : 1.0", result1);
        }
Ejemplo n.º 3
0
        public void TestGetNextPropertyIndex()
        {
            string TestJSONString = "{ \"Property\" : 1.0, \"Property2\" : 1 }";
            var    result         = ElementsFinder.GetNextPropertyIndex(TestJSONString, 0);

            Assert.Equal(2, result);
        }
Ejemplo n.º 4
0
        public void TestStartAndStopExist()
        {
            string TestJSONString = "{ \"Property\" : 1.0 }";
            var    result         = ElementsFinder.StartAndStopExist(TestJSONString);

            Assert.True(result);
        }
Ejemplo n.º 5
0
        public void TestGetFragmentType()
        {
            ClassPartType ResultType = ClassPartType.Empty;

            ResultType = ElementsFinder.GetFragmentType("\"Property\" : 1.0");
            Assert.Equal(ClassPartType.Property, ResultType);
            ResultType = ElementsFinder.GetFragmentType("\"Property\" : { }");
            Assert.Equal(ClassPartType.Object, ResultType);
            ResultType = ElementsFinder.GetFragmentType("\"Property\" : [ ]");
            Assert.Equal(ClassPartType.Array, ResultType);
        }
Ejemplo n.º 6
0
        public void TestGetFragmentValue()
        {
            Assert.Equal(1D, (double)ElementsFinder.GetFragmentValue("\"Property\" : 1.0"));
            Assert.Equal(1, (int)ElementsFinder.GetFragmentValue("\"Property\" : 1"));
            Assert.Equal("String", (string)ElementsFinder.GetFragmentValue("\"Property\" : \"String\""));
            Assert.Equal(new double[] { 1, 2, 3 }, (double[])ElementsFinder.GetFragmentValue("\"Property\" : [1.0, 2.0, 3.0]"));
            Assert.Equal(new int[] { 1, 2, 3 }, (int[])ElementsFinder.GetFragmentValue("\"Property\" : [1, 2, 3]"));
            List <IClassPart> TestObject = new List <IClassPart>();

            TestObject.Add(ClassPart.Create(ClassPartType.Property, ClassPartDataType.Double, "\"InnerProperty\" : 1.0 ", "InnerProperty", 1.0D));
            Assert.Equal(TestObject.GetType(), ElementsFinder.GetFragmentValue("\"Property\" : { \"InnerProperty\" : 1.0 }").GetType());
        }
Ejemplo n.º 7
0
        public void TestGetFragmentDataType()
        {
            ClassPartDataType ResultType = ClassPartDataType.Empty;

            ResultType = ElementsFinder.GetFragmentDataType("\"Property\" : 1.0");
            Assert.Equal(ClassPartDataType.Double, ResultType);
            ResultType = ElementsFinder.GetFragmentDataType("\"Property\" : 1");
            Assert.Equal(ClassPartDataType.Int, ResultType);
            ResultType = ElementsFinder.GetFragmentDataType("\"Property\" : \"String\"");
            Assert.Equal(ClassPartDataType.String, ResultType);
            ResultType = ElementsFinder.GetFragmentDataType("\"Property\" : { }");
            Assert.Equal(ClassPartDataType.Object, ResultType);
            ResultType = ElementsFinder.GetFragmentDataType("\"Property\" :");
            Assert.Equal(ClassPartDataType.Empty, ResultType);
        }
Ejemplo n.º 8
0
        public IDecompositor Go()
        {
            int strIndex = 0;

            if (!string.IsNullOrEmpty(JSONInput))
            {
                if (ElementsFinder.StartAndStopExist(JSONInput))
                {
                    for (;;)
                    {
                        var index = ElementsFinder.GetNextPropertyIndex(JSONInput, strIndex);
                        if (index == -1)
                        {
                            IsComplited = false;
                            break;
                        }
                        var NextPropertyFragment = ElementsFinder.GetPropertyFragment(JSONInput, index);
                        if (!string.IsNullOrEmpty(NextPropertyFragment))
                        {
                            strIndex = index + NextPropertyFragment.Length;
                        }
                        else
                        {
                            IsComplited = false;
                            break;
                        }
                        var PropertyName     = ElementsFinder.GetFragmentName(NextPropertyFragment);
                        var PropertyDataType = ElementsFinder.GetFragmentDataType(NextPropertyFragment);
                        var PropertyType     = ElementsFinder.GetFragmentType(NextPropertyFragment);
                        var ProperyValue     = ElementsFinder.GetFragmentValue(NextPropertyFragment);
                        _Parts.Add(ClassPart.Create(PropertyType, PropertyDataType, NextPropertyFragment, PropertyName, ProperyValue));
                    }
                }
            }
            else
            {
                IsComplited = false;
            }
            return(this);
        }