示例#1
0
        public void ToString_WithJoinTable()
        {
            var schema    = "fromSchema";
            var name      = "fromTable";
            var tableName = new EntityName(schema, name);

            var fromColumn1 = "fromCol1";
            var fromColumn2 = "fromCol2";
            var fromAlias2  = "fromAlias2";
            var columns     = new IItemName[]  {
                new ItemName(fromColumn1),
                new ColumnName(fromColumn2, fromAlias2)
            };
            var fromTable = new FromTable(tableName, columns);

            IEntityName joinTableName = new EntityName("joinTable");

            IItemName[] selectColumns = new IItemName[2] {
                new ItemName("joinTblCol1"), new ItemName("joinTblCol2")
            };
            var joinTable = new JoinTable(joinTableName, selectColumns);

            fromTable.Join(joinTable);

            var selectClause = fromTable.GetSelectClause();
            var testString   = $"[{schema}].[{name}].[{fromColumn1}], [{schema}].[{name}].[{fromColumn2}] as [{fromAlias2}], {joinTableName}.{selectColumns[0]}, {joinTableName}.{selectColumns[1]}";

            Assert.AreEqual(testString, selectClause);
        }
示例#2
0
 public void Constructor_NullTableNameArgument()
 {
     IItemName[] selectColumns = new IItemName[1] {
         new ColumnName("name", "alias")
     };
     var table = new FromTable(null, selectColumns);
 }
示例#3
0
 public void Constructor_NullTableNameArgument()
 {
     IItemName[] selectColumns = new IItemName[1] {
         new ItemName("joinColumn")
     };
     var table = new JoinTable(null, selectColumns);
 }
示例#4
0
        public void Constructor_EmptyColumnsArgument()
        {
            IEntityName tableName = new EntityName("tableName");

            IItemName[] selectColumns = new IItemName[0];

            var table = new FromTable(tableName, selectColumns);
        }
示例#5
0
 private static DAL.Entities.ItemName Assemble(IItemName itemName)
 {
     return(new DAL.Entities.ItemName
     {
         Name = itemName.Name,
         LanguageType = Assemble(itemName.LanguageType)
     });
 }
示例#6
0
        public void Constructor_EmptyColumnsArgument()
        {
            IEntityName tableName = new EntityName("joinTable");

            IItemName[] selectColumns = new IItemName[0];
            var         table         = new JoinTable(tableName, selectColumns);

            Assert.AreEqual(0, table.Columns.Length);
        }
示例#7
0
        public void Constructor_OneNullColumnArgument()
        {
            IEntityName tableName = new EntityName("joinTable");

            IItemName[] selectColumns = new IItemName[2] {
                new ItemName("joinColumn"), null
            };
            var table = new JoinTable(tableName, selectColumns);
        }
示例#8
0
        public void Constructor_OneNullColumnArgument()
        {
            IEntityName tableName = new EntityName("tableName");

            IItemName[] selectColumns = new IItemName[2] {
                new ColumnName("name", "alias"), null
            };

            var table = new FromTable(tableName, selectColumns);
        }
示例#9
0
        public void ToString_NoJoinColumns()
        {
            IEntityName tableName = new EntityName("joinTable");

            IItemName[] selectColumns = new IItemName[1] {
                new ItemName("selectColumn")
            };
            var table = new JoinTable(tableName, selectColumns);

            Assert.AreEqual(string.Empty, table.ToString());
        }
示例#10
0
        public void AddJoinColumn(
            IEntityName leftTable,
            IItemName leftColumnName,
            IItemName rightColumnName,
            RelationalOperators relationalOperator = RelationalOperators.Equal,
            LogicalOperators logicalOperator       = LogicalOperators.And)
        {
            var leftColumn = new JoinColumn(leftTable, leftColumnName);

            AddJoinColumn(leftColumn, GetJoinColumn(rightColumnName), relationalOperator, logicalOperator);
        }
