diff --git a/test/EFCore.Cosmos.FunctionalTests/CosmosSessionTokensTest.cs b/test/EFCore.Cosmos.FunctionalTests/CosmosSessionTokensTest.cs index 2a99113b791..3732b7a4d51 100644 --- a/test/EFCore.Cosmos.FunctionalTests/CosmosSessionTokensTest.cs +++ b/test/EFCore.Cosmos.FunctionalTests/CosmosSessionTokensTest.cs @@ -7,8 +7,6 @@ namespace Microsoft.EntityFrameworkCore; -// https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/291 (Session tokens not properly tracked) -[CosmosCondition(CosmosCondition.IsNotLinuxEmulator)] public class CosmosSessionTokensTest(CosmosSessionTokensTest.CosmosFixture fixture) : IClassFixture { private const string DatabaseName = nameof(CosmosSessionTokensTest); @@ -81,7 +79,7 @@ await Assert.ThrowsAsync(() => context.OtherContainerCustomers. foreach (var ex in exes) { - Assert.Contains("The session token provided 'invalidtoken' is invalid", ex.ResponseBody); + Assert.Contains("The session token provided 'invalidtoken' is", ex.ResponseBody); } } @@ -100,7 +98,7 @@ await Assert.ThrowsAsync(() => context.OtherContainerCustomers. foreach (var ex in exes) { - Assert.Contains("The session token provided 'invalidtoken' is invalid", ex.ResponseBody); + Assert.Contains("The session token provided 'invalidtoken' is", ex.ResponseBody); } } @@ -119,7 +117,7 @@ public virtual async Task Shaped_query_uses_session_token() foreach (var ex in exes) { - Assert.Contains("The session token provided 'invalidtoken' is invalid", ex.ResponseBody); + Assert.Contains("The session token provided 'invalidtoken' is", ex.ResponseBody); } } @@ -138,7 +136,7 @@ await Assert.ThrowsAsync(() => context.OtherContainerCustomers. foreach (var ex in exes) { - Assert.Contains("The session token provided 'invalidtoken' is invalid", ex.ResponseBody); + Assert.Contains("The session token provided 'invalidtoken' is", ex.ResponseBody); } } @@ -479,7 +477,7 @@ public virtual async Task Add_uses_GetSessionToken(AutoTransactionBehavior autoT var ex = await Assert.ThrowsAsync(() => context.SaveChangesAsync()); - Assert.Contains("The session token provided 'invalidtoken' is invalid.", ((CosmosException)ex.InnerException!).ResponseBody); + Assert.Contains("The session token provided 'invalidtoken' is", ((CosmosException)ex.InnerException!).ResponseBody); } [ConditionalTheory] @@ -510,7 +508,7 @@ public virtual async Task Update_uses_session_token(AutoTransactionBehavior auto var ex = await Assert.ThrowsAsync(() => context.SaveChangesAsync()); - Assert.Contains("The session token provided 'invalidtoken' is invalid.", ((CosmosException)ex.InnerException!).ResponseBody); + Assert.Contains("The session token provided 'invalidtoken' is", ((CosmosException)ex.InnerException!).ResponseBody); } [ConditionalTheory] @@ -541,7 +539,7 @@ public virtual async Task Delete_uses_session_token(AutoTransactionBehavior auto var ex = await Assert.ThrowsAsync(() => context.SaveChangesAsync()); - Assert.Contains("The session token provided 'invalidtoken' is invalid.", ((CosmosException)ex.InnerException!).ResponseBody); + Assert.Contains("The session token provided 'invalidtoken' is", ((CosmosException)ex.InnerException!).ResponseBody); } [ConditionalFact] @@ -600,8 +598,6 @@ protected Test2Context() } } - // https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/291 (Session tokens not properly tracked) - [CosmosCondition(CosmosCondition.IsNotLinuxEmulator)] public class CosmosNonSharedSessionTokenTests(NonSharedFixture fixture) : NonSharedModelTestBase(fixture), IClassFixture { protected override ITestStoreFactory NonSharedTestStoreFactory @@ -611,7 +607,9 @@ protected override ITestStoreFactory NonSharedTestStoreFactory protected override TestStore CreateTestStore() => CosmosTestStore.Create(NonSharedStoreName, (cfg) => cfg.SessionTokenManagementMode(Cosmos.Infrastructure.SessionTokenManagementMode.SemiAutomatic)); + // https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/322 [ConditionalFact] + [CosmosCondition(CosmosCondition.IsNotLinuxEmulator)] public virtual async Task UseSessionTokens_uses_session_tokens() { var contextFactory = await InitializeNonSharedTest(); @@ -655,7 +653,9 @@ public virtual async Task ReadItem_does_not_exist_returns_null() Assert.Null(result); } + // https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/322 [ConditionalFact] + [CosmosCondition(CosmosCondition.IsNotLinuxEmulator)] public virtual async Task Read_item_session_not_found_throws_CosmosException() { var contextFactory = await InitializeNonSharedTest(); @@ -742,7 +742,9 @@ public virtual async Task Pooled_context_clears_SessionTokenStorage() Assert.True(_sessionTokenStorage.ClearCalled); } + // https://github.com/Azure/azure-cosmos-db-emulator-docker/issues/319 [ConditionalTheory] + [CosmosCondition(CosmosCondition.IsNotLinuxEmulator)] [InlineData(AutoTransactionBehavior.Never)] [InlineData(AutoTransactionBehavior.Always)] public virtual async Task Optimistic_concurrency_precondition_failure_updates_session_token(AutoTransactionBehavior autoTransactionBehavior)