VahidN / EFSecondLevelCache.Core

Entity Framework Core Second Level Caching Library
Apache License 2.0
326 stars 51 forks source link

Tests are failing #61

Closed codertimu closed 4 years ago

codertimu commented 4 years ago

Summary of the issue

Tests are failing

Environment

Mac OS

.NET Core SDK version: 3.1.100
Microsoft.EntityFrameworkCore version: 3.1.0
EFSecondLevelCache.Core version: 2.9.0

Example code/Steps to reproduce:

Run dotnet test src/Tests/EFSecondLevelCache.Core.Tests from a terminal

paste your core code

Output:

➜ EFSecondLevelCache.Core git:(master) ✗ dotnet test src/Tests/EFSecondLevelCache.Core.Tests EFCachedDbSetExtensions.cs(61,92): warning EF1001: Microsoft.EntityFrameworkCore.Internal.IDbContextServices is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. [/Users/at/EFSecondLevelCache.Core/src/EFSecondLevelCache.Core/EFSecondLevelCache.Core.csproj] EFCachedQueryProvider.cs(126,68): warning EF1001: Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. [/Users/at/EFSecondLevelCache.Core/src/EFSecondLevelCache.Core/EFSecondLevelCache.Core.csproj] EFCachedQueryProvider.cs(132,47): warning EF1001: Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. [/Users/at/EFSecondLevelCache.Core/src/EFSecondLevelCache.Core/EFSecondLevelCache.Core.csproj] EFCacheKeyProvider3x.cs(95,40): warning EF1001: Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. [/Users/at/EFSecondLevelCache.Core/src/EFSecondLevelCache.Core/EFSecondLevelCache.Core.csproj] EFCacheKeyProvider3x.cs(97,72): warning EF1001: Microsoft.EntityFrameworkCore.Query.Internal.ExpressionEqualityComparer is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. [/Users/at/EFSecondLevelCache.Core/src/EFSecondLevelCache.Core/EFSecondLevelCache.Core.csproj] EFCacheKeyProvider3x.cs(97,63): warning EF1001: Microsoft.EntityFrameworkCore.Query.Internal.ExpressionEqualityComparer is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. [/Users/at/EFSecondLevelCache.Core/src/EFSecondLevelCache.Core/EFSecondLevelCache.Core.csproj] Test run for /Users/at/EFSecondLevelCache.Core/src/Tests/EFSecondLevelCache.Core.Tests/bin/Debug/netcoreapp3.1/EFSecondLevelCache.Core.Tests.dll(.NETCoreApp,Version=v3.1) Microsoft (R) Test Execution Command Line Tool Version 16.3.0 Copyright (c) Microsoft Corporation. All rights reserved.

Starting test execution, please wait...

A total of 1 test files matched the specified pattern. ! TestParallelAsyncCalls
X TestSecondLevelCacheCreatesTheCommandTreeAfterCallingTheSameNormalQuery [22ms]
Error Message: Assert.AreEqual failed. Expected:. Actual:. Stack Trace: at EFSecondLevelCache.Core.Tests.EFCachedQueryProviderBasicTests.TestSecondLevelCacheCreatesTheCommandTreeAfterCallingTheSameNormalQuery() in /Users/at/EFSecondLevelCache.Core/src/Tests/EFSecondLevelCache.Core.Tests/EFCachedQueryProviderBasicTests.cs:line 138

Standard Output Messages: 1st normal query, reading from db. same query as Cacheable, reading from db.

X TestSecondLevelCacheDoesNotHitTheDatabase [2ms]
Error Message: Assert.AreEqual failed. Expected:. Actual:. Stack Trace: at EFSecondLevelCache.Core.Tests.EFCachedQueryProviderBasicTests.TestSecondLevelCacheDoesNotHitTheDatabase() in /Users/at/EFSecondLevelCache.Core/src/Tests/EFSecondLevelCache.Core.Tests/EFCachedQueryProviderBasicTests.cs:line 177

Standard Output Messages: 1st query, reading from db.

X TestSecondLevelCacheInTwoDifferentContextsDoesNotHitTheDatabase [2ms]
Error Message: Assert.AreEqual failed. Expected:. Actual:. Stack Trace: at EFSecondLevelCache.Core.Tests.EFCachedQueryProviderBasicTests.TestSecondLevelCacheInTwoDifferentContextsDoesNotHitTheDatabase() in /Users/at/EFSecondLevelCache.Core/src/Tests/EFSecondLevelCache.Core.Tests/EFCachedQueryProviderBasicTests.cs:line 246

Standard Output Messages: context 1. 1st query as Cacheable, reading from db.

X TestSecondLevelCacheUsingDifferentSyncMethods [9ms]
Error Message: Assert.AreEqual failed. Expected:. Actual:. Stack Trace: at EFSecondLevelCache.Core.Tests.EFCachedQueryProviderBasicTests.TestSecondLevelCacheUsingDifferentSyncMethods() in /Users/at/EFSecondLevelCache.Core/src/Tests/EFSecondLevelCache.Core.Tests/EFCachedQueryProviderBasicTests.cs:line 355

