Пример #1
0
        public void TestOneChild()
        {
            var container = StringContainer.Get("(id)");

            Assert.AreEqual(container.Children[0].Data, "id");
            Assert.IsNull(container.Children[0].Children);
        }
Пример #2
0
        public void TestSuperDeepNestedString()
        {
            string str       = "(id,created,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname,employee(id,firstname,employeeType(id),lastname))))))))))))))))))))))),location(id,lat,long),something,anything)";
            var    container = StringContainer.Get(str);

            container.Sort();
        }
Пример #3
0
        public void TestUltraNestingWithoutEnclosingParens()
        {
            var container = StringContainer.Get("data(name1,age1),id(name2,age2(hello,bye)),you(name3,age3)");

            Assert.AreEqual(container.Children[0].Data, "data");
            Assert.AreEqual(container.Children[0].Children[0].Data, "name1");
            Assert.IsNull(container.Children[0].Children[0].Children);
            Assert.AreEqual(container.Children[0].Children[1].Data, "age1");
            Assert.IsNull(container.Children[0].Children[1].Children);

            Assert.AreEqual(container.Children[1].Data, "id");
            Assert.AreEqual(container.Children[1].Children[0].Data, "name2");
            Assert.IsNull(container.Children[1].Children[0].Children);
            Assert.AreEqual(container.Children[1].Children[1].Data, "age2");
            Assert.AreEqual(container.Children[1].Children[1].Children[0].Data, "hello");
            Assert.IsNull(container.Children[1].Children[1].Children[0].Children);
            Assert.AreEqual(container.Children[1].Children[1].Children[1].Data, "bye");
            Assert.IsNull(container.Children[1].Children[1].Children[0].Children);

            Assert.AreEqual(container.Children[2].Data, "you");
            Assert.AreEqual(container.Children[2].Children[0].Data, "name3");
            Assert.IsNull(container.Children[2].Children[0].Children);
            Assert.AreEqual(container.Children[2].Children[1].Data, "age3");
            Assert.IsNull(container.Children[2].Children[1].Children);
        }
Пример #4
0
        public void TestMismatchedParents()
        {
            var container = StringContainer.Get(")(");

            Assert.AreEqual(container.Data, string.Empty);
            Assert.AreEqual(container.Children[0].Data, string.Empty);
        }
Пример #5
0
        public void TestEmptyParens()
        {
            var container = StringContainer.Get("()");

            Assert.AreEqual(container.Data, string.Empty);
            Assert.AreEqual(container.Children[0].Data, string.Empty);
        }
Пример #6
0
        public void TestEmptyString()
        {
            var container = StringContainer.Get(string.Empty);

            Assert.AreEqual(container.Data, string.Empty);
            Assert.IsNull(container.Children);
        }
Пример #7
0
        public void TestOneChildWithGrandson()
        {
            var container = StringContainer.Get("(id(name))");

            Assert.AreEqual(container.Children[0].Data, "id");
            Assert.AreEqual(container.Children[0].Children[0].Data, "name");
            Assert.IsNull(container.Children[0].Children[0].Children);
        }
Пример #8
0
        static void Main(string[] args)
        {
            string str       = "(id,created,employee(id,firstname,employeeType(id), lastname),location(id,lat,long),something,anything)";
            var    container = StringContainer.Get(str);

            container.Sort();
            System.Console.WriteLine(container.ToDeepString());
            System.Console.ReadKey();
        }
Пример #9
0
        public void TestTwoChildren()
        {
            var container = StringContainer.Get("(id,data)");

            Assert.AreEqual(container.Children[0].Data, "id");
            Assert.IsNull(container.Children[0].Children);
            Assert.AreEqual(container.Children[1].Data, "data");
            Assert.IsNull(container.Children[1].Children);
        }
Пример #10
0
        public void TestThirdChildWithGrandson()
        {
            var container = StringContainer.Get("(data,id,you(name))");

            Assert.AreEqual(container.Children[0].Data, "data");
            Assert.IsNull(container.Children[0].Children);

            Assert.AreEqual(container.Children[1].Data, "id");
            Assert.IsNull(container.Children[1].Children);

            Assert.AreEqual(container.Children[2].Data, "you");
            Assert.AreEqual(container.Children[2].Children[0].Data, "name");
            Assert.IsNull(container.Children[2].Children[0].Children);
        }
