Skip to content

Commit

Permalink
update version of SqlClient used by sql cache (dotnet/extensions#2006)
Browse files Browse the repository at this point in the history
\n\nCommit migrated from dotnet/extensions@b1ff0d9
  • Loading branch information
analogrelay authored Jul 16, 2019
1 parent 57ca085 commit 502f8d1
Show file tree
Hide file tree
Showing 4 changed files with 190 additions and 27 deletions.
41 changes: 41 additions & 0 deletions src/Caching/Caching.slnf
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"solution": {
"path": "..\\..\\Extensions.sln",
"projects": [
"src\\Caching\\Abstractions\\src\\Microsoft.Extensions.Caching.Abstractions.csproj",
"src\\Caching\\Memory\\src\\Microsoft.Extensions.Caching.Memory.csproj",
"src\\Caching\\Memory\\test\\Microsoft.Extensions.Caching.Memory.Tests.csproj",
"src\\Caching\\SqlServer\\src\\Microsoft.Extensions.Caching.SqlServer.csproj",
"src\\Caching\\SqlServer\\test\\Microsoft.Extensions.Caching.SqlServer.Tests.csproj",
"src\\Caching\\StackExchangeRedis\\src\\Microsoft.Extensions.Caching.StackExchangeRedis.csproj",
"src\\Caching\\StackExchangeRedis\\test\\Microsoft.Extensions.Caching.StackExchangeRedis.Tests.csproj",
"src\\Caching\\samples\\MemoryCacheConcurencySample\\MemoryCacheConcurencySample.csproj",
"src\\Caching\\samples\\MemoryCacheFileWatchSample\\MemoryCacheFileWatchSample.csproj",
"src\\Caching\\samples\\MemoryCacheSample\\MemoryCacheSample.csproj",
"src\\Caching\\samples\\ProfilingSample\\ProfilingSample.csproj",
"src\\Caching\\samples\\RedisCacheSample\\RedisCacheSample.csproj",
"src\\Caching\\samples\\SqlServerCacheConcurencySample\\SqlServerCacheConcurencySample.csproj",
"src\\Caching\\samples\\SqlServerCacheSample\\SqlServerCacheSample.csproj",
"src\\Configuration\\Config.Abstractions\\src\\Microsoft.Extensions.Configuration.Abstractions.csproj",
"src\\Configuration\\Config.Binder\\src\\Microsoft.Extensions.Configuration.Binder.csproj",
"src\\Configuration\\Config.EnvironmentVariables\\src\\Microsoft.Extensions.Configuration.EnvironmentVariables.csproj",
"src\\Configuration\\Config.FileExtensions\\src\\Microsoft.Extensions.Configuration.FileExtensions.csproj",
"src\\Configuration\\Config.Json\\src\\Microsoft.Extensions.Configuration.Json.csproj",
"src\\Configuration\\Config\\src\\Microsoft.Extensions.Configuration.csproj",
"src\\DependencyInjection\\DI.Abstractions\\src\\Microsoft.Extensions.DependencyInjection.Abstractions.csproj",
"src\\DependencyInjection\\DI\\src\\Microsoft.Extensions.DependencyInjection.csproj",
"src\\FileProviders\\Abstractions\\src\\Microsoft.Extensions.FileProviders.Abstractions.csproj",
"src\\FileProviders\\Physical\\src\\Microsoft.Extensions.FileProviders.Physical.csproj",
"src\\FileSystemGlobbing\\src\\Microsoft.Extensions.FileSystemGlobbing.csproj",
"src\\Logging\\Logging.Abstractions\\src\\Microsoft.Extensions.Logging.Abstractions.csproj",
"src\\Logging\\Logging.Configuration\\src\\Microsoft.Extensions.Logging.Configuration.csproj",
"src\\Logging\\Logging.Console\\src\\Microsoft.Extensions.Logging.Console.csproj",
"src\\Logging\\Logging.Testing\\src\\Microsoft.Extensions.Logging.Testing.csproj",
"src\\Logging\\Logging\\src\\Microsoft.Extensions.Logging.csproj",
"src\\Options\\ConfigurationExtensions\\src\\Microsoft.Extensions.Options.ConfigurationExtensions.csproj",
"src\\Options\\Options\\src\\Microsoft.Extensions.Options.csproj",
"src\\Primitives\\src\\Microsoft.Extensions.Primitives.csproj",
"src\\TestingUtils\\Microsoft.AspNetCore.Testing\\src\\Microsoft.AspNetCore.Testing.csproj"
]
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>netcoreapp3.0;net472</TargetFrameworks>
Expand All @@ -11,6 +11,7 @@
<ItemGroup>
<Reference Include="Microsoft.Extensions.Caching.Abstractions" />
<Reference Include="Microsoft.Extensions.Caching.SqlServer" />
<Reference Include="Microsoft.Data.SqlClient" />
<Reference Include="Microsoft.Extensions.Configuration.Abstractions" />
<Reference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" />
<Reference Include="Microsoft.Extensions.Configuration.Json" />
Expand Down
75 changes: 49 additions & 26 deletions src/Caching/SqlServer/test/SqlServerCacheWithDatabaseTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Testing.xunit;
Expand All @@ -18,12 +17,12 @@ namespace Microsoft.Extensions.Caching.SqlServer
{
public class SqlServerCacheWithDatabaseTest
{
private const string SkipReason = "This requires SQL Server database to be set up";
// These tests are disabled by default. To run them, run the "run-db-tests.ps1" script

private const string ConnectionStringKey = "ConnectionString";
private const string SchemaNameKey = "SchemaName";
private const string TableNameKey = "TableName";

private const string EnabledEnvVarName = "SQLCACHETESTS_ENABLED";
private readonly string _tableName;
private readonly string _schemaName;
private readonly string _connectionString;
Expand All @@ -35,6 +34,8 @@ public SqlServerCacheWithDatabaseTest()

var memoryConfigurationData = new Dictionary<string, string>
{
// When creating a test database, these values must be used in the parameters to 'dotnet sql-cache create'.
// If you have to use other parameters for some reason, make sure to update this!
{ ConnectionStringKey, @"Server=(localdb)\MSSQLLocalDB;Database=CacheTestDb;Trusted_Connection=True;" },
{ SchemaNameKey, "dbo" },
{ TableNameKey, "CacheTest" },
Expand All @@ -43,15 +44,16 @@ public SqlServerCacheWithDatabaseTest()
var configurationBuilder = new ConfigurationBuilder();
configurationBuilder
.AddInMemoryCollection(memoryConfigurationData)
.AddEnvironmentVariables();
.AddEnvironmentVariables(prefix: "SQLCACHETESTS_");

var configuration = configurationBuilder.Build();
_tableName = configuration[TableNameKey];
_schemaName = configuration[SchemaNameKey];
_connectionString = configuration[ConnectionStringKey];
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task ReturnsNullValue_ForNonExistingCacheItem()
{
// Arrange
Expand All @@ -64,7 +66,8 @@ public async Task ReturnsNullValue_ForNonExistingCacheItem()
Assert.Null(value);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task SetWithAbsoluteExpirationSetInThePast_Throws()
{
// Arrange
Expand All @@ -84,7 +87,8 @@ public async Task SetWithAbsoluteExpirationSetInThePast_Throws()
Assert.Equal("The absolute expiration value must be in the future.", exception.Message);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task SetCacheItem_SucceedsFor_KeyEqualToMaximumSize()
{
// Arrange
Expand All @@ -111,7 +115,8 @@ await cache.SetAsync(
Assert.Null(cacheItemInfo);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task SetCacheItem_SucceedsFor_NullAbsoluteAndSlidingExpirationTimes()
{
// Arrange
Expand Down Expand Up @@ -150,7 +155,8 @@ await AssertGetCacheItemFromDatabaseAsync(
Assert.Null(cacheItemInfo);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task UpdatedDefaultSlidingExpiration_SetCacheItem_SucceedsFor_NullAbsoluteAndSlidingExpirationTimes()
{
// Arrange
Expand Down Expand Up @@ -190,7 +196,8 @@ await AssertGetCacheItemFromDatabaseAsync(
Assert.Null(cacheItemInfo);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task SetCacheItem_FailsFor_KeyGreaterThanMaximumSize()
{
// Arrange
Expand All @@ -211,9 +218,10 @@ await cache.SetAsync(
}

// Arrange
[Theory(Skip = SkipReason)]
[ConditionalTheory]
[InlineData(10, 11)]
[InlineData(10, 30)]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task SetWithSlidingExpiration_ReturnsNullValue_ForExpiredCacheItem(
int slidingExpirationWindow, int accessItemAt)
{
Expand All @@ -236,9 +244,10 @@ await cache.SetAsync(
Assert.Null(value);
}

[Theory(Skip = SkipReason)]
[ConditionalTheory]
[InlineData(5, 15)]
[InlineData(10, 20)]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task SetWithSlidingExpiration_ExtendsExpirationTime(int accessItemAt, int expected)
{
// Arrange
Expand All @@ -264,9 +273,10 @@ await AssertGetCacheItemFromDatabaseAsync(
expectedExpirationTime: expectedExpirationTime);
}

[Theory(Skip = SkipReason)]
[ConditionalTheory]
[InlineData(8)]
[InlineData(50)]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task SetWithSlidingExpirationAndAbsoluteExpiration_ReturnsNullValue_ForExpiredCacheItem(
int accessItemAt)
{
Expand Down Expand Up @@ -294,7 +304,8 @@ await cache.SetAsync(
Assert.Null(value);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task SetWithAbsoluteExpirationRelativeToNow_ReturnsNullValue_ForExpiredCacheItem()
{
// Arrange
Expand All @@ -316,7 +327,8 @@ await cache.SetAsync(
Assert.Null(value);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task SetWithAbsoluteExpiration_ReturnsNullValue_ForExpiredCacheItem()
{
// Arrange
Expand All @@ -339,7 +351,8 @@ await cache.SetAsync(
Assert.Null(value);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task DoesNotThrowException_WhenOnlyAbsoluteExpirationSupplied_AbsoluteExpirationRelativeToNow()
{
// Arrange
Expand Down Expand Up @@ -367,7 +380,8 @@ await AssertGetCacheItemFromDatabaseAsync(
expectedExpirationTime: expectedAbsoluteExpiration);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task DoesNotThrowException_WhenOnlyAbsoluteExpirationSupplied_AbsoluteExpiration()
{
// Arrange
Expand All @@ -394,7 +408,8 @@ await AssertGetCacheItemFromDatabaseAsync(
expectedExpirationTime: expectedAbsoluteExpiration);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task SetCacheItem_UpdatesAbsoluteExpirationTime()
{
// Arrange
Expand Down Expand Up @@ -433,7 +448,8 @@ await AssertGetCacheItemFromDatabaseAsync(
expectedExpirationTime: absoluteExpiration);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task SetCacheItem_WithValueLargerThan_DefaultColumnWidth()
{
// Arrange
Expand All @@ -460,7 +476,8 @@ await AssertGetCacheItemFromDatabaseAsync(
expectedExpirationTime: absoluteExpiration);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task ExtendsExpirationTime_ForSlidingExpiration()
{
// Arrange
Expand Down Expand Up @@ -489,7 +506,8 @@ await cache.SetAsync(
Assert.Equal(expectedExpiresAtTime, cacheItemInfo.ExpiresAtTime);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task GetItem_SlidingExpirationDoesNot_ExceedAbsoluteExpirationIfSet()
{
// Arrange
Expand Down Expand Up @@ -545,7 +563,8 @@ await AssertGetCacheItemFromDatabaseAsync(
expectedExpirationTime: absoluteExpiration);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task DoestNotExtendsExpirationTime_ForAbsoluteExpiration()
{
// Arrange
Expand Down Expand Up @@ -574,7 +593,8 @@ await cache.SetAsync(
Assert.Equal(expectedExpiresAtTime, cacheItemInfo.ExpiresAtTime);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task RefreshItem_ExtendsExpirationTime_ForSlidingExpiration()
{
// Arrange
Expand Down Expand Up @@ -603,7 +623,8 @@ await cache.SetAsync(
Assert.Equal(expectedExpiresAtTime, cacheItemInfo.ExpiresAtTime);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task GetCacheItem_IsCaseSensitive()
{
// Arrange
Expand All @@ -621,7 +642,8 @@ await cache.SetAsync(
Assert.Null(value);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task GetCacheItem_DoesNotTrimTrailingSpaces()
{
// Arrange
Expand All @@ -641,7 +663,8 @@ await cache.SetAsync(
Assert.Equal(expectedValue, value);
}

[Fact(Skip = SkipReason)]
[ConditionalFact]
[EnvironmentVariableSkipCondition(EnabledEnvVarName, "1")]
public async Task DeletesCacheItem_OnExplicitlyCalled()
{
// Arrange
Expand Down
Loading

0 comments on commit 502f8d1

Please sign in to comment.