Skip to content

Commit

Permalink
Update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ranma42 committed Feb 9, 2025
1 parent 61b7a88 commit c8c0647
Showing 1 changed file with 113 additions and 12 deletions.
125 changes: 113 additions & 12 deletions test/EFCore.Sqlite.FunctionalTests/BuiltInDataTypesSqliteTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1400,12 +1400,6 @@ public virtual void Cant_query_OrderBy_of_converted_types()
.Where(e => e.PartitionId == 205);

var ex = Assert.Throws<NotSupportedException>(
() => query
.OrderBy(e => e.TestNullableDecimal)
.First());
Assert.Equal(SqliteStrings.OrderByNotSupported("decimal"), ex.Message);

ex = Assert.Throws<NotSupportedException>(
() => query
.OrderBy(e => e.TestNullableDateTimeOffset)
.First());
Expand Down Expand Up @@ -1457,12 +1451,6 @@ public virtual void Cant_query_ThenBy_of_converted_types()
.OrderBy(e => e.PartitionId);

var ex = Assert.Throws<NotSupportedException>(
() => query
.ThenBy(e => e.TestNullableDecimal)
.First());
Assert.Equal(SqliteStrings.OrderByNotSupported("decimal"), ex.Message);

ex = Assert.Throws<NotSupportedException>(
() => query
.ThenBy(e => e.TestNullableDateTimeOffset)
.First());
Expand All @@ -1481,6 +1469,119 @@ public virtual void Cant_query_ThenBy_of_converted_types()
Assert.Equal(SqliteStrings.OrderByNotSupported("ulong"), ex.Message);
}


[ConditionalFact]
public virtual void Can_query_OrderBy_of_converted_types()
{
using var context = CreateContext();
var min = new BuiltInNullableDataTypes
{
Id = 221,
PartitionId = 207,
TestNullableDecimal = 2.000000000000001m,
TestNullableDateTimeOffset = new DateTimeOffset(2018, 1, 1, 12, 0, 0, TimeSpan.Zero),
TestNullableTimeSpan = TimeSpan.FromDays(2),
TestNullableUnsignedInt64 = 0
};
context.Add(min);

var max = new BuiltInNullableDataTypes
{
Id = 222,
PartitionId = 207,
TestNullableDecimal = 10.000000000000001m,
TestNullableDateTimeOffset = new DateTimeOffset(2018, 1, 1, 11, 0, 0, TimeSpan.FromHours(-2)),
TestNullableTimeSpan = TimeSpan.FromDays(10),
TestNullableUnsignedInt64 = long.MaxValue + 1ul
};
context.Add(max);

context.SaveChanges();

Fixture.TestSqlLoggerFactory.Clear();

var query = context.Set<BuiltInNullableDataTypes>()
.Where(e => e.PartitionId == 207);

var results = query
.OrderBy(e => e.TestNullableDecimal)
.Select(e => e.Id)
.First();

AssertSql(
"""
SELECT "b"."Id"
FROM "BuiltInNullableDataTypes" AS "b"
WHERE "b"."PartitionId" = 207
ORDER BY "b"."TestNullableDecimal" COLLATE EF_DECIMAL
LIMIT 1
""");

var expectedResults = query.AsEnumerable()
.OrderBy(e => e.TestNullableDecimal)
.Select(e => e.Id)
.First();

Assert.Equal(expectedResults, results);
}

[ConditionalFact]
public virtual void Can_query_ThenBy_of_converted_types()
{
using var context = CreateContext();
var min = new BuiltInNullableDataTypes
{
Id = 223,
PartitionId = 208,
TestNullableDecimal = 2.000000000000001m,
TestNullableDateTimeOffset = new DateTimeOffset(2018, 1, 1, 12, 0, 0, TimeSpan.Zero),
TestNullableTimeSpan = TimeSpan.FromDays(2),
TestNullableUnsignedInt64 = 0
};
context.Add(min);

var max = new BuiltInNullableDataTypes
{
Id = 224,
PartitionId = 208,
TestNullableDecimal = 10.000000000000001m,
TestNullableDateTimeOffset = new DateTimeOffset(2018, 1, 1, 11, 0, 0, TimeSpan.FromHours(-2)),
TestNullableTimeSpan = TimeSpan.FromDays(10),
TestNullableUnsignedInt64 = long.MaxValue + 1ul
};
context.Add(max);

context.SaveChanges();

Fixture.TestSqlLoggerFactory.Clear();

var query = context.Set<BuiltInNullableDataTypes>()
.Where(e => e.PartitionId == 208);

var results = query
.OrderBy(e => e.PartitionId)
.ThenBy(e => e.TestNullableDecimal)
.Select(e => e.Id)
.First();

AssertSql(
"""
SELECT "b"."Id"
FROM "BuiltInNullableDataTypes" AS "b"
WHERE "b"."PartitionId" = 208
ORDER BY "b"."PartitionId", "b"."TestNullableDecimal" COLLATE EF_DECIMAL
LIMIT 1
""");

var expectedResults = query.AsEnumerable()
.OrderBy(e => e.PartitionId)
.ThenBy(e => e.TestNullableDecimal)
.Select(e => e.Id)
.First();

Assert.Equal(expectedResults, results);
}

[ConditionalFact]
public virtual void Can_query_using_char_ToLower()
{
Expand Down

0 comments on commit c8c0647

Please sign in to comment.