Skip to content

Commit 48e65aa

Browse files
committed
Add tests for Value column quoting in Single/SingleOrDefault queries. Fix #1234.
1 parent 73e62c7 commit 48e65aa

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

src/FirebirdSql.EntityFrameworkCore.Firebird.Tests/Query/ElementaryTests.cs

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,53 @@ public async Task SelectWithCollate()
209209
StringAssert.Contains(@"CAST(_UTF8'test' AS VARCHAR(4) CHARACTER SET UTF8) COLLATE UNICODE_CI_AI", sql);
210210
}
211211
}
212+
213+
[Test]
214+
public async Task SqlQueryScalarSingleQuotesValueColumn()
215+
{
216+
await using (var db = await GetDbContext<SelectContext>())
217+
{
218+
var result = await db.Database.SqlQueryRaw<int>(@"SELECT 1 AS ""Value"" FROM RDB$DATABASE").SingleAsync();
219+
var sql = db.LastCommandText;
220+
Assert.AreEqual(1, result);
221+
StringAssert.DoesNotContain("Value", sql.Replace(@"""Value""", string.Empty));
222+
}
223+
}
224+
225+
[Test]
226+
public async Task SqlQueryScalarSingleOrDefaultQuotesValueColumn()
227+
{
228+
await using (var db = await GetDbContext<SelectContext>())
229+
{
230+
var result = await db.Database.SqlQueryRaw<int>(@"SELECT 1 AS ""Value"" FROM RDB$DATABASE").SingleOrDefaultAsync();
231+
var sql = db.LastCommandText;
232+
Assert.AreEqual(1, result);
233+
StringAssert.DoesNotContain("Value", sql.Replace(@"""Value""", string.Empty));
234+
}
235+
}
236+
237+
[Test]
238+
public async Task SqlQueryScalarComposedWhereQuotesValueColumn()
239+
{
240+
await using (var db = await GetDbContext<SelectContext>())
241+
{
242+
var query = db.Database.SqlQueryRaw<int>(@"SELECT 1 AS ""Value"" FROM RDB$DATABASE").Where(x => x > 0);
243+
Assert.DoesNotThrowAsync(() => query.LoadAsync());
244+
var sql = db.LastCommandText;
245+
StringAssert.DoesNotContain("Value", sql.Replace(@"""Value""", string.Empty));
246+
}
247+
}
248+
249+
[Test]
250+
public async Task EntitySingleOrDefaultQuotesIdentifiers()
251+
{
252+
await using (var db = await GetDbContext<SelectContext>())
253+
{
254+
var result = await db.Set<MonAttachment>().OrderBy(x => x.AttachmentId).Take(1).SingleOrDefaultAsync();
255+
var sql = db.LastCommandText;
256+
Assert.IsNotNull(result);
257+
}
258+
}
212259
}
213260

214261
class SelectContext : FbTestDbContext

0 commit comments

Comments
 (0)