Esempio n. 1
0
        public void ConjTest1()
        {
            var expr = new ConjExpression(
                new StructureExpression("foo"),
                new StructureExpression("foo")
                );
            var result = expr.Run();

            Assert.Collection(result,
                              item =>
            {
                Assert.IsType <StructureResultTree>(item);
                Assert.Equal("foo", (item as StructureResultTree).Name);
                Assert.Collection((item as StructureResultTree).FirstChild,
                                  item => Assert.Null(item)
                                  );
                Assert.Collection((item as StructureResultTree).NextSibling,
                                  item =>
                {
                    Assert.Null(item);
                }
                                  );
            }
                              );
        }
Esempio n. 2
0
        public void ConjTest2()
        {
            var expr = new ConjExpression(
                new StructureExpression("foo"),
                new StructureExpression("bar")
                );
            var result = expr.Run();

            Assert.Empty(result);
        }
Esempio n. 3
0
        public void ConjTest6()
        {
            var expr = new ConjExpression(
                new GroupExpression(new[] {
                new AltExpression(new [] { new StructureExpression("foo", new StructureExpression("xxx")), new StructureExpression("foo") }),
                new AltExpression(new [] { new StructureExpression("foo", new StructureExpression("zzz")), new StructureExpression("foo", new StructureExpression("yyy")) }),
            }),
                new GroupExpression(new[] { new StructureExpression("foo", new StructureExpression("xxx")), new StructureExpression("foo", new StructureExpression("yyy")) })
                );
            var result = expr.Run();

            Assert.Collection(result,
                              item =>
            {
                Assert.IsType <StructureResultTree>(item);
                Assert.Equal("foo", (item as StructureResultTree).Name);
                Assert.Collection((item as StructureResultTree).FirstChild,
                                  item => {
                    Assert.IsType <StructureResultTree>(item);
                    Assert.Equal("xxx", (item as StructureResultTree).Name);
                    Assert.Collection((item as StructureResultTree).FirstChild,
                                      item => Assert.Null(item)
                                      );
                    Assert.Collection((item as StructureResultTree).NextSibling,
                                      item => Assert.Null(item)
                                      );
                }
                                  );
                Assert.Collection((item as StructureResultTree).NextSibling,
                                  item =>
                {
                    Assert.IsType <StructureResultTree>(item);
                    Assert.Equal("foo", (item as StructureResultTree).Name);
                    Assert.Empty((item as StructureResultTree).FirstChild);
                    Assert.Collection((item as StructureResultTree).NextSibling,
                                      item =>
                    {
                        Assert.Null(item);
                    }
                                      );
                },
                                  item =>
                {
                    Assert.IsType <StructureResultTree>(item);
                    Assert.Equal("foo", (item as StructureResultTree).Name);
                    Assert.Collection((item as StructureResultTree).FirstChild,
                                      item => {
                        Assert.IsType <StructureResultTree>(item);
                        Assert.Equal("yyy", (item as StructureResultTree).Name);
                        Assert.Collection((item as StructureResultTree).FirstChild,
                                          item => Assert.Null(item)
                                          );
                        Assert.Collection((item as StructureResultTree).NextSibling,
                                          item => Assert.Null(item)
                                          );
                    }
                                      );
                    Assert.Collection((item as StructureResultTree).NextSibling,
                                      item => Assert.Null(item)
                                      );
                }
                                  );
            },
                              item =>
            {
                Assert.IsType <StructureResultTree>(item);
                Assert.Equal("foo", (item as StructureResultTree).Name);
                Assert.Empty((item as StructureResultTree).FirstChild);
                Assert.Collection((item as StructureResultTree).NextSibling,
                                  item =>
                {
                    Assert.IsType <StructureResultTree>(item);
                    Assert.Equal("foo", (item as StructureResultTree).Name);
                    Assert.Empty((item as StructureResultTree).FirstChild);
                    Assert.Collection((item as StructureResultTree).NextSibling,
                                      item =>
                    {
                        Assert.Null(item);
                    }
                                      );
                },
                                  item =>
                {
                    Assert.IsType <StructureResultTree>(item);
                    Assert.Equal("foo", (item as StructureResultTree).Name);
                    Assert.Collection((item as StructureResultTree).FirstChild,
                                      item => {
                        Assert.IsType <StructureResultTree>(item);
                        Assert.Equal("yyy", (item as StructureResultTree).Name);
                        Assert.Collection((item as StructureResultTree).FirstChild,
                                          item => Assert.Null(item)
                                          );
                        Assert.Collection((item as StructureResultTree).NextSibling,
                                          item => Assert.Null(item)
                                          );
                    }
                                      );
                    Assert.Collection((item as StructureResultTree).NextSibling,
                                      item => Assert.Null(item)
                                      );
                }
                                  );
            }
                              );
        }