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()); }
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); }
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); }
/// <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); }
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); }
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); }
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); }
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); }