Standard Output Messages: Count ToList

X TestSecondLevelCacheUsingTwoCountMethods [2ms]
Error Message: Assert.AreEqual failed. Expected:. Actual:. Stack Trace: at EFSecondLevelCache.Core.Tests.EFCachedQueryProviderBasicTests.TestSecondLevelCacheUsingTwoCountMethods() in /Users/at/EFSecondLevelCache.Core/src/Tests/EFSecondLevelCache.Core.Tests/EFCachedQueryProviderBasicTests.cs:line 413

Standard Output Messages: Count 1

X TestSecondLevelCacheUsingFindMethods [2ms]
Error Message: Assert.AreEqual failed. Expected:. Actual:. Stack Trace: at EFSecondLevelCache.Core.Tests.EFCachedQueryProviderBasicTests.TestSecondLevelCacheUsingFindMethods() in /Users/at/EFSecondLevelCache.Core/src/Tests/EFSecondLevelCache.Core.Tests/EFCachedQueryProviderBasicTests.cs:line 701

X TestSecondLevelCacheDoesNotHitTheDatabaseForIQueryableCacheables [2ms]
Error Message: Assert.AreEqual failed. Expected:. Actual:. Stack Trace: at EFSecondLevelCache.Core.Tests.EFCachedQueryProviderBasicTests.TestSecondLevelCacheDoesNotHitTheDatabaseForIQueryableCacheables() in /Users/at/EFSecondLevelCache.Core/src/Tests/EFSecondLevelCache.Core.Tests/EFCachedQueryProviderBasicTests.cs:line 801

Standard Output Messages: 1st query, reading from db.

X TestSubqueriesWillUseTheCache [9ms]
Error Message: Test method EFSecondLevelCache.Core.Tests.EFCachedQueryProviderBasicTests.TestSubqueriesWillUseTheCache threw exception: System.InvalidOperationException: Processing of the LINQ expression 'DbSet .Where(tag => tag.ProductProductId == (NavigationTreeExpression Value: (EntityReference: Product) Expression: p).ProductId) .Cacheable() .Select(tag => new { TagId = tag.TagId })' by 'NavigationExpandingExpressionVisitor' failed. This may indicate either a bug or a limitation in EF Core. See https://go.microsoft.com/fwlink/?linkid=2101433 for more detailed information. Stack Trace: at Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression) at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor) at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node) at System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes) at System.Linq.Expressions.ExpressionVisitor.VisitNew(NewExpression node) at System.Linq.Expressions.NewExpression.Accept(ExpressionVisitor visitor) at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node) at Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.PendingSelectorExpandingExpressionVisitor.Visit(Expression expression) at Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.Expand(Expression query) at Microsoft.EntityFrameworkCore.Query.QueryTranslationPreprocessor.Process(Expression query) at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutor[TResult](Expression query) at Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery[TResult](Expression query, Boolean async) at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore[TResult](IDatabase database, Expression query, IModel model, Boolean async) at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass9_01.<Execute>b__0() at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQueryCore[TFunc](Object cacheKey, Func1 compiler) at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQuery[TResult](Object cacheKey, Func1 compiler) at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute[TResult](Expression query) at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.Execute[TResult](Expression expression) at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable1 source) at EFSecondLevelCache.Core.Tests.EFCachedQueryProviderBasicTests.TestSubqueriesWillUseTheCache() in /Users/at/EFSecondLevelCache.Core/src/Tests/EFSecondLevelCache.Core.Tests/EFCachedQueryProviderBasicTests.cs:line 855

X TestTransactionRollbackShouldNotInvalidateTheCacheDependencyAutomatically [3ms]
Error Message: Assert.AreEqual failed. Expected:. Actual:. Stack Trace: at EFSecondLevelCache.Core.Tests.EFCachedQueryProviderInvalidationTests.TestTransactionRollbackShouldNotInvalidateTheCacheDependencyAutomatically() in /Users/at/EFSecondLevelCache.Core/src/Tests/EFSecondLevelCache.Core.Tests/EFCachedQueryProviderInvalidationTests.cs:line 222

Standard Output Messages: 1st query, reading from db.

X TestParallelInsertsAndRemoves [111ms]
Error Message: Assert.IsNull failed. Stack Trace: at EFSecondLevelCache.Core.Tests.EFCacheServiceProviderTests.TestParallelInsertsAndRemoves() in /Users/at/EFSecondLevelCache.Core/src/Tests/EFSecondLevelCache.Core.Tests/EFCacheServiceProviderTests.cs:line 157

Test Run Failed. Total tests: 41 Passed: 30 Failed: 10 Skipped: 1 Total time: 2.1629 Seconds

Exception message:
Full Stack trace:
VahidN commented 4 years ago

Improved it via #https://github.com/VahidN/EFSecondLevelCache.Core/commit/2dfc73a3fb73debd641a13e4ace094260c514354