Пример #1
0
        public void DerefEmptyTest()
        {
            Mock <IDatabaseParameters> database = new Mock <IDatabaseParameters>();
            Mock <IStorage>            storage  = new Mock <IStorage>();

            Deref deref = new Deref();

            Mock <SelectStatement> selectStatement = new Mock <SelectStatement>();

            selectStatement.Setup(cn => cn.Execute(It.Is <QueryParameters>(qp => qp.Database == database.Object && qp.Storage == storage.Object))).Returns(
                new QueryDTO()
            {
                QueryClass = new Class
                {
                    ClassId = new ClassId {
                        Id = 1, Name = "Test"
                    },
                    Name = "Test"
                },
                QueryObjects = new List <IStorable>()
            });
            deref.Add(selectStatement.Object);

            QueryDTO result = deref.Execute(new QueryParameters {
                Database = database.Object, Storage = storage.Object
            });
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(result.Result.StringOutput);

            XmlNode     resultNode = doc.GetElementsByTagName("result").Item(0);
            XmlNodeList nodes      = resultNode.ChildNodes;

            Assert.AreEqual(0, nodes.Count);
        }
Пример #2
0
        protected internal override void TraverseDeref(Deref deref)
        {
            var t      = deref.Type();
            var is_ptr = t == null || !t.IsByRef;

            if (is_ptr)
            {
                _writer.Write("*");
            }
            Traverse(deref.Target);
        }
        protected internal override void TraverseDeref(Deref deref)
        {
            Traverse(deref.Target);

            var t       = Types[deref.Target];
            var t_deref = null as Type;

            if (t != null)
            {
                (t.IsByRef || t.IsPointer).AssertTrue();
                t_deref = t.GetElementType();
            }

            Types.Add(deref, t_deref);
        }
Пример #4
0
        public override IQueryElement VisitGet_stmt([NotNull] QueryGrammarParser.Get_stmtContext context)
        {
            if (context.K_DEREF() != null)
            {
                Deref deref = new Deref();

                IQueryElement parentSelect = Visit(context.get_stmt());
                deref.Add(parentSelect);
                return(deref);
            }

            if (context.aggregate_function() != null)
            {
                IQueryCompositeElement aggregate = Visit(context.aggregate_function()).GetComposite();

                IQueryElement parentSelect = Visit(context.get_stmt());
                aggregate.Add(parentSelect);
                return(aggregate);
            }

            if (context.get_stmt() != null)
            {
                IQueryCompositeElement parentSelect = Visit(context.get_stmt()).GetComposite();
                if (context.child_value() != null)
                {
                    IQueryElement property = Visit(context.child_value());
                    parentSelect.Add(property);
                }

                return(parentSelect);
            }

            SelectStatement select    = new SelectStatement();
            IQueryElement   className = Visit(context.get_header().class_name());

            select.Add(className);

            if (context.where_clause() != null)
            {
                IQueryElement where = Visit(context.where_clause());
                select.Add(where);
            }

            return(select);
        }
Пример #5
0
        public void DerefTest()
        {
            Property property1 = new Property {
                Type = Property.INT, PropertyId = new PropertyId {
                    Id = 1
                }, Name = "ID"
            };
            Property property2 = new Property {
                Type = Property.STRING, PropertyId = new PropertyId {
                    Id = 2
                }, Name = "Name"
            };
            Mock <IStorable> storable1 = new Mock <IStorable>();
            Oid oid1 = new Oid(Guid.NewGuid(), 1);

            storable1.Setup(s => s.Oid).Returns(oid1);
            storable1.Setup(s => s.Properties).Returns(new Dictionary <Property, object>()
            {
                { property1, 1 }, { property2, "Name1" }
            });

            Mock <IDatabaseParameters> database = new Mock <IDatabaseParameters>();
            Mock <IStorage>            storage  = new Mock <IStorage>();

            Deref deref = new Deref();

            Mock <SelectStatement> selectStatement = new Mock <SelectStatement>();

            selectStatement.Setup(cn => cn.Execute(It.Is <QueryParameters>(qp => qp.Database == database.Object && qp.Storage == storage.Object))).Returns(
                new QueryDTO()
            {
                QueryClass = new Class
                {
                    ClassId = new ClassId {
                        Id = 1, Name = "Test"
                    },
                    Name = "Test"
                },
                QueryObjects = new List <IStorable>()
                {
                    storable1.Object
                }
            });
            deref.Add(selectStatement.Object);

            QueryDTO result = deref.Execute(new QueryParameters {
                Database = database.Object, Storage = storage.Object
            });
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(result.Result.StringOutput);

            XmlNode     resultNode   = doc.GetElementsByTagName("result").Item(0);
            XmlNodeList nodes        = resultNode.ChildNodes;
            XmlNode     storableNode = nodes[0];

            Assert.AreEqual("Test", storableNode.Name);

            XmlNodeList storableNodes = storableNode.ChildNodes;

            XmlNode oidNode = storableNodes[0];

            Assert.AreEqual("Oid", oidNode.Name);
            Assert.AreEqual(oid1.Id.ToString(), oidNode.FirstChild.Value);

            XmlNode IdNode = storableNodes[1];

            Assert.AreEqual("ID", IdNode.Name);
            Assert.AreEqual(1, Int32.Parse(IdNode.FirstChild.Value));

            XmlNode NameNode = storableNodes[2];

            Assert.AreEqual("Name", NameNode.Name);
            Assert.AreEqual("Name1", NameNode.FirstChild.Value);
        }
Пример #6
0
 protected internal virtual Node TransformDeref(Deref deref)
 {
     return(deref.AcceptTransformer(this, true));
 }
 protected internal virtual void TraverseDeref(Deref deref) { deref.Unsupported(); }
 protected internal override void TraverseDeref(Deref deref)
 {
     Dispatch(deref);
 }
Пример #9
0
 protected internal override Node TransformDeref(Deref deref)
 {
     return(Dispatch(deref));
 }
Пример #10
0
 protected internal override T ReduceDeref(Deref deref)
 {
     return(Dispatch(deref));
 }
 protected internal override Node TransformDeref(Deref deref)
 {
     return Dispatch(deref);
 }
        protected internal override void TraverseDeref(Deref deref)
        {
            Traverse(deref.Target);

            var t = Types[deref.Target];
            var t_deref = null as Type;
            if (t != null)
            {
                (t.IsByRef || t.IsPointer).AssertTrue();
                t_deref = t.GetElementType();
            }

            Types.Add(deref, t_deref);
        }
 protected internal override void TraverseDeref(Deref deref)
 {
     Dispatch(deref);
 }
 protected internal override void TraverseDeref(Deref deref)
 {
     var t = deref.Type();
     var is_ptr = t == null || !t.IsByRef;
     if (is_ptr) _writer.Write("*");
     Traverse(deref.Target);
 }
 protected internal virtual void TraverseDeref(Deref deref)
 {
     deref.Unsupported();
 }
 protected internal virtual Node TransformDeref(Deref deref) { return deref.AcceptTransformer(this, true); }