Пример #11
0
        public void TestMiddleChildWithGrandchildren()
        {
            var container = StringContainer.Get("(data,id(name,age),you(name,age))");

            Assert.AreEqual(container.Children[0].Data, "data");
            Assert.IsNull(container.Children[0].Children);

            Assert.AreEqual(container.Children[1].Data, "id");
            Assert.AreEqual(container.Children[1].Children[0].Data, "name");
            Assert.IsNull(container.Children[1].Children[0].Children);
            Assert.AreEqual(container.Children[1].Children[1].Data, "age");
            Assert.IsNull(container.Children[1].Children[1].Children);

            Assert.AreEqual(container.Children[2].Data, "you");
            Assert.AreEqual(container.Children[2].Children[0].Data, "name");
            Assert.IsNull(container.Children[2].Children[0].Children);
            Assert.AreEqual(container.Children[2].Children[1].Data, "age");
            Assert.IsNull(container.Children[2].Children[1].Children);
        }
Пример #12
0
        public void TestTrailingWords()
        {
            var container = StringContainer.Get("(data(name1,age1),id(name2,age2),you,name3,age3)");

            Assert.AreEqual(container.Children[0].Data, "data");
            Assert.AreEqual(container.Children[0].Children[0].Data, "name1");
            Assert.IsNull(container.Children[0].Children[0].Children);
            Assert.AreEqual(container.Children[0].Children[1].Data, "age1");
            Assert.IsNull(container.Children[0].Children[1].Children);

            Assert.AreEqual(container.Children[1].Data, "id");
            Assert.AreEqual(container.Children[1].Children[0].Data, "name2");
            Assert.IsNull(container.Children[1].Children[0].Children);
            Assert.AreEqual(container.Children[1].Children[1].Data, "age2");
            Assert.IsNull(container.Children[1].Children[1].Children);

            Assert.AreEqual(container.Children[2].Data, "you");
            Assert.AreEqual(container.Children[3].Data, "name3");
            Assert.IsNull(container.Children[3].Children);
            Assert.AreEqual(container.Children[4].Data, "age3");
            Assert.IsNull(container.Children[4].Children);
        }
Пример #13
0
        public void TestSortedTestString()
        {
            string str       = "(id,created,employee(id,firstname,employeeType(id),lastname),location(id,lat,long),something,anything)";
            var    container = StringContainer.Get(str);

            container.Sort();

            Assert.AreEqual(container.Children[0].Data, "anything");
            Assert.IsNull(container.Children[0].Children);

            Assert.AreEqual(container.Children[1].Data, "created");
            Assert.IsNull(container.Children[1].Children);

            Assert.AreEqual(container.Children[2].Data, "employee");
            Assert.AreEqual(container.Children[2].Children[0].Data, "employeeType");
            Assert.AreEqual(container.Children[2].Children[0].Children[0].Data, "id");
            Assert.IsNull(container.Children[2].Children[0].Children[0].Children);
            Assert.AreEqual(container.Children[2].Children[1].Data, "firstname");
            Assert.IsNull(container.Children[2].Children[1].Children);
            Assert.AreEqual(container.Children[2].Children[2].Data, "id");
            Assert.IsNull(container.Children[2].Children[2].Children);
            Assert.AreEqual(container.Children[2].Children[3].Data, "lastname");
            Assert.IsNull(container.Children[2].Children[3].Children);

            Assert.AreEqual(container.Children[3].Data, "id");
            Assert.IsNull(container.Children[3].Children);

            Assert.AreEqual(container.Children[4].Data, "location");
            Assert.AreEqual(container.Children[4].Children[0].Data, "id");
            Assert.IsNull(container.Children[4].Children[0].Children);
            Assert.AreEqual(container.Children[4].Children[1].Data, "lat");
            Assert.IsNull(container.Children[4].Children[1].Children);
            Assert.AreEqual(container.Children[4].Children[2].Data, "long");
            Assert.IsNull(container.Children[4].Children[2].Children);

            Assert.AreEqual(container.Children[5].Data, "something");
            Assert.IsNull(container.Children[5].Children);
        }
Пример #14
0
 public void TestMismatchedParentsTooManyClosesNested()
 {
     var container = StringContainer.Get("(word(otherWord(Hello,Bye(O)))ther))");
 }
Пример #15
0
 public void TestMismatchedParentsTooManyCloses()
 {
     var container = StringContainer.Get("(word(otherWord)))");
 }