private void buildSetterList(MatchResult result, UpdateBuilder builder)
 {
     MatchResult multiple = result.Matches[SqlGrammar.SetterList.Multiple.Name];
     if (multiple.IsMatch)
     {
         MatchResult first = multiple.Matches[SqlGrammar.SetterList.Multiple.First];
         Setter setter = buildSetter(first);
         builder.AddSetter(setter);
         MatchResult remaining = multiple.Matches[SqlGrammar.SetterList.Multiple.Remaining];
         buildSetterList(remaining, builder);
         return;
     }
     MatchResult single = result.Matches[SqlGrammar.SetterList.Single];
     if (single.IsMatch)
     {
         Setter setter = buildSetter(single);
         builder.AddSetter(setter);
         return;
     }
     throw new InvalidOperationException();
 }
 public void TestUpdate_MultipleSetters()
 {
     Table table = new Table("Table");
     UpdateBuilder builder = new UpdateBuilder(table);
     builder.AddSetter(new Setter(builder.Table.Column("Column1"), new NumericLiteral(1)));
     builder.AddSetter(new Setter(builder.Table.Column("Column2"), new StringLiteral("Hello")));
     Formatter formatter = new Formatter();
     string commandText = formatter.GetCommandText(builder);
     string expected = "UPDATE Table SET Column1 = 1, Column2 = 'Hello'";
     Assert.AreEqual(expected, commandText, "The wrong SQL was generated.");
 }
 public void TestUpdate_Where()
 {
     Table table = new Table("Table");
     UpdateBuilder builder = new UpdateBuilder(table);
     builder.AddSetter(new Setter(builder.Table.Column("Column"), new NumericLiteral(1)));
     builder.AddWhere(new EqualToFilter(builder.Table.Column("Column"), new NumericLiteral(2)));
     Formatter formatter = new Formatter();
     string commandText = formatter.GetCommandText(builder);
     string expected = "UPDATE Table SET Column = 1 WHERE Column = 2";
     Assert.AreEqual(expected, commandText, "The wrong SQL was generated.");
 }
 public void TestUpdate_AliasedTable_WithAs()
 {
     Table table = new Table("Table");
     UpdateBuilder builder = new UpdateBuilder(table, "t");
     builder.AddSetter(new Setter(builder.Table.Column("Column1"), new NumericLiteral(1)));
     builder.AddSetter(new Setter(builder.Table.Column("Column2"), new StringLiteral("Hello")));
     Formatter formatter = new Formatter();
     string commandText = formatter.GetCommandText(builder, new CommandOptions() { AliasColumnSourcesUsingAs = true });
     string expected = "UPDATE Table AS t SET Column1 = 1, Column2 = 'Hello'";
     Assert.AreEqual(expected, commandText, "The wrong SQL was generated.");
 }