diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index d0a4eaf2..3c5afebf 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -16,14 +16,62 @@ concurrency: cancel-in-progress: true jobs: + enterprise-tests: + name: Redis Enterprise + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + enterprise_version: ['7.2.4-92'] + env_file_mode: ['enterprise', 'enterprise_oss_cluster'] + + steps: + - uses: actions/checkout@v4 + + - name: Load dotnenv for CI + uses: xom9ikk/dotenv@v2 + with: + path: .github/workflows/modes + mode: ${{ matrix.env_file_mode }} + + - name: Clone ee docker code + uses: actions/checkout@v4 + with: + repository: redislabs/redis-ee-docker + path: redis-ee-docker + + + - name: Start docker + working-directory: redis-ee-docker + env: + IMAGE: redislabs/redis-internal:${{ matrix.enterprise_version }} + DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + run: ./build.sh + + - name: .NET Core 8 + uses: actions/setup-dotnet@v2 + + with: + dotnet-version: '8.0.x' + - name: Restore dependencies + run: dotnet restore + + - name: Build + run: dotnet build --no-restore /p:ContinuousIntegrationBuild=true + + - name: Test + run: dotnet test -f net8.0 --no-build --verbosity detailed + dotnet_6_cluster: name: .NET 6 on [redis-stack cluster] uses: ./.github/workflows/reusable.yml with: redis_stack_type: cluster clr_version: net6.0 + mode: oss_cluster dotnet_sdk_version: 6.0.0 - dotenv_file: .github/cluster.env secrets: inherit dotnet_6: @@ -37,8 +85,8 @@ jobs: with: redis_stack_type: ${{matrix.redis-stack-type}} clr_version: net6.0 + mode: standalone dotnet_sdk_version: 6.0.0 - dotenv_file: .github/standalone.env secrets: inherit dotnet_7_cluster: @@ -47,8 +95,8 @@ jobs: with: redis_stack_type: cluster clr_version: net7.0 + mode: oss_cluster dotnet_sdk_version: 7.0.0 - dotenv_file: .github/cluster.env secrets: inherit dotnet_7: @@ -62,8 +110,8 @@ jobs: with: redis_stack_type: ${{matrix.redis-stack-type}} clr_version: net7.0 + mode: standalone dotnet_sdk_version: 7.0.0 - dotenv_file: .github/standalone.env secrets: inherit dotnet_8_cluster: @@ -72,8 +120,8 @@ jobs: with: redis_stack_type: cluster clr_version: net8.0 + mode: oss_cluster dotnet_sdk_version: 8.0.0 - dotenv_file: .github/cluster.env secrets: inherit dotnet_8: @@ -87,8 +135,8 @@ jobs: with: redis_stack_type: ${{matrix.redis-stack-type}} clr_version: net8.0 + mode: standalone dotnet_sdk_version: 8.0.0 - dotenv_file: .github/standalone.env secrets: inherit build_and_test_windows: @@ -130,4 +178,4 @@ jobs: shell: cmd run: | START wsl ./redis-stack-server-${{env.redis_stack_version}}/bin/redis-stack-server & - dotnet test -f net481 --no-build --verbosity normal + dotnet test -f net481 --no-build --verbosity detailed \ No newline at end of file diff --git a/.github/workflows/modes/.env.enterprise b/.github/workflows/modes/.env.enterprise new file mode 100644 index 00000000..9a57f7f5 --- /dev/null +++ b/.github/workflows/modes/.env.enterprise @@ -0,0 +1,7 @@ +REDIS=127.0.0.1:6379 +IS_ENTERPRISE=true +RE_USERNAME=test@test.com +RE_PASS=12345 +RE_CLUSTER_NAME=test +RE_USE_OSS_CLUSTER=false +RE_DB_PORT=6379 diff --git a/.github/workflows/modes/.env.enterprise_oss_cluster b/.github/workflows/modes/.env.enterprise_oss_cluster new file mode 100644 index 00000000..1b81f571 --- /dev/null +++ b/.github/workflows/modes/.env.enterprise_oss_cluster @@ -0,0 +1,8 @@ +REDIS_CLUSTER=127.0.0.1:6372 +NUM_REDIS_CLUSTER_NODES=3 +IS_ENTERPRISE=true +RE_USERNAME=test@test.com +RE_PASS=12345 +RE_CLUSTER_NAME=test +RE_USE_OSS_CLUSTER=true +RE_DB_PORT=6378 \ No newline at end of file diff --git a/.github/cluster.env b/.github/workflows/modes/.env.oss_cluster similarity index 100% rename from .github/cluster.env rename to .github/workflows/modes/.env.oss_cluster diff --git a/.github/standalone.env b/.github/workflows/modes/.env.standalone similarity index 100% rename from .github/standalone.env rename to .github/workflows/modes/.env.standalone diff --git a/.github/workflows/reusable.yml b/.github/workflows/reusable.yml index cf994820..9eb29af8 100644 --- a/.github/workflows/reusable.yml +++ b/.github/workflows/reusable.yml @@ -19,7 +19,7 @@ on: required: true type: string - dotenv_file: + mode: required: true type: string jobs: @@ -39,14 +39,15 @@ jobs: with: dotnet-version: 8 - - name: run redis-stack-server docker + - name: Run redis-stack-server docker working-directory: .github run: docker-compose up -d redis-stack-${{inputs.redis_stack_type}} - - name: set variables in dotenv - uses: c-py/action-dotenv-to-setenv@v2 + - name: Set .env variables + uses: xom9ikk/dotenv@v2 with: - env-file: ${{inputs.dotenv_file}} + path: .github/workflows/modes + mode: ${{ inputs.mode }} # Make sure only the desired dotnet version is set both as target and as active SDK. - name: Tweak target frameworks diff --git a/.gitignore b/.gitignore index fd1be9e5..b67a9384 100644 --- a/.gitignore +++ b/.gitignore @@ -408,3 +408,4 @@ tests/NRedisStack.Tests/redis_credentials/redis_user.crt # global.json global.json +tests/NRedisStack.Tests/lcov.net8.0.info diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ca1c09eb..a79f7348 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -110,7 +110,7 @@ dotnet test --environment="REDIS=" ``` e.g: ```bash -dotnet test --environment="REDIS=172.17.0.1:6379" +dotnet test --environment="REDIS=127.17.0.1:6379" ``` To run your tests against an oss cluster: diff --git a/tests/NRedisStack.Tests/Core Commands/CoreTests.cs b/tests/NRedisStack.Tests/Core Commands/CoreTests.cs index b9476d3b..dfad0471 100644 --- a/tests/NRedisStack.Tests/Core Commands/CoreTests.cs +++ b/tests/NRedisStack.Tests/Core Commands/CoreTests.cs @@ -12,8 +12,8 @@ public class CoreTests : AbstractNRedisStackTest, IDisposable { public CoreTests(RedisFixture redisFixture) : base(redisFixture) { } - - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.1.242")] + // TODO: understand why this test fails on enterprise + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.1.242")] public void TestSimpleSetInfo() { var db = redisFixture.Redis.GetDatabase(); @@ -26,7 +26,7 @@ public void TestSimpleSetInfo() Assert.EndsWith($"lib-name=TestLibraryName lib-ver=1.2.3\n", info); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.1.242")] public async Task TestSimpleSetInfoAsync() { var db = redisFixture.Redis.GetDatabase(); @@ -39,7 +39,7 @@ public async Task TestSimpleSetInfoAsync() Assert.EndsWith($"lib-name=TestLibraryName lib-ver=1.2.3\n", info); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.1.242")] public void TestSetInfoDefaultValue() { ResetInfoDefaults(); // demonstrate first connection @@ -52,7 +52,7 @@ public void TestSetInfoDefaultValue() Assert.EndsWith($"lib-name=NRedisStack(.NET_v{Environment.Version}) lib-ver={GetNRedisStackVersion()}\n", info); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.1.242")] public async Task TestSetInfoDefaultValueAsync() { ResetInfoDefaults(); // demonstrate first connection @@ -65,7 +65,7 @@ public async Task TestSetInfoDefaultValueAsync() Assert.EndsWith($"lib-name=NRedisStack(.NET_v{Environment.Version}) lib-ver={GetNRedisStackVersion()}\n", info); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.1.242")] public void TestSetInfoWithValue() { ResetInfoDefaults(); // demonstrate first connection @@ -78,7 +78,7 @@ public void TestSetInfoWithValue() Assert.EndsWith($"NRedisStack(MyLibraryName;v1.0.0;.NET_v{Environment.Version}) lib-ver={GetNRedisStackVersion()}\n", info); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.1.242")] public async Task TestSetInfoWithValueAsync() { ResetInfoDefaults(); // demonstrate first connection @@ -91,7 +91,7 @@ public async Task TestSetInfoWithValueAsync() Assert.EndsWith($"NRedisStack(MyLibraryName;v1.0.0;.NET_v{Environment.Version}) lib-ver={GetNRedisStackVersion()}\n", info); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.1.242")] public void TestSetInfoNull() { ResetInfoDefaults(); // demonstrate first connection @@ -114,7 +114,7 @@ public void TestSetInfoNull() Assert.Equal(infoAfterLibNameToEnd, infoBeforeLibNameToEnd); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.1.242")] public async Task TestSetInfoNullAsync() { ResetInfoDefaults(); // demonstrate first connection @@ -137,7 +137,7 @@ public async Task TestSetInfoNullAsync() Assert.Equal(infoAfterLibNameToEnd, infoBeforeLibNameToEnd); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.0.0")] public void TestBZMPop() { var db = redisFixture.Redis.GetDatabase(null); @@ -169,7 +169,7 @@ public void TestBZMPop() Assert.Equal("d", resultWithDescendingOrder.Item2[0].Value.ToString()); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.0.0")] public void TestBZMPopNull() { var db = redisFixture.Redis.GetDatabase(null); @@ -181,7 +181,7 @@ public void TestBZMPopNull() Assert.Null(result); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.0.0")] public void TestBZMPopMultiplexerTimeout() { var configurationOptions = new ConfigurationOptions(); @@ -196,7 +196,7 @@ public void TestBZMPopMultiplexerTimeout() Assert.Throws(() => db.BZMPop(0, "my-set", MinMaxModifier.Min)); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.0.0")] public void TestBZMPopMultipleSets() { var db = redisFixture.Redis.GetDatabase(null); @@ -238,7 +238,7 @@ public void TestBZMPopMultipleSets() Assert.Equal("c", result.Item2[1].Value.ToString()); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.0.0")] public void TestBZMPopNoKeysProvided() { var db = redisFixture.Redis.GetDatabase(null); @@ -247,7 +247,7 @@ public void TestBZMPopNoKeysProvided() Assert.Throws(() => db.BZMPop(0, Array.Empty(), MinMaxModifier.Min)); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.0.0")] public void TestBZMPopWithOrderEnum() { var db = redisFixture.Redis.GetDatabase(null); @@ -276,7 +276,7 @@ public void TestBZMPopWithOrderEnum() Assert.Equal("b", resultWithDescendingOrder.Item2[0].Value.ToString()); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "5.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "5.0.0")] public void TestBZPopMin() { var db = redisFixture.Redis.GetDatabase(null); @@ -295,7 +295,7 @@ public void TestBZPopMin() Assert.Equal(1.5, result.Item2.Score); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "5.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "5.0.0")] public void TestBZPopMinNull() { var db = redisFixture.Redis.GetDatabase(null); @@ -307,7 +307,7 @@ public void TestBZPopMinNull() Assert.Null(result); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "5.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "5.0.0")] public void TestBZPopMinMultipleSets() { var db = redisFixture.Redis.GetDatabase(null); @@ -330,7 +330,7 @@ public void TestBZPopMinMultipleSets() Assert.Equal("a", result.Item2.Value.ToString()); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "5.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "5.0.0")] public void TestBZPopMax() { var db = redisFixture.Redis.GetDatabase(null); @@ -349,7 +349,7 @@ public void TestBZPopMax() Assert.Equal(5.1, result.Item2.Score); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "5.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "5.0.0")] public void TestBZPopMaxNull() { var db = redisFixture.Redis.GetDatabase(null); @@ -361,7 +361,7 @@ public void TestBZPopMaxNull() Assert.Null(result); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "5.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "5.0.0")] public void TestBZPopMaxMultipleSets() { var db = redisFixture.Redis.GetDatabase(null); @@ -384,7 +384,7 @@ public void TestBZPopMaxMultipleSets() Assert.Equal("b", result.Item2.Value.ToString()); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.0.0")] public void TestBLMPop() { var db = redisFixture.Redis.GetDatabase(null); @@ -414,7 +414,7 @@ public void TestBLMPop() Assert.Equal("e", resultWithDescendingOrder.Item2[0].ToString()); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.0.0")] public void TestBLMPopNull() { var db = redisFixture.Redis.GetDatabase(null); @@ -426,7 +426,7 @@ public void TestBLMPopNull() Assert.Null(result); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.0.0")] public void TestBLMPopMultipleLists() { var db = redisFixture.Redis.GetDatabase(null); @@ -468,7 +468,7 @@ public void TestBLMPopMultipleLists() Assert.Equal("b", result.Item2[1].ToString()); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.0.0")] public void TestBLMPopNoKeysProvided() { var db = redisFixture.Redis.GetDatabase(null); @@ -477,7 +477,7 @@ public void TestBLMPopNoKeysProvided() Assert.Throws(() => db.BLMPop(0, Array.Empty(), ListSide.Left)); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "2.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "2.0.0")] public void TestBLPop() { var db = redisFixture.Redis.GetDatabase(null); @@ -493,7 +493,7 @@ public void TestBLPop() Assert.Equal("a", result.Item2.ToString()); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "2.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "2.0.0")] public void TestBLPopNull() { var db = redisFixture.Redis.GetDatabase(null); @@ -505,7 +505,7 @@ public void TestBLPopNull() Assert.Null(result); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "2.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "2.0.0")] public void TestBLPopMultipleLists() { var db = redisFixture.Redis.GetDatabase(null); @@ -528,7 +528,7 @@ public void TestBLPopMultipleLists() Assert.Equal("a", result.Item2.ToString()); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "2.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "2.0.0")] public void TestBRPop() { var db = redisFixture.Redis.GetDatabase(null); @@ -544,7 +544,7 @@ public void TestBRPop() Assert.Equal("b", result.Item2.ToString()); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "2.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "2.0.0")] public void TestBRPopNull() { var db = redisFixture.Redis.GetDatabase(null); @@ -556,7 +556,7 @@ public void TestBRPopNull() Assert.Null(result); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "2.0.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "2.0.0")] public void TestBRPopMultipleLists() { var db = redisFixture.Redis.GetDatabase(null); @@ -579,7 +579,7 @@ public void TestBRPopMultipleLists() Assert.Equal("b", result.Item2.ToString()); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "6.2.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "6.2.0")] public void TestBLMove() { var db = redisFixture.Redis.GetDatabase(null); @@ -636,7 +636,7 @@ public void TestBLMove() Assert.Equal("c", db.ListGetByIndex("list-two", 1)); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "2.2.0")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "2.2.0")] public void TestBRPopLPush() { var db = redisFixture.Redis.GetDatabase(null); diff --git a/tests/NRedisStack.Tests/CountMinSketch/CmsTests.cs b/tests/NRedisStack.Tests/CountMinSketch/CmsTests.cs index 816b0385..5463725d 100644 --- a/tests/NRedisStack.Tests/CountMinSketch/CmsTests.cs +++ b/tests/NRedisStack.Tests/CountMinSketch/CmsTests.cs @@ -211,7 +211,7 @@ public async Task TestQueryAsync() Assert.Equal(new long[] { 10, 15 }, resp); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMerge() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -260,7 +260,7 @@ public void TestMerge() } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMergeAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); diff --git a/tests/NRedisStack.Tests/Examples/ExampleTests.cs b/tests/NRedisStack.Tests/Examples/ExampleTests.cs index adc5636f..1082fb0d 100644 --- a/tests/NRedisStack.Tests/Examples/ExampleTests.cs +++ b/tests/NRedisStack.Tests/Examples/ExampleTests.cs @@ -171,7 +171,7 @@ public async Task JsonWithSearchPipeline() // Assert.Equal("person:01", firstPerson?.Id); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task PipelineWithAsync() { // Connect to the Redis server @@ -229,7 +229,7 @@ public async Task PipelineWithAsync() Assert.Equal("temp:JLM", respons[0].key); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TransactionExample() { // Connect to the Redis server diff --git a/tests/NRedisStack.Tests/Gears/GearsTests.cs b/tests/NRedisStack.Tests/Gears/GearsTests.cs index e4c5e7bb..02a7c474 100644 --- a/tests/NRedisStack.Tests/Gears/GearsTests.cs +++ b/tests/NRedisStack.Tests/Gears/GearsTests.cs @@ -8,22 +8,24 @@ public class GearsTests : AbstractNRedisStackTest, IDisposable // private readonly string key = "GEARS_TESTS"; public GearsTests(RedisFixture redisFixture) : base(redisFixture) { } - [SkipIfRedis(Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.Enterprise, Comparison.LessThan, "7.1.242")] public void TestTFunctionLoadDelete() { IDatabase db = redisFixture.Redis.GetDatabase(); - db.ExecuteBroadcast("REDISGEARS_2.REFRESHCLUSTER"); + if (!redisFixture.isEnterprise) + db.ExecuteBroadcast("REDISGEARS_2.REFRESHCLUSTER"); db.Execute("FLUSHALL"); Assert.True(db.TFunctionLoad(GenerateLibCode("lib"))); Assert.True(db.TFunctionDelete("lib")); } - [SkipIfRedis(Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.Enterprise, Comparison.LessThan, "7.1.242")] public async Task TestTFunctionLoadDeleteAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); - db.ExecuteBroadcast("REDISGEARS_2.REFRESHCLUSTER"); + if (!redisFixture.isEnterprise) + db.ExecuteBroadcast("REDISGEARS_2.REFRESHCLUSTER"); db.Execute("FLUSHALL"); TryDeleteLib(db, "lib", "lib1", "lib2", "lib3"); @@ -31,11 +33,12 @@ public async Task TestTFunctionLoadDeleteAsync() Assert.True(await db.TFunctionDeleteAsync("lib")); } - [SkipIfRedis(Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.Enterprise, Comparison.LessThan, "7.1.242")] public void TestTFunctionList() { IDatabase db = redisFixture.Redis.GetDatabase(); - db.ExecuteBroadcast("REDISGEARS_2.REFRESHCLUSTER"); + if (!redisFixture.isEnterprise) + db.ExecuteBroadcast("REDISGEARS_2.REFRESHCLUSTER"); db.Execute("FLUSHALL"); TryDeleteLib(db, "lib", "lib1", "lib2", "lib3"); @@ -63,11 +66,12 @@ public void TestTFunctionList() Assert.True(db.TFunctionDelete("lib3")); } - [SkipIfRedis(Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.Enterprise, Comparison.LessThan, "7.1.242")] public async Task TestTFunctionListAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); - db.ExecuteBroadcast("REDISGEARS_2.REFRESHCLUSTER"); + if (!redisFixture.isEnterprise) + db.ExecuteBroadcast("REDISGEARS_2.REFRESHCLUSTER"); db.Execute("FLUSHALL"); TryDeleteLib(db, "lib", "lib1", "lib2", "lib3"); @@ -93,11 +97,12 @@ public async Task TestTFunctionListAsync() Assert.True(await db.TFunctionDeleteAsync("lib3")); } - [SkipIfRedis(Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.Enterprise, Comparison.LessThan, "7.1.242")] public void TestTFCall() { IDatabase db = redisFixture.Redis.GetDatabase(); - db.ExecuteBroadcast("REDISGEARS_2.REFRESHCLUSTER"); + if (!redisFixture.isEnterprise) + db.ExecuteBroadcast("REDISGEARS_2.REFRESHCLUSTER"); db.Execute("FLUSHALL"); TryDeleteLib(db, "lib", "lib1", "lib2", "lib3"); @@ -108,11 +113,12 @@ public void TestTFCall() Assert.True(db.TFunctionDelete("lib")); } - [SkipIfRedis(Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.Enterprise, Comparison.LessThan, "7.1.242")] public async Task TestTFCallAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); - db.ExecuteBroadcast("REDISGEARS_2.REFRESHCLUSTER"); + if (!redisFixture.isEnterprise) + db.ExecuteBroadcast("REDISGEARS_2.REFRESHCLUSTER"); db.Execute("FLUSHALL"); TryDeleteLib(db, "lib", "lib1", "lib2", "lib3"); @@ -123,7 +129,7 @@ public async Task TestTFCallAsync() Assert.True(await db.TFunctionDeleteAsync("lib")); } - [SkipIfRedis(Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.Enterprise, Comparison.LessThan, "7.1.242")] public void TestGearsCommandBuilder() { // TFunctionLoad: diff --git a/tests/NRedisStack.Tests/Json/JsonTests.cs b/tests/NRedisStack.Tests/Json/JsonTests.cs index 052fb836..34994588 100644 --- a/tests/NRedisStack.Tests/Json/JsonTests.cs +++ b/tests/NRedisStack.Tests/Json/JsonTests.cs @@ -731,7 +731,7 @@ public async Task GetAsync() Assert.Equal(35, people[1]!.Age); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.1.242")] public void MSet() { var commands = new JsonCommands(redisFixture.Redis.GetDatabase()); @@ -755,7 +755,7 @@ public void MSet() Assert.Throws(() => commands.MSet(new KeyPathValue[0])); } - [SkipIfRedis(Is.OSSCluster, Comparison.LessThan, "7.1.242")] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise, Comparison.LessThan, "7.1.242")] public async Task MSetAsync() { var commands = new JsonCommands(redisFixture.Redis.GetDatabase()); @@ -816,7 +816,7 @@ public async Task MergeAsync() Assert.Equal("{\"person\":{\"name\":\"John Doe\",\"phone\":\"123-456-7890\",\"address\":{\"home\":\"123 Main Street\",\"work\":\"Redis office\"}}}", (await commands.GetAsync("test_merge")).ToString()); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void MGet() { var commands = new JsonCommands(redisFixture.Redis.GetDatabase()); @@ -831,7 +831,7 @@ public void MGet() Assert.Equal("[\"world\"]", result[1].ToString()); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task MGetAsync() { var commands = new JsonCommandsAsync(redisFixture.Redis.GetDatabase()); @@ -1154,80 +1154,80 @@ public async Task TestGetIssue198_Async() } [Fact] - public void TestSetWithSerializationOptions() - { - var commands = new JsonCommands(redisFixture.Redis.GetDatabase()); + public void TestSetWithSerializationOptions() + { + var commands = new JsonCommands(redisFixture.Redis.GetDatabase()); var keys = CreateKeyNames(1); - var key = keys[0]; - var jsonOptions = new JsonSerializerOptions { IncludeFields = true }; + var key = keys[0]; + var jsonOptions = new JsonSerializerOptions { IncludeFields = true }; var person = new Person { Name = "Developer", Age = 23, Birthday = DateTime.Today }; - commands.Set(key, "$", person, serializerOptions: jsonOptions); + commands.Set(key, "$", person, serializerOptions: jsonOptions); Person? result = commands.Get(key, serializerOptions: jsonOptions); - Assert.NotNull(result); - Assert.Equal(person.Name, result!.Name); - Assert.Equal(person.Age, result!.Age); - Assert.NotNull(result!.Birthday); - Assert.Equal(person.Birthday, result!.Birthday); + Assert.NotNull(result); + Assert.Equal(person.Name, result!.Name); + Assert.Equal(person.Age, result!.Age); + Assert.NotNull(result!.Birthday); + Assert.Equal(person.Birthday, result!.Birthday); } [Fact] - public async Task TestSetWithSerializationOptionsAsync() - { - var commands = new JsonCommands(redisFixture.Redis.GetDatabase()); + public async Task TestSetWithSerializationOptionsAsync() + { + var commands = new JsonCommands(redisFixture.Redis.GetDatabase()); var keys = CreateKeyNames(1); - var key = keys[0]; - var jsonOptions = new JsonSerializerOptions { IncludeFields = true }; - var person = new Person { Name = "Developer", Age = 23, Birthday = DateTime.Today }; - - await commands.SetAsync(key, "$", person, serializerOptions: jsonOptions); + var key = keys[0]; + var jsonOptions = new JsonSerializerOptions { IncludeFields = true }; + var person = new Person { Name = "Developer", Age = 23, Birthday = DateTime.Today }; + + await commands.SetAsync(key, "$", person, serializerOptions: jsonOptions); Person? result = await commands.GetAsync(key, serializerOptions: jsonOptions); - Assert.NotNull(result); - Assert.Equal(person.Name, result!.Name); - Assert.Equal(person.Age, result!.Age); - Assert.NotNull(result!.Birthday); - Assert.Equal(person.Birthday, result!.Birthday); + Assert.NotNull(result); + Assert.Equal(person.Name, result!.Name); + Assert.Equal(person.Age, result!.Age); + Assert.NotNull(result!.Birthday); + Assert.Equal(person.Birthday, result!.Birthday); } [SkipIfRedis("7.1.242")] - public void MergeWithSerializationOptions() - { + public void MergeWithSerializationOptions() + { string expected = "{\"age\":23,\"birthday\":\"2023-12-31T00:00:00\",\"name\":\"Developer\"}"; var commands = new JsonCommands(redisFixture.Redis.GetDatabase()); var keys = CreateKeyNames(1); - var key = keys[0]; + var key = keys[0]; commands.Set(key, "$", new { age = 5, birthday = new DateTime(2000, 1, 1) }); var jsonOptions = new JsonSerializerOptions { IncludeFields = true, PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; var person = new Person { Name = "Developer", Age = 23, Birthday = new DateTime(2023, 12, 31) }; - commands.Merge(key, "$", person, serializerOptions: jsonOptions); - RedisResult rr = commands.Get(key); - - Assert.False(rr.IsNull); - string actual = rr.ToString()!; + commands.Merge(key, "$", person, serializerOptions: jsonOptions); + RedisResult rr = commands.Get(key); + + Assert.False(rr.IsNull); + string actual = rr.ToString()!; Assert.Equal(expected, actual); } [SkipIfRedis("7.1.242")] - public async Task MergeWithSerializationOptionsAsync() - { + public async Task MergeWithSerializationOptionsAsync() + { string expected = "{\"age\":23,\"birthday\":\"2023-12-31T00:00:00\",\"name\":\"Developer\"}"; var commands = new JsonCommands(redisFixture.Redis.GetDatabase()); var keys = CreateKeyNames(1); - var key = keys[0]; + var key = keys[0]; await commands.SetAsync(key, "$", new { age = 5, birthday = new DateTime(2000, 1, 1) }); var jsonOptions = new JsonSerializerOptions { IncludeFields = true, PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; var person = new Person { Name = "Developer", Age = 23, Birthday = new DateTime(2023, 12, 31) }; - await commands.MergeAsync(key, "$", person, serializerOptions: jsonOptions); - RedisResult rr = await commands.GetAsync(key); - - Assert.False(rr.IsNull); - string actual = rr.ToString()!; + await commands.MergeAsync(key, "$", person, serializerOptions: jsonOptions); + RedisResult rr = await commands.GetAsync(key); + + Assert.False(rr.IsNull); + string actual = rr.ToString()!; Assert.Equal(expected, actual); } } \ No newline at end of file diff --git a/tests/NRedisStack.Tests/RedisFixture.cs b/tests/NRedisStack.Tests/RedisFixture.cs index 02f92316..dac4b6f5 100644 --- a/tests/NRedisStack.Tests/RedisFixture.cs +++ b/tests/NRedisStack.Tests/RedisFixture.cs @@ -9,6 +9,7 @@ public class RedisFixture : IDisposable readonly string? redisCluster = Environment.GetEnvironmentVariable("REDIS_CLUSTER"); readonly string? numRedisClusterNodesEnv = Environment.GetEnvironmentVariable("NUM_REDIS_CLUSTER_NODES"); + public bool isEnterprise = Environment.GetEnvironmentVariable("IS_ENTERPRISE") == "true"; public bool isOSSCluster; public RedisFixture() @@ -43,6 +44,8 @@ private ConnectionMultiplexer Connect(ConfigurationOptions configurationOptions, string host = parts[0]; int startPort = int.Parse(parts[1]); + var endpoints = new EndPointCollection(); // TODO: checl if needed + configurationOptions.EndPoints.Clear(); int numRedisClusterNodes = int.Parse(numRedisClusterNodesEnv!); for (int i = 0; i < numRedisClusterNodes; i++) diff --git a/tests/NRedisStack.Tests/Search/SearchTests.cs b/tests/NRedisStack.Tests/Search/SearchTests.cs index e4a0affc..7ab708d1 100644 --- a/tests/NRedisStack.Tests/Search/SearchTests.cs +++ b/tests/NRedisStack.Tests/Search/SearchTests.cs @@ -57,7 +57,7 @@ private void AddDocument(IDatabase db, string key, Dictionary ob db.Execute("HSET", nameValue); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public void TestAggregationRequestVerbatim() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -80,7 +80,7 @@ public void TestAggregationRequestVerbatim() Assert.Equal(0, res.TotalResults); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public async Task TestAggregationRequestVerbatimAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -103,7 +103,7 @@ public async Task TestAggregationRequestVerbatimAsync() Assert.Equal(0, res.TotalResults); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public void TestAggregationRequestTimeout() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -125,7 +125,7 @@ public void TestAggregationRequestTimeout() Assert.Equal(2, res.TotalResults); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public async Task TestAggregationRequestTimeoutAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -284,7 +284,7 @@ public async Task TestAggregationsLoadAsync() - [Fact] + [SkipIfRedis(Is.OSSCluster)] public void TestAggregationRequestParamsDialect() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -315,7 +315,7 @@ public void TestAggregationRequestParamsDialect() Assert.Equal(10, r1.GetLong("sum")); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public async Task TestAggregationRequestParamsDialectAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -350,7 +350,7 @@ public async Task TestAggregationRequestParamsDialectAsync() Assert.Equal(10, r1.GetLong("sum")); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public void TestAggregationRequestParamsWithDefaultDialect() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -381,7 +381,7 @@ public void TestAggregationRequestParamsWithDefaultDialect() Assert.Equal(10, r1.GetLong("sum")); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public async Task TestAggregationRequestParamsWithDefaultDialectAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -699,7 +699,7 @@ public async Task CreateWithFieldNamesAsync() Assert.Equal(1, nonAttribute.TotalResults); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void AlterAdd() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -763,7 +763,7 @@ public void AlterAdd() Assert.Equal(4, info.CursorStats.Count); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task AlterAddAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -825,7 +825,7 @@ public async Task AlterAddAsync() Assert.Equal(4, info.CursorStats.Count); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestConfig() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -836,7 +836,7 @@ public void TestConfig() Assert.Equal("100", configMap["TIMEOUT"].ToString()); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestConfigAsnyc() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -847,7 +847,7 @@ public async Task TestConfigAsnyc() Assert.Equal("100", configMap["TIMEOUT"].ToString()); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void configOnTimeout() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -859,7 +859,7 @@ public void configOnTimeout() try { ft.ConfigSet("ON_TIMEOUT", "null"); } catch (RedisServerException) { } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task configOnTimeoutAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -871,7 +871,7 @@ public async Task configOnTimeoutAsync() try { ft.ConfigSet("ON_TIMEOUT", "null"); } catch (RedisServerException) { } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestDialectConfig() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -893,7 +893,7 @@ public void TestDialectConfig() Assert.True(ft.ConfigSet("DEFAULT_DIALECT", "1")); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestDialectConfigAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -1039,7 +1039,7 @@ public async Task TestCursorAsync() catch (RedisException) { } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestAggregationGroupBy() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -1304,7 +1304,7 @@ public async Task TestDictionaryAsync() } string explainQuery = "@f3:f3_val @f2:f2_val @f1:f1_val"; - [Fact] + [SkipIfRedis(Is.OSSCluster)] public void TestExplain() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -1328,7 +1328,7 @@ public void TestExplain() } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public async Task TestExplainAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -1351,7 +1351,7 @@ public async Task TestExplainAsync() Assert.False(res.Length == 0); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public void TestExplainCli() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -1374,7 +1374,7 @@ public void TestExplainCli() Assert.False(res.Length == 0); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public async Task TestExplainCliAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -1397,7 +1397,7 @@ public async Task TestExplainCliAsync() Assert.False(res.Length == 0); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public void TestExplainWithDefaultDialect() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -1414,7 +1414,7 @@ public void TestExplainWithDefaultDialect() Assert.False(res.Length == 0); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public async Task TestExplainWithDefaultDialectAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -1431,7 +1431,7 @@ public async Task TestExplainWithDefaultDialectAsync() Assert.False(res.Length == 0); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public void TestSynonym() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -1457,7 +1457,7 @@ public void TestSynonym() Assert.Equal(expected, dump); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public async Task TestSynonymAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -1780,7 +1780,7 @@ public async Task TestFiltersAsync() Assert.Equal("doc1", res1.Documents[0].Id); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public void TestQueryCommandBuilder() { var testQuery = new Query("foo").HighlightFields(new Query.HighlightTags("", ""), "txt") @@ -1878,7 +1878,7 @@ public void TestQueryCommandBuilder() Assert.Empty(res.Documents); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public void TestQueryCommandBuilderReturnField() { var testQuery = new Query("foo").HighlightFields("txt") @@ -2238,7 +2238,7 @@ public void TestQueryParamsWithParams_DefaultDialect() Assert.Equal(2, res.TotalResults); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public void TestBasicSpellCheck() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -2258,7 +2258,7 @@ public void TestBasicSpellCheck() Assert.Equal(2, reply["name"]["name2"]); } - [Fact] + [SkipIfRedis(Is.OSSCluster)] public async Task TestBasicSpellCheckAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -2622,7 +2622,7 @@ public async Task getSuggestionLengthAndDeleteSuggestionAsync() Assert.Equal(2L, await ft.SugLenAsync(key)); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public void TestProfileSearch() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -2646,7 +2646,7 @@ public void TestProfileSearch() Assert.Equal("1", iteratorsProfile["Size"].ToString()); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public async Task TestProfileSearchAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -2671,7 +2671,7 @@ public async Task TestProfileSearchAsync() } - [Fact] + [SkipIfRedis(Is.Enterprise)] public void TestProfile() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -2701,7 +2701,7 @@ public void TestProfile() Assert.Equal(1, aggregateRes.TotalResults); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public async Task TestProfileAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); diff --git a/tests/NRedisStack.Tests/SkipIfRedisAttribute.cs b/tests/NRedisStack.Tests/SkipIfRedisAttribute.cs index 856c9bca..b62dc17a 100644 --- a/tests/NRedisStack.Tests/SkipIfRedisAttribute.cs +++ b/tests/NRedisStack.Tests/SkipIfRedisAttribute.cs @@ -10,7 +10,8 @@ public enum Comparison public enum Is { Standalone, - OSSCluster + OSSCluster, + Enterprise } [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] @@ -18,15 +19,27 @@ public class SkipIfRedisAttribute : FactAttribute { private readonly string _targetVersion; private readonly Comparison _comparison; - private readonly Is? _is = null; - private readonly string DefaultRedisConnectionString = Environment.GetEnvironmentVariable("REDIS") ?? "localhost:6379"; + private readonly List _environments = new List(); public SkipIfRedisAttribute( - Is _is, + Is environment, Comparison comparison = Comparison.LessThan, string targetVersion = "0.0.0") { - this._is = _is; + _environments.Add(environment); + _comparison = comparison; + _targetVersion = targetVersion; + } + + // skip more than one environment: + public SkipIfRedisAttribute( + Is environment1, + Is environment2, + Comparison comparison = Comparison.LessThan, + string targetVersion = "0.0.0") + { + _environments.Add(environment1); + _environments.Add(environment2); _comparison = comparison; _targetVersion = targetVersion; } @@ -51,11 +64,9 @@ public override string? Skip bool skipped = false; using (RedisFixture redisFixture = new RedisFixture()) { - - // Cluster check - if (_is != null) + foreach (var environment in _environments) { - switch (_is) + switch (environment) { case Is.OSSCluster: if (redisFixture.isOSSCluster) @@ -66,13 +77,20 @@ public override string? Skip break; case Is.Standalone: - if (!redisFixture.isOSSCluster) { skipReason = skipReason + " Redis server is not OSS cluster."; skipped = true; } break; + + case Is.Enterprise: + if (redisFixture.isEnterprise) + { + skipReason = skipReason + " Redis Enterprise environment."; + skipped = true; + } + break; } } // Version check (if Is.Standalone/Is.OSSCluster is set then ) diff --git a/tests/NRedisStack.Tests/Tdigest/TdigestTests.cs b/tests/NRedisStack.Tests/Tdigest/TdigestTests.cs index c7bb507c..9e748528 100644 --- a/tests/NRedisStack.Tests/Tdigest/TdigestTests.cs +++ b/tests/NRedisStack.Tests/Tdigest/TdigestTests.cs @@ -365,7 +365,7 @@ public async Task TestAddAsync() AssertMergedUnmergedNodes(tdigest, "tdadd", 0, 5); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMerge() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -388,7 +388,7 @@ public void TestMerge() } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMergeAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -411,7 +411,7 @@ public async Task TestMergeAsync() AssertMergedUnmergedNodes(tdigest, "td2", 3, 2); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void MergeMultiAndParams() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -432,7 +432,7 @@ public void MergeMultiAndParams() Assert.Equal(50, tdigest.Info("to").Compression); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task MergeMultiAndParamsAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMADD.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMADD.cs index 4acf5547..07b0087e 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMADD.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMADD.cs @@ -13,7 +13,7 @@ public class TestMADD : AbstractNRedisStackTest, IDisposable public TestMADD(RedisFixture redisFixture) : base(redisFixture) { } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] [Obsolete] public void TestStarMADD() { @@ -43,7 +43,7 @@ public void TestStarMADD() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestSuccessfulMADD() { @@ -73,7 +73,7 @@ public void TestSuccessfulMADD() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestOverrideMADD() { IDatabase db = redisFixture.Redis.GetDatabase(); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMAddAsync.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMAddAsync.cs index 5bc4b04a..625fdf3a 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMAddAsync.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMAddAsync.cs @@ -11,7 +11,7 @@ public class TestMAddAsync : AbstractNRedisStackTest public TestMAddAsync(RedisFixture redisFixture) : base(redisFixture) { } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] [Obsolete] public async Task TestStarMADD() { @@ -44,7 +44,7 @@ public async Task TestStarMADD() } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestSuccessfulMAdd() { var keys = CreateKeyNames(2); @@ -74,7 +74,7 @@ public async Task TestSuccessfulMAdd() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestOverrideMAdd() { var keys = CreateKeyNames(2); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMGet.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMGet.cs index ae313418..e2219c54 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMGet.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMGet.cs @@ -12,7 +12,7 @@ public class TestMGet : AbstractNRedisStackTest, IDisposable public TestMGet(RedisFixture redisFixture) : base(redisFixture) { } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMGetQuery() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -39,7 +39,7 @@ public void TestMGetQuery() } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMGetQueryWithLabels() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -66,7 +66,7 @@ public void TestMGetQueryWithLabels() Assert.Equal(labels2, results[1].labels); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMGetQuerySelectedLabels() { IDatabase db = redisFixture.Redis.GetDatabase(); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMGetAsync.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMGetAsync.cs index 4fe94e37..fb3ce257 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMGetAsync.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMGetAsync.cs @@ -8,7 +8,7 @@ public class TestMGetAsync : AbstractNRedisStackTest { public TestMGetAsync(RedisFixture redisFixture) : base(redisFixture) { } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMGetQuery() { var keys = CreateKeyNames(2); @@ -36,7 +36,7 @@ public async Task TestMGetQuery() Assert.Equal(new List(), results[1].labels); } - [Fact] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMGetQueryWithLabels() { var keys = CreateKeyNames(2); @@ -64,7 +64,7 @@ public async Task TestMGetQueryWithLabels() Assert.Equal(labels2, results[1].labels); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMGetQuerySelectedLabelsAsync() { var keys = CreateKeyNames(2); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRange.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRange.cs index 391640d8..1c12a4be 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRange.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRange.cs @@ -29,7 +29,7 @@ private List CreateData(ITimeSeriesCommands ts, int timeBucket, return tuples; } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestSimpleMRange() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -52,7 +52,7 @@ public void TestSimpleMRange() Assert.Equal(tuples, results[i].values); } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRangeWithLabels() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -76,7 +76,7 @@ public void TestMRangeWithLabels() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRangeSelectLabels() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -105,7 +105,7 @@ public void TestMRangeSelectLabels() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRangeFilter() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -122,7 +122,7 @@ public void TestMRangeFilter() Assert.Equal(tuples, results[0].values); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRangeCount() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -147,7 +147,7 @@ public void TestMRangeCount() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRangeAggregation() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -171,7 +171,7 @@ public void TestMRangeAggregation() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRangeAlign() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -230,7 +230,7 @@ public void TestMissingTimeBucket() Assert.Equal("RANGE Aggregation should have timeBucket value", ex.Message); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRangeGroupby() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -256,7 +256,7 @@ public void TestMRangeGroupby() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRangeReduce() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -281,7 +281,7 @@ public void TestMRangeReduce() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRangeFilterBy() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -308,7 +308,7 @@ public void TestMRangeFilterBy() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRangeLatest() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -319,7 +319,7 @@ public void TestMRangeLatest() string primaryTsKey = _keys[0], compactedTsKey = _keys[1]; var compactionRule = new TimeSeriesRule( compactedTsKey, - (long)TimeSpan.FromHours(1).TotalMilliseconds, // 1h used to force partial bucket + (long)TimeSpan.FromHours(1).TotalMilliseconds, // 1h used to force partial bucket TsAggregation.Sum); ts.Create(primaryTsKey, labels: new[] { label }); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRangeAsync.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRangeAsync.cs index dd212aef..3f0c6899 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRangeAsync.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRangeAsync.cs @@ -27,7 +27,7 @@ private async Task> CreateData(TimeSeriesCommands ts, stri return tuples; } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestSimpleMRange() { var keys = CreateKeyNames(2); @@ -51,7 +51,7 @@ public async Task TestSimpleMRange() Assert.Equal(tuples, results[i].values); } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRangeWithLabels() { var keys = CreateKeyNames(2); @@ -76,7 +76,7 @@ public async Task TestMRangeWithLabels() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRangeSelectLabels() { var keys = CreateKeyNames(2); @@ -110,7 +110,7 @@ await ts.MRangeAsync("-", "+", } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRangeFilter() { var keys = CreateKeyNames(2); @@ -128,7 +128,7 @@ public async Task TestMRangeFilter() Assert.Equal(tuples, results[0].values); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRangeCount() { var keys = CreateKeyNames(2); @@ -154,7 +154,7 @@ public async Task TestMRangeCount() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRangeAggregation() { var keys = CreateKeyNames(2); @@ -179,7 +179,7 @@ public async Task TestMRangeAggregation() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRangeAlign() { var keys = CreateKeyNames(2); @@ -203,7 +203,7 @@ public async Task TestMRangeAlign() Assert.Equal(expected[0], results[0].values[0]); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMissingFilter() { var keys = CreateKeyNames(2); @@ -222,7 +222,7 @@ public async Task TestMissingFilter() Assert.Equal("There should be at least one filter on MRANGE/MREVRANGE", ex.Message); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMissingTimeBucket() { var keys = CreateKeyNames(2); @@ -245,7 +245,7 @@ await ts.MRangeAsync("-", "+", }); Assert.Equal("RANGE Aggregation should have timeBucket value", ex.Message); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRangeGroupby() { var keys = CreateKeyNames(2); @@ -272,7 +272,7 @@ public async Task TestMRangeGroupby() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRangeReduce() { var keys = CreateKeyNames(2); @@ -298,7 +298,7 @@ public async Task TestMRangeReduce() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRangeFilterBy() { var keys = CreateKeyNames(2); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRevRange.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRevRange.cs index aa3a76fd..4399ac18 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRevRange.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRevRange.cs @@ -27,7 +27,7 @@ private List CreateData(ITimeSeriesCommands ts, string[] keys, return tuples; } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestSimpleMRevRange() { var keys = CreateKeyNames(2); @@ -52,7 +52,7 @@ public void TestSimpleMRevRange() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRevRangeWithLabels() { var keys = CreateKeyNames(2); @@ -78,7 +78,7 @@ public void TestMRevRangeWithLabels() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRevRangeSelectLabels() { var keys = CreateKeyNames(2); @@ -103,7 +103,7 @@ public void TestMRevRangeSelectLabels() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRevRangeFilter() { var keys = CreateKeyNames(2); @@ -121,7 +121,7 @@ public void TestMRevRangeFilter() Assert.Equal(ReverseData(tuples), results[0].values); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRevRangeCount() { var keys = CreateKeyNames(2); @@ -147,7 +147,7 @@ public void TestMRevRangeCount() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRevRangeAggregation() { var keys = CreateKeyNames(2); @@ -172,7 +172,7 @@ public void TestMRevRangeAggregation() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRevRangeAlign() { var keys = CreateKeyNames(2); @@ -196,7 +196,7 @@ public void TestMRevRangeAlign() Assert.Equal(expected[0], results[0].values[0]); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMissingFilter() { var keys = CreateKeyNames(2); @@ -215,7 +215,7 @@ public void TestMissingFilter() Assert.Equal("There should be at least one filter on MRANGE/MREVRANGE", ex.Message); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMissingTimeBucket() { var keys = CreateKeyNames(2); @@ -234,7 +234,7 @@ public void TestMissingTimeBucket() Assert.Equal("RANGE Aggregation should have timeBucket value", ex.Message); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRevRangeGroupby() { var keys = CreateKeyNames(2); @@ -261,7 +261,7 @@ public void TestMRevRangeGroupby() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRevRangeReduce() { var keys = CreateKeyNames(2); @@ -288,7 +288,7 @@ public void TestMRevRangeReduce() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestMRevRangeFilterBy() { var keys = CreateKeyNames(2); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRevRangeAsync.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRevRangeAsync.cs index 34a4c554..d2327c11 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRevRangeAsync.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestMRevRangeAsync.cs @@ -27,7 +27,7 @@ private async Task> CreateData(TimeSeriesCommands ts, stri return tuples; } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestSimpleMRevRange() { var keys = CreateKeyNames(2); @@ -52,7 +52,7 @@ public async Task TestSimpleMRevRange() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRevRangeWithLabels() { var keys = CreateKeyNames(2); @@ -77,7 +77,7 @@ public async Task TestMRevRangeWithLabels() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRevRangeSelectLabels() { var keys = CreateKeyNames(2); @@ -102,7 +102,7 @@ public async Task TestMRevRangeSelectLabels() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRevRangeFilter() { var keys = CreateKeyNames(2); @@ -120,7 +120,7 @@ public async Task TestMRevRangeFilter() Assert.Equal(ReverseData(tuples), results[0].values); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRevRangeCount() { var keys = CreateKeyNames(2); @@ -146,7 +146,7 @@ public async Task TestMRevRangeCount() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRangeAggregation() { var keys = CreateKeyNames(2); @@ -171,7 +171,7 @@ public async Task TestMRangeAggregation() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRevRangeAlign() { var keys = CreateKeyNames(2); @@ -195,7 +195,7 @@ public async Task TestMRevRangeAlign() Assert.Equal(expected[0], results[0].values[0]); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMissingFilter() { var keys = CreateKeyNames(2); @@ -214,7 +214,7 @@ public async Task TestMissingFilter() Assert.Equal("There should be at least one filter on MRANGE/MREVRANGE", ex.Message); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMissingTimeBucket() { var keys = CreateKeyNames(2); @@ -238,7 +238,7 @@ await ts.MRevRangeAsync("-", "+", Assert.Equal("RANGE Aggregation should have timeBucket value", ex.Message); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRevRangeGroupby() { var keys = CreateKeyNames(2); @@ -265,7 +265,7 @@ public async Task TestMRevRangeGroupby() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRevRangeReduce() { var keys = CreateKeyNames(2); @@ -292,7 +292,7 @@ public async Task TestMRevRangeReduce() } } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestMRevRangeFilterBy() { var keys = CreateKeyNames(2); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestQueryIndex.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestQueryIndex.cs index dd82f55e..cd49bad4 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestQueryIndex.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestQueryIndex.cs @@ -10,7 +10,7 @@ public class TestQueryIndex : AbstractNRedisStackTest, IDisposable public TestQueryIndex(RedisFixture redisFixture) : base(redisFixture) { } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestTSQueryIndex() { var db = redisFixture.Redis.GetDatabase(); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestQueryIndexAsync.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestQueryIndexAsync.cs index 0e1be023..92a084bd 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestQueryIndexAsync.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestQueryIndexAsync.cs @@ -8,7 +8,7 @@ public class TestQueryIndexAsync : AbstractNRedisStackTest { public TestQueryIndexAsync(RedisFixture redisFixture) : base(redisFixture) { } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestTSQueryIndex() { var keys = CreateKeyNames(2); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRange.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRange.cs index 342f6fb2..00bda2b4 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRange.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRange.cs @@ -126,7 +126,7 @@ public void TestFilterBy() Assert.Equal(tuples.GetRange(2, 1), res); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void latest() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -161,7 +161,7 @@ public void latest() Assert.Equal(new List() { latest, compact }, ts.RevRange("ts2", 0, 10, true)); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestAlignTimestamp() { IDatabase db = redisFixture.Redis.GetDatabase(); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRangeAsync.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRangeAsync.cs index 186bb25b..ab9aba4d 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRangeAsync.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRangeAsync.cs @@ -129,7 +129,7 @@ public async Task TestFilterBy() Assert.Equal(tuples.GetRange(2, 1), res); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestLatestAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); @@ -164,7 +164,7 @@ public async Task TestLatestAsync() Assert.Equal(new List() { latest, compact }, await ts.RevRangeAsync("ts2", 0, 10, true)); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestAlignTimestampAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRevRange.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRevRange.cs index e9e0cbcd..bff63d04 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRevRange.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRevRange.cs @@ -20,7 +20,7 @@ private List CreateData(ITimeSeriesCommands ts, string key, int return tuples; } - [Fact] + [SkipIfRedis(Is.Enterprise)] public void TestSimpleRevRange() { var key = CreateKeyName(); @@ -31,7 +31,7 @@ public void TestSimpleRevRange() Assert.Equal(ReverseData(tuples), ts.RevRange(key, "-", "+")); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public void TestRevRangeCount() { var key = CreateKeyName(); @@ -42,7 +42,7 @@ public void TestRevRangeCount() Assert.Equal(ReverseData(tuples).GetRange(0, 5), ts.RevRange(key, "-", "+", count: 5)); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public void TestRevRangeAggregation() { var key = CreateKeyName(); @@ -53,7 +53,7 @@ public void TestRevRangeAggregation() Assert.Equal(ReverseData(tuples), ts.RevRange(key, "-", "+", aggregation: TsAggregation.Min, timeBucket: 50)); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public void TestRevRangeAlign() { var key = CreateKeyName(); @@ -95,7 +95,7 @@ public void TestRevRangeAlign() Assert.Equal(resStart, ts.RevRange(key, 1, 30, align: 1, aggregation: TsAggregation.Count, timeBucket: 10)); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public void TestMissingTimeBucket() { var key = CreateKeyName(); @@ -108,7 +108,7 @@ public void TestMissingTimeBucket() } - [Fact] + [SkipIfRedis(Is.Enterprise)] public void TestFilterBy() { var key = CreateKeyName(); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRevRangeAsync.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRevRangeAsync.cs index 873e06d0..98703e04 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRevRangeAsync.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRevRangeAsync.cs @@ -21,7 +21,7 @@ private async Task> CreateData(TimeSeriesCommands ts, stri return tuples; } - [Fact] + [SkipIfRedis(Is.Enterprise)] public async Task TestSimpleRevRange() { var key = CreateKeyName(); @@ -32,7 +32,7 @@ public async Task TestSimpleRevRange() Assert.Equal(ReverseData(tuples), await ts.RevRangeAsync(key, "-", "+")); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public async Task TestRevRangeCount() { var key = CreateKeyName(); @@ -43,7 +43,7 @@ public async Task TestRevRangeCount() Assert.Equal(ReverseData(tuples).GetRange(0, 5), await ts.RevRangeAsync(key, "-", "+", count: 5)); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public async Task TestRevRangeAggregation() { var key = CreateKeyName(); @@ -54,7 +54,7 @@ public async Task TestRevRangeAggregation() Assert.Equal(ReverseData(tuples), await ts.RevRangeAsync(key, "-", "+", aggregation: TsAggregation.Min, timeBucket: 50)); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public async Task TestRevRangeAlign() { var key = CreateKeyName(); @@ -96,7 +96,7 @@ public async Task TestRevRangeAlign() Assert.Equal(resStart, await ts.RevRangeAsync(key, 1, 30, align: 1, aggregation: TsAggregation.Count, timeBucket: 10)); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public async Task TestMissingTimeBucket() { var key = CreateKeyName(); @@ -108,7 +108,7 @@ public async Task TestMissingTimeBucket() Assert.Equal("RANGE Aggregation should have timeBucket value", ex.Message); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public async Task TestFilterBy() { var key = CreateKeyName(); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRules.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRules.cs index 82ff0183..5fab3c9a 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRules.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRules.cs @@ -32,7 +32,7 @@ public TestRules(RedisFixture redisFixture) : base(redisFixture) }; } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] [Obsolete] public void TestRulesAdditionDeletion() { @@ -96,7 +96,7 @@ public void TestNonExisitingDestinaion() Assert.Equal("ERR TSDB: compaction rule does not exist", ex.Message); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public void TestAlignTimestamp() { IDatabase db = redisFixture.Redis.GetDatabase(); diff --git a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRulesAsync.cs b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRulesAsync.cs index b7cb6455..3724d139 100644 --- a/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRulesAsync.cs +++ b/tests/NRedisStack.Tests/TimeSeries/TestAPI/TestRulesAsync.cs @@ -10,7 +10,7 @@ public class TestRulesAsync : AbstractNRedisStackTest { public TestRulesAsync(RedisFixture redisFixture) : base(redisFixture) { } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] [Obsolete] public async Task TestRulesAdditionDeletion() { @@ -53,7 +53,7 @@ public async Task TestRulesAdditionDeletion() await db.KeyDeleteAsync(aggregations.Select(i => (RedisKey)$"{key}:{i}").ToArray()); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public async Task TestNonExistingSrc() { var key = CreateKeyName(); @@ -72,7 +72,7 @@ public async Task TestNonExistingSrc() await db.KeyDeleteAsync(aggKey); } - [Fact] + [SkipIfRedis(Is.Enterprise)] public async Task TestNonExisitingDestinaion() { var key = CreateKeyName(); @@ -89,7 +89,7 @@ public async Task TestNonExisitingDestinaion() Assert.Equal("ERR TSDB: compaction rule does not exist", ex.Message); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] public async Task TestAlignTimestampAsync() { IDatabase db = redisFixture.Redis.GetDatabase(); diff --git a/tests/NRedisStack.Tests/TransactionsTests.cs b/tests/NRedisStack.Tests/TransactionsTests.cs index b811acf8..498ed77c 100644 --- a/tests/NRedisStack.Tests/TransactionsTests.cs +++ b/tests/NRedisStack.Tests/TransactionsTests.cs @@ -83,7 +83,7 @@ public void TestModulsTransaction() Assert.NotNull(db.TOPK().Info("topk-key")); } - [SkipIfRedis(Is.OSSCluster)] + [SkipIfRedis(Is.OSSCluster, Is.Enterprise)] [Obsolete] public void TestModulsTransactionWithoutGraph() {