示例#11
0
        public void ToString_WithSchemaAndOneColumn()
        {
            var schema    = "fromSchema";
            var name      = "fromTable";
            var tableName = new EntityName(schema, name);

            var fromColumn1 = "fromCol1";
            var columns     = new IItemName[] { new ItemName(fromColumn1) };
            var ft          = new FromTable(tableName, columns);

            Assert.AreEqual($"select [{schema}].[{name}].[{fromColumn1}]\r\nfrom [{schema}].[{name}]\r\n", ft.ToString());
        }
示例#12
0
        public void Constructor_WithColumns()
        {
            IEntityName tableName = new EntityName("joinTable");

            IItemName[] selectColumns = new IItemName[1] {
                new ItemName("joinColumn")
            };
            var table = new JoinTable(tableName, selectColumns);

            Assert.AreEqual(tableName, table.TableName);
            Assert.AreEqual(selectColumns, table.Columns);
        }
示例#13
0
        public void Constructor()
        {
            IEntityName tableName = new EntityName("tableName");

            IItemName[] selectColumns = new IItemName[1] {
                new ColumnName("name", "alias")
            };
            var table = new FromTable(tableName, selectColumns);

            Assert.AreEqual(tableName, table.TableName);
            Assert.AreEqual(selectColumns, table.Columns);
            Assert.IsNull(table.JoinTables);
        }
示例#14
0
        public void AddJoinColumn()
        {
            IEntityName tableName = new EntityName("joinTable");

            IItemName[] selectColumns = new IItemName[1] {
                new ItemName("joinColumn")
            };
            var        table         = new JoinTable(tableName, selectColumns);
            EntityName fromTableName = "fromTable";
            ItemName   leftColumn    = "leftJoinColumn";
            ItemName   rightColumn   = "rightJoinColumn";

            table.AddJoinColumn(fromTableName, leftColumn, rightColumn);
        }
示例#15
0
        public void ToString_WithoutSchema()
        {
            var name      = "fromTable";
            var tableName = new EntityName(name);

            var fromColumn1 = "fromCol1";
            var fromColumn2 = "fromCol2";
            var fromAlias2  = "fromAlias2";
            var columns     = new IItemName[]  {
                new ItemName(fromColumn1),
                new ColumnName(fromColumn2, fromAlias2)
            };
            var ft = new FromTable(tableName, columns);

            Assert.AreEqual($"select [{name}].[{fromColumn1}], [{name}].[{fromColumn2}] as [{fromAlias2}]\r\nfrom [{name}]\r\n", ft.ToString());
        }
示例#16
0
        public void ToString_OneJoinColumn()
        {
            IEntityName tableName = new EntityName("joinTable");

            IItemName[] selectColumns = new IItemName[1] {
                new ItemName("selectColumn")
            };
            var        table         = new JoinTable(tableName, selectColumns);
            EntityName fromTableName = "fromTable";
            ItemName   leftColumn1   = "leftJoinColumn";
            ItemName   rightColumn1  = "rightJoinColumn";

            table.AddJoinColumn(fromTableName, leftColumn1, rightColumn1);

            var testString = $"join {tableName} on {fromTableName}.{leftColumn1}{RelationalOperators.Equal.ToSqlString()}{table.TableName}.{rightColumn1}";

            Assert.AreEqual(testString, table.ToString());
        }
示例#17
0
 public JoinColumn(IEntityName tableName, IItemName columnName)
 {
     TableName  = tableName ?? throw new ArgumentNullException(nameof(tableName));
     ColumnName = columnName ?? throw new ArgumentNullException(nameof(columnName));
 }
示例#18
0
 public JoinColumn GetJoinColumn(IItemName rightColumnName)
 {
     return(new JoinColumn(TableName, rightColumnName));
 }
示例#19
0
 public void Join(IItemName columnName, Directions sortDirection = Directions.Ascending)
 {
     NextExpression = new SortExpression(columnName, sortDirection);
 }
示例#20
0
 public bool Equals(IItemName other)
 {
     return(other != null &&
            Name == other.Name);
 }
示例#21
0
 public SortExpression(IItemName columnName, Directions sortDirection = Directions.Ascending)
 {
     _columnName    = columnName ?? throw new ArgumentNullException(nameof(columnName));
     _sortDirection = sortDirection;
 }