-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUpdateQueryGenerationTests.cs
More file actions
57 lines (50 loc) · 1.95 KB
/
Copy pathUpdateQueryGenerationTests.cs
File metadata and controls
57 lines (50 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using DataKit.SQL.QueryExpressions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Linq;
namespace DataKit.SQL.UnitTests
{
[TestClass]
public class UpdateQueryGenerationTests
{
[TestMethod]
public void Can_Write_Update_With_Values()
{
var query = QueryExpression.Update(
QueryExpression.Table("TestTable"),
new[] { QueryExpression.Column("Value1"), QueryExpression.Column("Value2") },
new[] { QueryExpression.Value(1), QueryExpression.Value(2) }
);
var sql = TestHelpers.ConvertToSql(query, out var parameters);
var value1Parameter = parameters.First();
var value2Parameter = parameters.Skip(1).First();
Assert.AreEqual(1, value1Parameter.Value);
Assert.AreEqual(2, value2Parameter.Value);
Assert.AreEqual(sql, $"UPDATE [TestTable] SET [Value1] = @{value1Parameter.Key}, [Value2] = @{value2Parameter.Key};");
}
[TestMethod]
public void Can_Write_Update_With_Expressions()
{
var query = QueryExpression.Update(
QueryExpression.Table("TestTable"),
new[] { QueryExpression.Column("Value1")},
new[] { QueryExpression.Add(QueryExpression.Column("Value2"), QueryExpression.Value(1)) }
);
var sql = TestHelpers.ConvertToSql(query, out var parameters);
var value1Parameter = parameters.First();
Assert.AreEqual(1, value1Parameter.Value);
Assert.AreEqual(sql, $"UPDATE [TestTable] SET [Value1] = [Value2] + @{value1Parameter.Key};");
}
[TestMethod]
public void Can_Write_Update_With_Where()
{
var query = QueryExpression.Update(
QueryExpression.Table("TestTable"),
new[] { QueryExpression.Column("Value1") },
new[] { QueryExpression.Column("Value2") },
QueryExpression.AreEqual(QueryExpression.Column("Value2"), QueryExpression.Column("Value3"))
);
var sql = TestHelpers.ConvertToSql(query);
Assert.AreEqual(sql, $"UPDATE [TestTable] SET [Value1] = [Value2] WHERE [Value2] = [Value3];");
}
}
}