Skip to content

Commit 89bff9c

Browse files
committed
Add tests for SqlHelper.QuoteIdentifierXxx methods
1 parent 3bd8695 commit 89bff9c

File tree

1 file changed

+171
-0
lines changed

1 file changed

+171
-0
lines changed
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
// Copyright (C) 2020 Xtensive LLC.
2+
// All rights reserved.
3+
// For conditions of distribution and use, see license.
4+
// Created by: Alexey Kulakov
5+
// Created: 2020.04.23
6+
7+
using System;
8+
using System.Collections.Generic;
9+
using System.Text;
10+
using NUnit.Framework;
11+
using Xtensive.Sql;
12+
13+
namespace Xtensive.Orm.Tests.Sql
14+
{
15+
[TestFixture]
16+
public sealed class SqlHelperQuotationTest
17+
{
18+
public static IEnumerable<(string[] testNames, string expectedResult)> QuotesRegularNames()
19+
{
20+
yield return (new string[] { "name1" }, "\"name1\"");
21+
yield return (new string[] { "n\"\"\"1" }, "\"n\"\"\"\"\"\"1\"");
22+
yield return (new string[] { "name1", "name2" }, "\"name1\".\"name2\"");
23+
yield return (new string[] { "n\"\"\"1", "n\"\"\"2" }, "\"n\"\"\"\"\"\"1\".\"n\"\"\"\"\"\"2\"");
24+
yield return (new string[] { "name1", "name2", "name3" }, "\"name1\".\"name2\".\"name3\"");
25+
yield return (new string[] { "n\"\"\"1", "n\"\"\"2", "n\"\"\"3" }, "\"n\"\"\"\"\"\"1\".\"n\"\"\"\"\"\"2\".\"n\"\"\"\"\"\"3\"");
26+
}
27+
28+
public static IEnumerable<(string[] testNames, string expectedResult)> QuotesEmptyNames()
29+
{
30+
yield return (new string[] {"name1", "name2", ""}, "\"name1\".\"name2\"");
31+
yield return (new string[] { "name1", "", "name3" }, "\"name1\".\"name3\"");
32+
yield return (new string[] { "", "name2", "name3" }, "\"name2\".\"name3\"");
33+
yield return (new string[] { "name1", "", "" } , "\"name1\"");
34+
yield return (new string[] { "", "", "name3" }, "\"name3\"");
35+
yield return (new string[] { "", "name2", "" }, "\"name2\"");
36+
yield return (new string[] { "", "", "" }, string.Empty);
37+
}
38+
39+
public static IEnumerable<(string[] testNames, string expectedResult)> QuotesNullNames()
40+
{
41+
yield return (new string[] { "name1", "name2", null }, "\"name1\".\"name2\"");
42+
yield return (new string[] { "name1", null, "name3" }, "\"name1\".\"name3\"");
43+
yield return (new string[] { null, "name2", "name3" }, "\"name2\".\"name3\"");
44+
yield return (new string[] { "name1", null, null }, "\"name1\"");
45+
yield return (new string[] { null, null, "name3" }, "\"name3\"");
46+
yield return (new string[] { null, "name2", null }, "\"name2\"");
47+
yield return (new string[] { null, null, null }, string.Empty);
48+
}
49+
50+
public static IEnumerable<(string[] testNames, string expectedResult)> BracketsRegularNames()
51+
{
52+
yield return (new string[] { "name1" }, "[name1]");
53+
yield return (new string[] { "n[[[1" }, "[n[[[1]");
54+
yield return (new string[] { "n]]]1" }, "[n]]]]]]1]");
55+
yield return (new string[] { "name1", "name2" }, "[name1].[name2]");
56+
yield return (new string[] { "n[[[1", "n[[[2" }, "[n[[[1].[n[[[2]");
57+
yield return (new string[] { "n]]]1", "n]]]2" }, "[n]]]]]]1].[n]]]]]]2]");
58+
yield return (new string[] { "name1", "name2", "name3" }, "[name1].[name2].[name3]");
59+
yield return (new string[] { "n[[[1", "n[[[2", "n[[[3" }, "[n[[[1].[n[[[2].[n[[[3]");
60+
yield return (new string[] { "n]]]1", "n]]]2", "n]]]3" }, "[n]]]]]]1].[n]]]]]]2].[n]]]]]]3]");
61+
}
62+
63+
public static IEnumerable<(string[] testNames, string expectedResult)> BracketsEmptyNames()
64+
{
65+
yield return (new string[] { "name1", "name2", "" }, "[name1].[name2]");
66+
yield return (new string[] { "name1", "", "name3" }, "[name1].[name3]");
67+
yield return (new string[] { "", "name2", "name3" }, "[name2].[name3]");
68+
yield return (new string[] { "name1", "", "" }, "[name1]");
69+
yield return (new string[] { "", "", "name3" }, "[name3]");
70+
yield return (new string[] { "", "name2", "" }, "[name2]");
71+
yield return (new string[] { "", "", "" }, string.Empty);
72+
}
73+
74+
public static IEnumerable<(string[] testNames, string expectedResult)> BracketsNullNames()
75+
{
76+
yield return (new string[] { "name1", "name2", null }, "[name1].[name2]");
77+
yield return (new string[] { "name1", null, "name3" }, "[name1].[name3]");
78+
yield return (new string[] { null, "name2", "name3" }, "[name2].[name3]");
79+
yield return (new string[] { "name1", null, null }, "[name1]");
80+
yield return (new string[] { null, null, "name3" }, "[name3]");
81+
yield return (new string[] { null, "name2", null }, "[name2]");
82+
yield return (new string[] { null, null, null }, string.Empty);
83+
}
84+
85+
public static IEnumerable<(string[] testNames, string expectedResult)> BackTickRegularNames()
86+
{
87+
yield return (new string[] { "name1" }, "`name1`");
88+
yield return (new string[] { "n```1" }, "`n``````1`");
89+
yield return (new string[] { "name1", "name2" }, "`name1`.`name2`");
90+
yield return (new string[] { "n```1", "n```2" }, "`n``````1`.`n``````2`");
91+
yield return (new string[] { "name1", "name2", "name3" }, "`name1`.`name2`.`name3`");
92+
yield return (new string[] { "n```1", "n```2", "n```3" }, "`n``````1`.`n``````2`.`n``````3`");
93+
}
94+
95+
public static IEnumerable<(string[] testNames, string expectedResult)> BackTickEmptyNames()
96+
{
97+
yield return (new string[] { "name1", "name2", "" }, "`name1`.`name2`");
98+
yield return (new string[] { "name1", "", "name3" }, "`name1`.`name3`");
99+
yield return (new string[] { "", "name2", "name3" }, "`name2`.`name3`");
100+
yield return (new string[] { "name1", "", "" }, "`name1`");
101+
yield return (new string[] { "", "", "name3" }, "`name3`");
102+
yield return (new string[] { "", "name2", "" }, "`name2`");
103+
yield return (new string[] { "", "", "" }, string.Empty);
104+
}
105+
106+
public static IEnumerable<(string[] testNames, string expectedResult)> BackTickNullNames()
107+
{
108+
yield return (new string[] { "name1", "name2", null }, "`name1`.`name2`");
109+
yield return (new string[] { "name1", null, "name3" }, "`name1`.`name3`");
110+
yield return (new string[] { null, "name2", "name3" }, "`name2`.`name3`");
111+
yield return (new string[] { "name1", null, null }, "`name1`");
112+
yield return (new string[] { null, null, "name3" }, "`name3`");
113+
yield return (new string[] { null, "name2", null }, "`name2`");
114+
yield return (new string[] { null, null, null }, string.Empty);
115+
}
116+
117+
[Test]
118+
[TestCaseSource(nameof(SqlHelperQuotationTest.QuotesRegularNames))]
119+
public void QuoteIndentifierWithQuotesWithRegularNames((string[] testNames, string expectedResult) testData)
120+
=> Assert.That(SqlHelper.QuoteIdentifierWithQuotes(testData.testNames),
121+
Is.EqualTo(testData.expectedResult));
122+
123+
[Test]
124+
[TestCaseSource(nameof(SqlHelperQuotationTest.QuotesEmptyNames))]
125+
public void QuoteIndentifierWithQuotesWithEmptyNames((string[] testNames, string expectedResult) testData)
126+
=> Assert.That(SqlHelper.QuoteIdentifierWithQuotes(testData.testNames),
127+
Is.EqualTo(testData.expectedResult));
128+
129+
[Test]
130+
[TestCaseSource(nameof(SqlHelperQuotationTest.QuotesNullNames))]
131+
public void QuoteIndentifierWithQuotesWithNullNames((string[] testNames, string expectedResult) testData)
132+
=> Assert.That(SqlHelper.QuoteIdentifierWithQuotes(testData.testNames),
133+
Is.EqualTo(testData.expectedResult));
134+
135+
[Test]
136+
[TestCaseSource(nameof(SqlHelperQuotationTest.BracketsRegularNames))]
137+
public void QuoteIdentifierWithBracketsWithRegularNames((string[] testNames, string expectedResult) testData)
138+
=> Assert.That(SqlHelper.QuoteIdentifierWithBrackets(testData.testNames),
139+
Is.EqualTo(testData.expectedResult));
140+
141+
[Test]
142+
[TestCaseSource(nameof(SqlHelperQuotationTest.BracketsEmptyNames))]
143+
public void QuoteIdentifierWithBracketsWithEmptyNames((string[] testNames, string expectedResult) testData)
144+
=> Assert.That(SqlHelper.QuoteIdentifierWithBrackets(testData.testNames),
145+
Is.EqualTo(testData.expectedResult));
146+
147+
[Test]
148+
[TestCaseSource(nameof(SqlHelperQuotationTest.BracketsNullNames))]
149+
public void QuoteIdentifierWithBracketsWithNullNames((string[] testNames, string expectedResult) testData)
150+
=> Assert.That(SqlHelper.QuoteIdentifierWithBrackets(testData.testNames),
151+
Is.EqualTo(testData.expectedResult));
152+
153+
[Test]
154+
[TestCaseSource(nameof(SqlHelperQuotationTest.BackTickRegularNames))]
155+
public void QuoteIdentifierWithBackTicksWithRegularNames((string[] testNames, string expectedResult) testData)
156+
=> Assert.That(SqlHelper.QuoteIdentifierWithBackTick(testData.testNames),
157+
Is.EqualTo(testData.expectedResult));
158+
159+
[Test]
160+
[TestCaseSource(nameof(SqlHelperQuotationTest.BackTickEmptyNames))]
161+
public void QuoteIdentifierWithBackTicksWithEmptyNames((string[] testNames, string expectedResult) testData)
162+
=> Assert.That(SqlHelper.QuoteIdentifierWithBackTick(testData.testNames),
163+
Is.EqualTo(testData.expectedResult));
164+
165+
[Test]
166+
[TestCaseSource(nameof(SqlHelperQuotationTest.BackTickNullNames))]
167+
public void QuoteIdentifierWithBackTicksWithNullNames((string[] testNames, string expectedResult) testData)
168+
=> Assert.That(SqlHelper.QuoteIdentifierWithBackTick(testData.testNames),
169+
Is.EqualTo(testData.expectedResult));
170+
}
171+
}

0 commit comments

Comments
 (0)