Skip to content

Commit e863726

Browse files
committed
Reenable some tests on Linux Cosmos emulator
1 parent 3d7a066 commit e863726

8 files changed

Lines changed: 22 additions & 51 deletions

File tree

src/EFCore/Metadata/Internal/ForeignKey.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -951,7 +951,8 @@ public virtual IDependentKeyValueFactory DependentKeyValueFactory
951951
if (field == null)
952952
{
953953
EnsureReadOnly();
954-
((IKey)PrincipalKey).GetPrincipalKeyValueFactory();
954+
// The principal key value factory creates the dependent key value factory
955+
_ = ((IKey)PrincipalKey).GetPrincipalKeyValueFactory();
955956
}
956957

957958
return field!;

src/EFCore/Metadata/RuntimeForeignKey.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,8 @@ IDependentKeyValueFactory IRuntimeForeignKey.DependentKeyValueFactory
274274
{
275275
if (_dependentKeyValueFactory == null)
276276
{
277-
((IKey)PrincipalKey).GetPrincipalKeyValueFactory();
277+
// The principal key value factory creates the dependent key value factory
278+
_ = ((IKey)PrincipalKey).GetPrincipalKeyValueFactory();
278279
}
279280
return _dependentKeyValueFactory!;
280281
}

test/EFCore.Cosmos.FunctionalTests/CosmosSessionTokensTest.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@
66
using Microsoft.Extensions.DependencyInjection.Extensions;
77

88
namespace Microsoft.EntityFrameworkCore;
9-
10-
// https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/291 (Session tokens not properly tracked)
11-
[ConditionalClass(typeof(CosmosTestEnvironment), nameof(CosmosTestEnvironment.IsNotLinuxEmulator))]
9+
1210
public class CosmosSessionTokensTest(CosmosSessionTokensTest.CosmosFixture fixture) : IClassFixture<CosmosSessionTokensTest.CosmosFixture>
1311
{
1412
private const string DatabaseName = nameof(CosmosSessionTokensTest);
@@ -600,8 +598,6 @@ protected Test2Context()
600598
}
601599
}
602600

