Example #1
0
        public void TestFact()
        {
            Either <Error, Tuple <string, FactBuilder> > res = Biscuit.Token.Builder.Parser.Parser.Fact("right( #authority, \"file1\", #read )");

            Assert.AreEqual(new Right(new Tuple <string, FactBuilder>("",
                                                                      Utils.Fact("right", Arrays.AsList(Utils.Symbol("authority"), Utils.Strings("file1"), Utils.Symbol("read"))))),
                            res);

            Either <Error, Tuple <string, FactBuilder> > res2 = Parser.Fact("right( #authority, $var, #read )");

            //Assert.AreEqual(new Left(new Error("$var, #read )", "variables are not allowed in facts")),
            //    res2);
            Assert.AreEqual(new Left(new Error("$var, #read )", "closing parens not found")),
                            res2);

            Either <Error, Tuple <string, FactBuilder> > res3 = Parser.Fact("date(#ambient,2019-12-02T13:49:53Z)");

            Assert.AreEqual(new Right(new Tuple <string, FactBuilder>("",
                                                                      Utils.Fact("date", Arrays.AsList(Utils.Symbol("ambient"), new Term.Date(1575294593))))),
                            res3);
        }