public void From_SourceNames_CrossAndInnerJoin_WithAlias() { const string expected = "From TabA As A, TabB As B Inner Join TabC As C On B.F1 = C.F2"; var sourceA = new SourceAlias(new NamedSource("TabA"), "A"); var sourceB = new SourceAlias(new NamedSource("TabB"), "B"); var sourceC = new SourceAlias(new NamedSource("TabC"), "C"); Generator.From(sourceA).From(sourceB).InnerJoin(sourceB, sourceC, "F1", "F2"); Assert.AreEqual(expected, Generator.ToString()); }
/// <summary> /// Validates properties needed for audience segmentation. /// </summary> /// <exception cref="ArgumentNullOrEmptyException">Throws when one of parameters is null or empty.</exception> public void ValidateForAudienceSegmentation() { ValidateTemplateWithDependencies(); SourceAudience.CheckArgumentNull("SourceAudience"); UserConnection.CheckArgumentNull("UserConnection"); SourceAlias.CheckArgumentNull("SourceAlias"); EntityIdSourceColumn.CheckArgumentNull("EntityIdSourceColumn"); SourceColumnForFilter.CheckArgumentNull("SourceColumnForFilter"); TargetTable.CheckArgumentNull("TargetTable"); EntityIdTargetColumn.CheckArgumentNull("EntityIdTargetColumn"); ReplicaIdTargetColumn.CheckArgumentNull("ReplicaIdTargetColumn"); RecordIdTargetColumn.CheckArgumentNull("RecordIdTargetColumn"); }
public void ConditionFieldWithSubSelectSource_WithAlias() { const string expected = "X.F1 = 1"; var sqlGenerator = new SqlGenerator(); var subSelect = sqlGenerator.From("Tab1").Select("F1").SqlStatement; var source = new SourceAlias(new SubSelectSource(subSelect), "X"); Conditions.Add(new Field("F1", source), RelationalOperators.Equal, 1); var actual = GenerateSqlString(); Assert.AreEqual(expected, actual); }