603-
// https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/291 (Session tokens not properly tracked)
604-
[ConditionalClass(typeof(CosmosTestEnvironment), nameof(CosmosTestEnvironment.IsNotLinuxEmulator))]
605601
public class CosmosNonSharedSessionTokenTests(NonSharedFixture fixture) : NonSharedModelTestBase(fixture), IClassFixture<NonSharedFixture>
606602
{
607603
protected override ITestStoreFactory NonSharedTestStoreFactory

test/EFCore.Cosmos.FunctionalTests/CosmosTransactionalBatchTest.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88

99
namespace Microsoft.EntityFrameworkCore;
1010

11-
// https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/292 (Transactional batch limits not enforced)
12-
[ConditionalClass(typeof(CosmosTestEnvironment), nameof(CosmosTestEnvironment.IsNotLinuxEmulator))]
1311
public class CosmosTransactionalBatchTest(CosmosTransactionalBatchTest.CosmosFixture fixture) : IClassFixture<CosmosTransactionalBatchTest.CosmosFixture>, IAsyncLifetime
1412
{
1513
private const string DatabaseName = nameof(CosmosTransactionalBatchTest);

test/EFCore.Cosmos.FunctionalTests/EndToEndCosmosTest.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,7 @@ namespace Microsoft.EntityFrameworkCore;
1414

1515
public class EndToEndCosmosTest(NonSharedFixture fixture) : NonSharedModelTestBase(fixture), IClassFixture<NonSharedFixture>
1616
{
17-
18-
// https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/292 (Transactional batch limits not enforced)
19-
[ConditionalTheory(typeof(CosmosTestEnvironment), nameof(CosmosTestEnvironment.IsNotLinuxEmulator))]
20-
[InlineData(false)]
21-
[InlineData(true)]
17+
[Theory, InlineData(false), InlineData(true)]
2218
public async Task Can_add_update_delete_end_to_end(bool transactionalBatch)
2319
{
2420
var contextFactory = await InitializeNonSharedTest<DbContext>(

test/EFCore.Cosmos.FunctionalTests/Update/CosmosBulkConcurrencyTest.cs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,6 @@ namespace Microsoft.EntityFrameworkCore.Update;
55

66
public class CosmosBulkConcurrencyTest(CosmosBulkConcurrencyTest.ConcurrencyFixture fixture) : CosmosConcurrencyTest(fixture), IClassFixture<CosmosBulkConcurrencyTest.ConcurrencyFixture>
77
{
8-
// https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/292 (Transactional batch limits not enforced)
9-
public override async Task Updating_then_deleting_the_same_entity_results_in_DbUpdateConcurrencyException()
10-
{
11-
CosmosTestEnvironment.SkipOnLinuxEmulator();
12-
13-
await base.Updating_then_deleting_the_same_entity_results_in_DbUpdateConcurrencyException();
14-
}
15-
16-
// https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/292 (Transactional batch limits not enforced)
17-
public override async Task Updating_then_updating_the_same_entity_results_in_DbUpdateConcurrencyException()
18-
{
19-
CosmosTestEnvironment.SkipOnLinuxEmulator();
20-
21-
await base.Updating_then_updating_the_same_entity_results_in_DbUpdateConcurrencyException();
22-
}
23-
248
public class ConcurrencyFixture : CosmosConcurrencyTest.CosmosFixture
259
{
2610

test/EFCore.Cosmos.FunctionalTests/Update/CosmosBulkExecutionTest.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@ public class CosmosBulkExecutionTest(NonSharedFixture nonSharedFixture, CosmosBu
1313

1414
protected override ITestStoreFactory NonSharedTestStoreFactory => CosmosTestStoreFactory.Instance;
1515

16-
17-
// https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/292 (Transactional batch limits not enforced)
18-
[ConditionalFact(typeof(CosmosTestEnvironment), nameof(CosmosTestEnvironment.IsNotLinuxEmulator))]
16+
[Fact]
1917
public virtual async Task DoesNotBatchSingleBatchableWrite()
2018
{
2119
using var context = fixture.CreateContext();
@@ -46,9 +44,7 @@ public virtual async Task AutoTransactionBehaviorNever_DoesNotThrow()
4644
await context.SaveChangesAsync();
4745
}
4846

49-
50-
// https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/292 (Transactional batch limits not enforced)
51-
[ConditionalFact(typeof(CosmosTestEnvironment), nameof(CosmosTestEnvironment.IsNotLinuxEmulator))]
47+
[Fact]
5248
public virtual async Task AutoTransactionBehaviorWhenNeeded_Throws()
5349
{
5450
var contextFactory = await InitializeNonSharedTest<CosmosBulkExecutionContext>(
@@ -61,9 +57,7 @@ public virtual async Task AutoTransactionBehaviorWhenNeeded_Throws()
6157
Assert.Equal(BulkExecutionWithTransactionalBatchMessage, ex.Message);
6258
}
6359

64-
65-
// https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/292 (Transactional batch limits not enforced)
66-
[ConditionalFact(typeof(CosmosTestEnvironment), nameof(CosmosTestEnvironment.IsNotLinuxEmulator))]
60+
[Fact]
6761
public virtual async Task AutoTransactionBehaviorAlways_Throws()
6862
{
6963
var contextFactory = await InitializeNonSharedTest<CosmosBulkExecutionContext>(

test/EFCore.VisualBasic.FunctionalTests/NorthwindQueryVisualBasicTest.vb

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
Imports Microsoft.EntityFrameworkCore.Query
55
Imports Microsoft.EntityFrameworkCore.TestModels.Northwind
6+
Imports System.Threading.Tasks
67
Imports Microsoft.EntityFrameworkCore.TestUtilities
78
Imports Xunit
89

@@ -18,7 +19,7 @@ Partial Public Class NorthwindQueryVisualBasicTest
1819

1920
<Theory>
2021
<MemberData(NameOf(IsAsyncData))>
21-
Public Async Sub CompareString_Equals_Binary(async As Boolean)
22+
Public Async Function CompareString_Equals_Binary(async As Boolean) As Task
2223
Await AssertQuery(
2324
async,
2425
Function(ss) ss.Set(Of Customer).Where(Function(c) c.CustomerID = "ALFKI"))
@@ -27,11 +28,11 @@ Partial Public Class NorthwindQueryVisualBasicTest
2728
"SELECT [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
2829
FROM [Customers] AS [c]
2930
WHERE [c].[CustomerID] = N'ALFKI'")
30-
End Sub
31+
End Function
3132

3233
<Theory>
3334
<MemberData(NameOf(IsAsyncData))>
34-
Public Async Sub CompareString_LessThanOrEqual_Binary(async As Boolean)
35+
Public Async Function CompareString_LessThanOrEqual_Binary(async As Boolean) As Task
3536
Await AssertQuery(
3637
async,
3738
Function(ss) ss.Set(Of Customer).Where(Function(c) c.CustomerID <= "ALFKI"))
@@ -40,11 +41,11 @@ WHERE [c].[CustomerID] = N'ALFKI'")
4041
"SELECT [c].[CustomerID], [c].[Address], [c].[City], [c].[CompanyName], [c].[ContactName], [c].[ContactTitle], [c].[Country], [c].[Fax], [c].[Phone], [c].[PostalCode], [c].[Region]
4142
FROM [Customers] AS [c]
4243
WHERE [c].[CustomerID] <= N'ALFKI'")
43-
End Sub
44+
End Function
4445

4546
<Theory>
4647
<MemberData(NameOf(IsAsyncData))>
47-
Public Async Sub AddChecked(async As Boolean)
48+
Public Async Function AddChecked(async As Boolean) As Task
4849
Await AssertQuery(
4950
async,
5051
Function(ss) ss.Set(Of Product).Where(Function(p) p.UnitsInStock + 1 = 102))
@@ -53,11 +54,11 @@ WHERE [c].[CustomerID] <= N'ALFKI'")
5354
"SELECT [p].[ProductID], [p].[Discontinued], [p].[ProductName], [p].[SupplierID], [p].[UnitPrice], [p].[UnitsInStock]
5455
FROM [Products] AS [p]
5556
WHERE [p].[UnitsInStock] + CAST(1 AS smallint) = CAST(102 AS smallint)")
56-
End Sub
57+
End Function
5758

5859
<Theory>
5960
<MemberData(NameOf(IsAsyncData))>
60-
Public Async Sub SubtractChecked(async As Boolean)
61+
Public Async Function SubtractChecked(async As Boolean) As Task
6162
Await AssertQuery(
6263
async,
6364
Function(ss) ss.Set(Of Product).Where(Function(p) p.UnitsInStock - 1 = 100))
@@ -66,11 +67,11 @@ WHERE [p].[UnitsInStock] + CAST(1 AS smallint) = CAST(102 AS smallint)")
6667
"SELECT [p].[ProductID], [p].[Discontinued], [p].[ProductName], [p].[SupplierID], [p].[UnitPrice], [p].[UnitsInStock]
6768
FROM [Products] AS [p]
6869
WHERE [p].[UnitsInStock] - CAST(1 AS smallint) = CAST(100 AS smallint)")
69-
End Sub
70+
End Function
7071

7172
<Theory>
7273
<MemberData(NameOf(IsAsyncData))>
73-
Public Async Sub MultiplyChecked(async As Boolean)
74+
Public Async Function MultiplyChecked(async As Boolean) As Task
7475
Await AssertQuery(
7576
async,
7677
Function(ss) ss.Set(Of Product).Where(Function(p) p.UnitsInStock * 1 = 101))
@@ -79,11 +80,11 @@ WHERE [p].[UnitsInStock] - CAST(1 AS smallint) = CAST(100 AS smallint)")
7980
"SELECT [p].[ProductID], [p].[Discontinued], [p].[ProductName], [p].[SupplierID], [p].[UnitPrice], [p].[UnitsInStock]
8081
FROM [Products] AS [p]
8182
WHERE [p].[UnitsInStock] * CAST(1 AS smallint) = CAST(101 AS smallint)")
82-
End Sub
83+
End Function
8384

8485
<Theory>
8586
<MemberData(NameOf(IsAsyncData))>
86-
Public Async Sub Parameter_name_gets_sanitized(async As Boolean)
87+
Public Async Function Parameter_name_gets_sanitized(async As Boolean) As Task
8788
Dim units = 101
8889
Await AssertQuery(
8990
async,
@@ -95,7 +96,7 @@ WHERE [p].[UnitsInStock] * CAST(1 AS smallint) = CAST(101 AS smallint)")
9596
SELECT [p].[ProductID], [p].[Discontinued], [p].[ProductName], [p].[SupplierID], [p].[UnitPrice], [p].[UnitsInStock]
9697
FROM [Products] AS [p]
9798
WHERE [p].[UnitsInStock] = @units")
98-
End Sub
99+
End Function
99100

100101
Private Sub AssertSql(ParamArray expected As String())
101102
Fixture.TestSqlLoggerFactory.AssertBaseline(expected)

0 commit comments

Comments
 (0)