Skip to content

Commit 813f7ad

Browse files
committed
Fixed INSERT test with hyerachical CTE.
1 parent bc87877 commit 813f7ad

File tree

3 files changed

+43
-2
lines changed

3 files changed

+43
-2
lines changed

Tests/CSQLQueryExpress.Tests/CSQLQueryExpress.Tests.csproj

+3
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@
5757
<None Update="UnitTests\DatePartStatements\TestDatePartWithDateNullable.txt">
5858
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
5959
</None>
60+
<None Update="UnitTests\InsertStatements\TestInsertFromHyerarchicalSelectCte.txt">
61+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
62+
</None>
6063
<None Update="UnitTests\MultipleResultSetsStatements\TestMultipleResultSets.txt">
6164
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
6265
</None>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
WITH _t0 AS
2+
(
3+
SELECT
4+
_t0.[CompanyName],
5+
@p0 AS [Phone]
6+
FROM [dbo].[Customers] AS _t0
7+
),
8+
_t1 AS
9+
(
10+
SELECT
11+
_t1.*
12+
FROM [dbo].[Suppliers] AS _t1
13+
INNER JOIN _t0 ON (_t1.[CompanyName] = _t0.[CompanyName])
14+
),
15+
_t2 AS
16+
(
17+
SELECT
18+
_t2.*
19+
FROM [dbo].[Shippers] AS _t2
20+
INNER JOIN _t0 ON (_t2.[CompanyName] = _t0.[CompanyName])
21+
)
22+
23+
INSERT INTO [dbo].[Shippers]
24+
([CompanyName], [Phone])
25+
SELECT
26+
_t2.*
27+
FROM _t0
28+
INNER JOIN _t1 ON (_t0.[CompanyName] = _t1.[CompanyName])
29+
INNER JOIN _t2 ON (_t2.[CompanyName] = _t1.[CompanyName])

Tests/CSQLQueryExpress.Tests/UnitTests/QueryInsertUnitTest.cs

+11-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using NUnit.Framework.Internal;
22
using QueryExecution.Dal.NorthwindPubs;
33
using System.Numerics;
4+
using System.Runtime.CompilerServices;
45

56
namespace CSQLQueryExpress.Tests.UnitTests
67
{
@@ -146,8 +147,9 @@ public void TestInsertFromHyerarchicalSelectCte()
146147
Assert.That(compiledQuery.Parameters.Count, Is.EqualTo(1));
147148
Assert.That(compiledQuery.Parameters[0].Value, Is.EqualTo("Ciao"));
148149

149-
Assert.That(compiledQuery.Statement.Replace(Environment.NewLine, string.Empty),
150-
Is.EqualTo(@"WITH _t0 AS (SELECT _t0.[CompanyName], @p0 AS [Phone] FROM [dbo].[Customers] AS _t0) INSERT INTO [dbo].[Shippers] ([CompanyName], [Phone]) SELECT _t0.[CompanyName], _t0.[Phone] FROM _t1"));
150+
var statement = GetSQLStatement();
151+
152+
Assert.That(compiledQuery.Statement, Is.EqualTo(statement));
151153
}
152154

153155
[Test]
@@ -172,5 +174,12 @@ public void TestInsertParameters()
172174
Assert.That(compiledQuery.Statement.Replace(Environment.NewLine, string.Empty),
173175
Is.EqualTo(@"INSERT INTO [dbo].[Region] ([RegionID], [RegionDescription]) VALUES (((SELECT MAX(_t0.[RegionID]) FROM [dbo].[Region] AS _t0) + @p0), @p1)"));
174176
}
177+
178+
private string GetSQLStatement([CallerMemberName] string memeberName = null)
179+
{
180+
var statement = File.ReadAllText($@"UnitTests\InsertStatements\{memeberName}.txt");
181+
182+
return statement;
183+
}
175184
}
176185
}

0 commit comments

Comments
 (0)