Пример #1
0
        public void FieldTest()
        {
            string expected = @"<?xml version=""1.0"" encoding=""utf-8""?>" +
                              "<field>CUSTOMERID</field>";

            Stream            stream      = new MemoryStream();
            XmlWriterSettings xmlSettings = new XmlWriterSettings
            {
                Encoding = Encoding.GetEncoding("UTF-8")
            };

            IaXmlWriter   xml     = new IaXmlWriter(stream, xmlSettings);
            SelectBuilder builder = new SelectBuilder();

            ISelect[] fields = builder.Field("CUSTOMERID").GetFields();

            foreach (var field in fields)
            {
                field.WriteXml(ref xml);
            }

            xml.Flush();

            stream.Position = 0;
            StreamReader reader = new StreamReader(stream);

            Assert.Equal(expected, reader.ReadToEnd());
        }
Пример #2
0
        public void EmptyOrderByTest()
        {
            string expected = @"<?xml version=""1.0"" encoding=""utf-8""?>
<function controlid=""unittest"">
    <query>
        <select>
            <field>CUSTOMERID</field>
        </select>
        <object>CLASS</object>
        <options />
    </query>
</function>";

            SelectBuilder builder = new SelectBuilder();

            ISelect[] fields = builder.Field("CUSTOMERID").GetFields();

            IQueryFunction query = new QueryFunction("unittest")
            {
                FromObject   = "CLASS",
                SelectFields = fields,
                OrderBy      = new IOrder[0]
            };

            this.CompareXml(expected, query);
        }
Пример #3
0
        public void EmptyObjectNameTest()
        {
            Stream            stream      = new MemoryStream();
            XmlWriterSettings xmlSettings = new XmlWriterSettings
            {
                Encoding = Encoding.GetEncoding("UTF-8")
            };

            IaXmlWriter xml = new IaXmlWriter(stream, xmlSettings);

            SelectBuilder builder = new SelectBuilder();

            ISelect[] fields = builder.Field("CUSTOMERID").GetFields();

            IQueryFunction query = new QueryFunction("unittest")
            {
                FromObject   = "",
                SelectFields = fields
            };

            var ex = Record.Exception(() => query.WriteXml(ref xml));

            Assert.IsType <ArgumentException>(ex);
            Assert.Equal("From Object is required for query; set through method from setter.", ex.Message);
        }
Пример #4
0
 /// <summary>
 /// Add fields of the relation to the select statement.
 /// </summary>
 /// <param name="selectBuilder"></param>
 /// <param name="relation"></param>
 /// <returns></returns>
 public static SelectBuilder Fields(
     this SelectBuilder selectBuilder,
     Relation relation
     )
 {
     foreach (var column in relation.Columns)
     {
         selectBuilder.Field(column.AsExpression);
     }
     return(selectBuilder);
 }
Пример #5
0
        public void NegativePagesizeTest()
        {
            SelectBuilder builder = new SelectBuilder();

            ISelect[] fields = builder.Field("CUSTOMERID").GetFields();

            QueryFunction query = new QueryFunction("unittest")
            {
                FromObject   = "CUSTOMER",
                SelectFields = fields,
            };

            var ex = Record.Exception(() => query.PageSize = -1);

            Assert.IsType <IntacctException>(ex);
            Assert.Equal("PageSize cannot be negative. Set PageSize greater than zero.", ex.Message);
        }
Пример #6
0
        public void OrderByTest()
        {
            string expected = @"<?xml version=""1.0"" encoding=""utf-8""?>
<function controlid=""unittest"">
    <query>
        <select>
            <field>CUSTOMERID</field>
        </select>
        <object>CLASS</object>
        <orderby>
            <order>
                <field>TOTALDUE</field>
                <ascending />
            </order>
            <order>
                <field>RECORDNO</field>
                <descending />
            </order>
        </orderby>
        <options />
    </query>
</function>";

            SelectBuilder builder = new SelectBuilder();

            ISelect[] fields = builder.Field("CUSTOMERID").GetFields();

            IOrder[] orderBy = (new OrderBuilder()).Ascending("TOTALDUE").Descending("RECORDNO").GetOrders();

            IQueryFunction query = new QueryFunction("unittest")
            {
                FromObject   = "CLASS",
                SelectFields = fields,
                OrderBy      = orderBy
            };

            this.CompareXml(expected, query);
        }
Пример #7
0
        public void AllParamsTest()
        {
            string expected = @"<?xml version=""1.0"" encoding=""utf-8""?>
<function controlid=""unittest"">
    <query>
        <select>
            <field>CUSTOMERID</field>
            <field>RECORDNO</field>
        </select>
        <object>CUSTOMER</object>
        <docparid>REPORT</docparid>
        <options>
            <caseinsensitive>true</caseinsensitive>
            <showprivate>true</showprivate>
        </options>
        <pagesize>10</pagesize>
        <offset>5</offset>
    </query>
</function>";

            SelectBuilder builder = new SelectBuilder();

            ISelect[] fields = builder.Field("CUSTOMERID").Field("RECORDNO").GetFields();

            IQueryFunction query = new QueryFunction("unittest")
            {
                FromObject      = "CUSTOMER",
                DocParId        = "REPORT",
                SelectFields    = fields,
                CaseInsensitive = true,
                ShowPrivate     = true,
                PageSize        = 10,
                Offset          = 5
            };

            this.CompareXml(expected, query);
        }
Пример #8
0
        public void AggregateFunctionsTest()
        {
            string expected = @"<?xml version=""1.0"" encoding=""utf-8""?>
<function controlid=""unittest"">
    <query>
        <select>
            <field>CUSTOMERID</field>
            <avg>TOTALDUE</avg>
            <min>WHENDUE</min>
            <max>TOTALENTERED</max>
            <sum>TOTALDUE</sum>
            <count>RECORDNO</count>
        </select>
        <object>ARINVOICE</object>
        <options />
    </query>
</function>";

            SelectBuilder builder = new SelectBuilder();

            ISelect[] fields = builder.Field("CUSTOMERID").
                               Average("TOTALDUE").
                               Minimum("WHENDUE").
                               Maximum("TOTALENTERED").
                               Sum("TOTALDUE").
                               Count("RECORDNO").
                               GetFields();

            IQueryFunction query = new QueryFunction("unittest")
            {
                FromObject   = "ARINVOICE",
                SelectFields = fields
            };

            this.CompareXml(expected, query);
        }