diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index cdac14e2..48fe03bc 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -64,7 +64,7 @@ dotnet test test/OpenFeature.Tests/
To be able to run the e2e tests, first we need to initialize the submodule and copy the test files:
```bash
-git submodule update --init --recursive && cp test-harness/features/evaluation.feature test/OpenFeature.E2ETests/Features/
+git submodule update --init --recursive && cp spec/specification/assets/gherkin/evaluation.feature test/OpenFeature.E2ETests/Features/
```
Now you can run the tests using:
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 92a172f0..adcf05a6 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -21,7 +21,6 @@
-
diff --git a/test/OpenFeature.DependencyInjection.Tests/FeatureLifecycleManagerTests.cs b/test/OpenFeature.DependencyInjection.Tests/FeatureLifecycleManagerTests.cs
index b0176bc4..c5573604 100644
--- a/test/OpenFeature.DependencyInjection.Tests/FeatureLifecycleManagerTests.cs
+++ b/test/OpenFeature.DependencyInjection.Tests/FeatureLifecycleManagerTests.cs
@@ -1,4 +1,3 @@
-using FluentAssertions;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
@@ -44,7 +43,7 @@ public async Task EnsureInitializedAsync_ShouldLogAndSetProvider_WhenProviderExi
await _systemUnderTest.EnsureInitializedAsync().ConfigureAwait(true);
// Assert
- Api.Instance.GetProvider().Should().BeSameAs(featureProvider);
+ Assert.Equal(featureProvider, Api.Instance.GetProvider());
}
[Fact]
@@ -58,7 +57,7 @@ public async Task EnsureInitializedAsync_ShouldThrowException_WhenProviderDoesNo
// Assert
var exception = await Assert.ThrowsAsync(act).ConfigureAwait(true);
- exception.Should().NotBeNull();
- exception.Message.Should().NotBeNullOrWhiteSpace();
+ Assert.NotNull(exception);
+ Assert.False(string.IsNullOrWhiteSpace(exception.Message));
}
}
diff --git a/test/OpenFeature.DependencyInjection.Tests/OpenFeature.DependencyInjection.Tests.csproj b/test/OpenFeature.DependencyInjection.Tests/OpenFeature.DependencyInjection.Tests.csproj
index e4c16ee5..4d714afe 100644
--- a/test/OpenFeature.DependencyInjection.Tests/OpenFeature.DependencyInjection.Tests.csproj
+++ b/test/OpenFeature.DependencyInjection.Tests/OpenFeature.DependencyInjection.Tests.csproj
@@ -20,7 +20,6 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
diff --git a/test/OpenFeature.DependencyInjection.Tests/OpenFeatureBuilderExtensionsTests.cs b/test/OpenFeature.DependencyInjection.Tests/OpenFeatureBuilderExtensionsTests.cs
index 087336a0..6985125d 100644
--- a/test/OpenFeature.DependencyInjection.Tests/OpenFeatureBuilderExtensionsTests.cs
+++ b/test/OpenFeature.DependencyInjection.Tests/OpenFeatureBuilderExtensionsTests.cs
@@ -1,4 +1,3 @@
-using FluentAssertions;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using OpenFeature.Model;
@@ -28,12 +27,11 @@ public void AddContext_Delegate_ShouldAddServiceToCollection(bool useServiceProv
_systemUnderTest.AddContext((_, _) => { });
// Assert
- featureBuilder.Should().BeSameAs(_systemUnderTest, "The method should return the same builder instance.");
- _systemUnderTest.IsContextConfigured.Should().BeTrue("The context should be configured.");
- _services.Should().ContainSingle(serviceDescriptor =>
+ Assert.Equal(_systemUnderTest, featureBuilder);
+ Assert.True(_systemUnderTest.IsContextConfigured, "The context should be configured.");
+ Assert.Single(_services, serviceDescriptor =>
serviceDescriptor.ServiceType == typeof(EvaluationContext) &&
- serviceDescriptor.Lifetime == ServiceLifetime.Transient,
- "A transient service of type EvaluationContext should be added.");
+ serviceDescriptor.Lifetime == ServiceLifetime.Transient);
}
[Theory]
@@ -54,9 +52,9 @@ public void AddContext_Delegate_ShouldCorrectlyHandles(bool useServiceProviderDe
var context = serviceProvider.GetService();
// Assert
- _systemUnderTest.IsContextConfigured.Should().BeTrue("The context should be configured.");
- context.Should().NotBeNull("The EvaluationContext should be resolvable.");
- delegateCalled.Should().BeTrue("The delegate should be invoked.");
+ Assert.True(_systemUnderTest.IsContextConfigured, "The context should be configured.");
+ Assert.NotNull(context);
+ Assert.True(delegateCalled, "The delegate should be invoked.");
}
#if NET8_0_OR_GREATER
@@ -80,15 +78,14 @@ public void AddProvider_ShouldAddProviderToCollection(int providerRegistrationTy
};
// Assert
- _systemUnderTest.IsContextConfigured.Should().BeFalse("The context should not be configured.");
- _systemUnderTest.HasDefaultProvider.Should().Be(expectsDefaultProvider, "The default provider flag should be set correctly.");
- _systemUnderTest.IsPolicyConfigured.Should().BeFalse("The policy should not be configured.");
- _systemUnderTest.DomainBoundProviderRegistrationCount.Should().Be(expectsDomainBoundProvider, "The domain-bound provider count should be correct.");
- featureBuilder.Should().BeSameAs(_systemUnderTest, "The method should return the same builder instance.");
- _services.Should().ContainSingle(serviceDescriptor =>
+ Assert.False(_systemUnderTest.IsContextConfigured, "The context should not be configured.");
+ Assert.Equal(expectsDefaultProvider, _systemUnderTest.HasDefaultProvider);
+ Assert.False(_systemUnderTest.IsPolicyConfigured, "The policy should not be configured.");
+ Assert.Equal(expectsDomainBoundProvider, _systemUnderTest.DomainBoundProviderRegistrationCount);
+ Assert.Equal(_systemUnderTest, featureBuilder);
+ Assert.Single(_services, serviceDescriptor =>
serviceDescriptor.ServiceType == typeof(FeatureProvider) &&
- serviceDescriptor.Lifetime == ServiceLifetime.Transient,
- "A singleton service of type FeatureProvider should be added.");
+ serviceDescriptor.Lifetime == ServiceLifetime.Transient);
}
class TestOptions : OpenFeatureOptions { }
@@ -124,8 +121,8 @@ public void AddProvider_ShouldResolveCorrectProvider(int providerRegistrationTyp
};
// Assert
- provider.Should().NotBeNull("The FeatureProvider should be resolvable.");
- provider.Should().BeOfType("The resolved provider should be of type DefaultFeatureProvider.");
+ Assert.NotNull(provider);
+ Assert.IsType(provider);
}
[Theory]
@@ -172,11 +169,11 @@ public void AddProvider_VerifiesDefaultAndDomainBoundProvidersBasedOnConfigurati
};
// Assert
- _systemUnderTest.IsContextConfigured.Should().BeFalse("The context should not be configured.");
- _systemUnderTest.HasDefaultProvider.Should().Be(expectsDefaultProvider, "The default provider flag should be set correctly.");
- _systemUnderTest.IsPolicyConfigured.Should().BeFalse("The policy should not be configured.");
- _systemUnderTest.DomainBoundProviderRegistrationCount.Should().Be(expectsDomainBoundProvider, "The domain-bound provider count should be correct.");
- featureBuilder.Should().BeSameAs(_systemUnderTest, "The method should return the same builder instance.");
+ Assert.False(_systemUnderTest.IsContextConfigured, "The context should not be configured.");
+ Assert.Equal(expectsDefaultProvider, _systemUnderTest.HasDefaultProvider);
+ Assert.False(_systemUnderTest.IsPolicyConfigured, "The policy should not be configured.");
+ Assert.Equal(expectsDomainBoundProvider, _systemUnderTest.DomainBoundProviderRegistrationCount);
+ Assert.Equal(_systemUnderTest, featureBuilder);
}
[Theory]
@@ -240,8 +237,8 @@ public void AddProvider_ConfiguresPolicyNameAcrossMultipleProviderSetups(int pro
serviceProvider.GetRequiredKeyedService(name);
// Assert
- featureBuilder.IsPolicyConfigured.Should().BeTrue("The policy should be configured.");
- provider.Should().NotBeNull("The FeatureProvider should be resolvable.");
- provider.Should().BeOfType("The resolved provider should be of type DefaultFeatureProvider.");
+ Assert.True(featureBuilder.IsPolicyConfigured, "The policy should be configured.");
+ Assert.NotNull(provider);
+ Assert.IsType(provider);
}
}
diff --git a/test/OpenFeature.DependencyInjection.Tests/OpenFeatureServiceCollectionExtensionsTests.cs b/test/OpenFeature.DependencyInjection.Tests/OpenFeatureServiceCollectionExtensionsTests.cs
index 40e761d2..d3ce5c8e 100644
--- a/test/OpenFeature.DependencyInjection.Tests/OpenFeatureServiceCollectionExtensionsTests.cs
+++ b/test/OpenFeature.DependencyInjection.Tests/OpenFeatureServiceCollectionExtensionsTests.cs
@@ -1,4 +1,3 @@
-using FluentAssertions;
using Microsoft.Extensions.DependencyInjection;
using NSubstitute;
using Xunit;
@@ -22,9 +21,9 @@ public void AddOpenFeature_ShouldRegisterApiInstanceAndLifecycleManagerAsSinglet
// Act
_systemUnderTest.AddOpenFeature(_configureAction);
- _systemUnderTest.Should().ContainSingle(s => s.ServiceType == typeof(Api) && s.Lifetime == ServiceLifetime.Singleton);
- _systemUnderTest.Should().ContainSingle(s => s.ServiceType == typeof(IFeatureLifecycleManager) && s.Lifetime == ServiceLifetime.Singleton);
- _systemUnderTest.Should().ContainSingle(s => s.ServiceType == typeof(IFeatureClient) && s.Lifetime == ServiceLifetime.Scoped);
+ Assert.Single(_systemUnderTest, s => s.ServiceType == typeof(Api) && s.Lifetime == ServiceLifetime.Singleton);
+ Assert.Single(_systemUnderTest, s => s.ServiceType == typeof(IFeatureLifecycleManager) && s.Lifetime == ServiceLifetime.Singleton);
+ Assert.Single(_systemUnderTest, s => s.ServiceType == typeof(IFeatureClient) && s.Lifetime == ServiceLifetime.Scoped);
}
[Fact]
diff --git a/test/OpenFeature.E2ETests/OpenFeature.E2ETests.csproj b/test/OpenFeature.E2ETests/OpenFeature.E2ETests.csproj
index 50cf1a6a..001a3a36 100644
--- a/test/OpenFeature.E2ETests/OpenFeature.E2ETests.csproj
+++ b/test/OpenFeature.E2ETests/OpenFeature.E2ETests.csproj
@@ -19,7 +19,6 @@
-
diff --git a/test/OpenFeature.IntegrationTests/FeatureFlagIntegrationTest.cs b/test/OpenFeature.IntegrationTests/FeatureFlagIntegrationTest.cs
index 559bf4bb..24561f1a 100644
--- a/test/OpenFeature.IntegrationTests/FeatureFlagIntegrationTest.cs
+++ b/test/OpenFeature.IntegrationTests/FeatureFlagIntegrationTest.cs
@@ -1,6 +1,5 @@
using System.Net.Http.Json;
using System.Text.Json;
-using FluentAssertions;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.TestHost;
@@ -54,10 +53,10 @@ public async Task VerifyFeatureFlagBehaviorAcrossServiceLifetimesAsync(string us
var responseContent = await response.Content.ReadFromJsonAsync>().ConfigureAwait(true); ;
// Assert
- response.IsSuccessStatusCode.Should().BeTrue("Expected HTTP status code 200 OK.");
- responseContent.Should().NotBeNull("Expected response content to be non-null.");
- responseContent!.FeatureName.Should().Be(FeatureA, "Expected feature name to be 'feature-a'.");
- responseContent.FeatureValue.Should().Be(expectedResult, "Expected feature value to match the expected result.");
+ Assert.True(response.IsSuccessStatusCode, "Expected HTTP status code 200 OK.");
+ Assert.NotNull(responseContent);
+ Assert.Equal(FeatureA, responseContent!.FeatureName);
+ Assert.Equal(expectedResult, responseContent.FeatureValue);
}
private static async Task CreateServerAsync(Action? configureServices = null)
diff --git a/test/OpenFeature.IntegrationTests/OpenFeature.IntegrationTests.csproj b/test/OpenFeature.IntegrationTests/OpenFeature.IntegrationTests.csproj
index 13c2f21e..e95aa810 100644
--- a/test/OpenFeature.IntegrationTests/OpenFeature.IntegrationTests.csproj
+++ b/test/OpenFeature.IntegrationTests/OpenFeature.IntegrationTests.csproj
@@ -15,7 +15,6 @@
-
diff --git a/test/OpenFeature.Tests/FeatureProviderExceptionTests.cs b/test/OpenFeature.Tests/FeatureProviderExceptionTests.cs
index fe011711..1498056f 100644
--- a/test/OpenFeature.Tests/FeatureProviderExceptionTests.cs
+++ b/test/OpenFeature.Tests/FeatureProviderExceptionTests.cs
@@ -1,5 +1,4 @@
using System;
-using FluentAssertions;
using OpenFeature.Constant;
using OpenFeature.Error;
using OpenFeature.Extension;
@@ -18,7 +17,8 @@ public class FeatureProviderExceptionTests
public void FeatureProviderException_Should_Resolve_Description(ErrorType errorType, string errorDescription)
{
var ex = new FeatureProviderException(errorType);
- ex.ErrorType.GetDescription().Should().Be(errorDescription);
+
+ Assert.Equal(errorDescription, ex.ErrorType.GetDescription());
}
[Theory]
@@ -27,9 +27,10 @@ public void FeatureProviderException_Should_Resolve_Description(ErrorType errorT
public void FeatureProviderException_Should_Allow_Custom_ErrorCode_Messages(ErrorType errorCode, string message)
{
var ex = new FeatureProviderException(errorCode, message, new ArgumentOutOfRangeException("flag"));
- ex.ErrorType.Should().Be(errorCode);
- ex.Message.Should().Be(message);
- ex.InnerException.Should().BeOfType();
+
+ Assert.Equal(errorCode, ex.ErrorType);
+ Assert.Equal(message, ex.Message);
+ Assert.IsType(ex.InnerException);
}
private enum TestEnum
diff --git a/test/OpenFeature.Tests/FeatureProviderTests.cs b/test/OpenFeature.Tests/FeatureProviderTests.cs
index 53a67443..ce1de36b 100644
--- a/test/OpenFeature.Tests/FeatureProviderTests.cs
+++ b/test/OpenFeature.Tests/FeatureProviderTests.cs
@@ -1,7 +1,6 @@
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
using AutoFixture;
-using FluentAssertions;
using NSubstitute;
using OpenFeature.Constant;
using OpenFeature.Model;
@@ -19,7 +18,7 @@ public void Provider_Must_Have_Metadata()
{
var provider = new TestProvider();
- provider.GetMetadata().Name.Should().Be(TestProvider.DefaultName);
+ Assert.Equal(TestProvider.DefaultName, provider.GetMetadata().Name);
}
[Fact]
@@ -44,28 +43,23 @@ public async Task Provider_Must_Resolve_Flag_Values()
var boolResolutionDetails = new ResolutionDetails(flagName, defaultBoolValue, ErrorType.None,
NoOpProvider.ReasonNoOp, NoOpProvider.Variant);
- (await provider.ResolveBooleanValueAsync(flagName, defaultBoolValue)).Should()
- .BeEquivalentTo(boolResolutionDetails);
+ Assert.Equivalent(boolResolutionDetails, await provider.ResolveBooleanValueAsync(flagName, defaultBoolValue));
var integerResolutionDetails = new ResolutionDetails(flagName, defaultIntegerValue, ErrorType.None,
NoOpProvider.ReasonNoOp, NoOpProvider.Variant);
- (await provider.ResolveIntegerValueAsync(flagName, defaultIntegerValue)).Should()
- .BeEquivalentTo(integerResolutionDetails);
+ Assert.Equivalent(integerResolutionDetails, await provider.ResolveIntegerValueAsync(flagName, defaultIntegerValue));
var doubleResolutionDetails = new ResolutionDetails(flagName, defaultDoubleValue, ErrorType.None,
NoOpProvider.ReasonNoOp, NoOpProvider.Variant);
- (await provider.ResolveDoubleValueAsync(flagName, defaultDoubleValue)).Should()
- .BeEquivalentTo(doubleResolutionDetails);
+ Assert.Equivalent(doubleResolutionDetails, await provider.ResolveDoubleValueAsync(flagName, defaultDoubleValue));
var stringResolutionDetails = new ResolutionDetails(flagName, defaultStringValue, ErrorType.None,
NoOpProvider.ReasonNoOp, NoOpProvider.Variant);
- (await provider.ResolveStringValueAsync(flagName, defaultStringValue)).Should()
- .BeEquivalentTo(stringResolutionDetails);
+ Assert.Equivalent(stringResolutionDetails, await provider.ResolveStringValueAsync(flagName, defaultStringValue));
var structureResolutionDetails = new ResolutionDetails(flagName, defaultStructureValue,
ErrorType.None, NoOpProvider.ReasonNoOp, NoOpProvider.Variant);
- (await provider.ResolveStructureValueAsync(flagName, defaultStructureValue)).Should()
- .BeEquivalentTo(structureResolutionDetails);
+ Assert.Equivalent(structureResolutionDetails, await provider.ResolveStructureValueAsync(flagName, defaultStructureValue));
}
[Fact]
@@ -113,32 +107,32 @@ public async Task Provider_Must_ErrorType()
NoOpProvider.ReasonNoOp, NoOpProvider.Variant));
var boolRes = await providerMock.ResolveBooleanValueAsync(flagName, defaultBoolValue);
- boolRes.ErrorType.Should().Be(ErrorType.General);
- boolRes.ErrorMessage.Should().Be(testMessage);
+ Assert.Equal(ErrorType.General, boolRes.ErrorType);
+ Assert.Equal(testMessage, boolRes.ErrorMessage);
var intRes = await providerMock.ResolveIntegerValueAsync(flagName, defaultIntegerValue);
- intRes.ErrorType.Should().Be(ErrorType.ParseError);
- intRes.ErrorMessage.Should().Be(testMessage);
+ Assert.Equal(ErrorType.ParseError, intRes.ErrorType);
+ Assert.Equal(testMessage, intRes.ErrorMessage);
var doubleRes = await providerMock.ResolveDoubleValueAsync(flagName, defaultDoubleValue);
- doubleRes.ErrorType.Should().Be(ErrorType.InvalidContext);
- doubleRes.ErrorMessage.Should().Be(testMessage);
+ Assert.Equal(ErrorType.InvalidContext, doubleRes.ErrorType);
+ Assert.Equal(testMessage, doubleRes.ErrorMessage);
var stringRes = await providerMock.ResolveStringValueAsync(flagName, defaultStringValue);
- stringRes.ErrorType.Should().Be(ErrorType.TypeMismatch);
- stringRes.ErrorMessage.Should().Be(testMessage);
+ Assert.Equal(ErrorType.TypeMismatch, stringRes.ErrorType);
+ Assert.Equal(testMessage, stringRes.ErrorMessage);
var structRes1 = await providerMock.ResolveStructureValueAsync(flagName, defaultStructureValue);
- structRes1.ErrorType.Should().Be(ErrorType.FlagNotFound);
- structRes1.ErrorMessage.Should().Be(testMessage);
+ Assert.Equal(ErrorType.FlagNotFound, structRes1.ErrorType);
+ Assert.Equal(testMessage, structRes1.ErrorMessage);
var structRes2 = await providerMock.ResolveStructureValueAsync(flagName2, defaultStructureValue);
- structRes2.ErrorType.Should().Be(ErrorType.ProviderNotReady);
- structRes2.ErrorMessage.Should().Be(testMessage);
+ Assert.Equal(ErrorType.ProviderNotReady, structRes2.ErrorType);
+ Assert.Equal(testMessage, structRes2.ErrorMessage);
var boolRes2 = await providerMock.ResolveBooleanValueAsync(flagName2, defaultBoolValue);
- boolRes2.ErrorType.Should().Be(ErrorType.TargetingKeyMissing);
- boolRes2.ErrorMessage.Should().BeNull();
+ Assert.Equal(ErrorType.TargetingKeyMissing, boolRes2.ErrorType);
+ Assert.Null(boolRes2.ErrorMessage);
}
}
}
diff --git a/test/OpenFeature.Tests/OpenFeature.Tests.csproj b/test/OpenFeature.Tests/OpenFeature.Tests.csproj
index 270b6a50..a556655a 100644
--- a/test/OpenFeature.Tests/OpenFeature.Tests.csproj
+++ b/test/OpenFeature.Tests/OpenFeature.Tests.csproj
@@ -16,7 +16,6 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
diff --git a/test/OpenFeature.Tests/OpenFeatureClientTests.cs b/test/OpenFeature.Tests/OpenFeatureClientTests.cs
index 1cab2d76..c16824cb 100644
--- a/test/OpenFeature.Tests/OpenFeatureClientTests.cs
+++ b/test/OpenFeature.Tests/OpenFeatureClientTests.cs
@@ -6,7 +6,6 @@
using System.Threading;
using System.Threading.Tasks;
using AutoFixture;
-using FluentAssertions;
using Microsoft.Extensions.Logging;
using NSubstitute;
using NSubstitute.ExceptionExtensions;
@@ -37,12 +36,13 @@ public void OpenFeatureClient_Should_Allow_Hooks()
client.AddHooks(new[] { hook1, hook2 });
- client.GetHooks().Should().ContainInOrder(hook1, hook2);
- client.GetHooks().Count().Should().Be(2);
+ var expectedHooks = new[] { hook1, hook2 }.AsEnumerable();
+ Assert.Equal(expectedHooks, client.GetHooks());
client.AddHooks(hook3);
- client.GetHooks().Should().ContainInOrder(hook1, hook2, hook3);
- client.GetHooks().Count().Should().Be(3);
+
+ expectedHooks = new[] { hook1, hook2, hook3 }.AsEnumerable();
+ Assert.Equal(expectedHooks, client.GetHooks());
client.ClearHooks();
Assert.Empty(client.GetHooks());
@@ -57,8 +57,8 @@ public void OpenFeatureClient_Metadata_Should_Have_Name()
var clientVersion = fixture.Create();
var client = Api.Instance.GetClient(domain, clientVersion);
- client.GetMetadata().Name.Should().Be(domain);
- client.GetMetadata().Version.Should().Be(clientVersion);
+ Assert.Equal(domain, client.GetMetadata().Name);
+ Assert.Equal(clientVersion, client.GetMetadata().Version);
}
[Fact]
@@ -81,25 +81,25 @@ public async Task OpenFeatureClient_Should_Allow_Flag_Evaluation()
await Api.Instance.SetProviderAsync(new NoOpFeatureProvider());
var client = Api.Instance.GetClient(domain, clientVersion);
- (await client.GetBooleanValueAsync(flagName, defaultBoolValue)).Should().Be(defaultBoolValue);
- (await client.GetBooleanValueAsync(flagName, defaultBoolValue, EvaluationContext.Empty)).Should().Be(defaultBoolValue);
- (await client.GetBooleanValueAsync(flagName, defaultBoolValue, EvaluationContext.Empty, emptyFlagOptions)).Should().Be(defaultBoolValue);
+ Assert.Equal(defaultBoolValue, await client.GetBooleanValueAsync(flagName, defaultBoolValue));
+ Assert.Equal(defaultBoolValue, await client.GetBooleanValueAsync(flagName, defaultBoolValue, EvaluationContext.Empty));
+ Assert.Equal(defaultBoolValue, await client.GetBooleanValueAsync(flagName, defaultBoolValue, EvaluationContext.Empty, emptyFlagOptions));
- (await client.GetIntegerValueAsync(flagName, defaultIntegerValue)).Should().Be(defaultIntegerValue);
- (await client.GetIntegerValueAsync(flagName, defaultIntegerValue, EvaluationContext.Empty)).Should().Be(defaultIntegerValue);
- (await client.GetIntegerValueAsync(flagName, defaultIntegerValue, EvaluationContext.Empty, emptyFlagOptions)).Should().Be(defaultIntegerValue);
+ Assert.Equal(defaultIntegerValue, await client.GetIntegerValueAsync(flagName, defaultIntegerValue));
+ Assert.Equal(defaultIntegerValue, await client.GetIntegerValueAsync(flagName, defaultIntegerValue, EvaluationContext.Empty));
+ Assert.Equal(defaultIntegerValue, await client.GetIntegerValueAsync(flagName, defaultIntegerValue, EvaluationContext.Empty, emptyFlagOptions));
- (await client.GetDoubleValueAsync(flagName, defaultDoubleValue)).Should().Be(defaultDoubleValue);
- (await client.GetDoubleValueAsync(flagName, defaultDoubleValue, EvaluationContext.Empty)).Should().Be(defaultDoubleValue);
- (await client.GetDoubleValueAsync(flagName, defaultDoubleValue, EvaluationContext.Empty, emptyFlagOptions)).Should().Be(defaultDoubleValue);
+ Assert.Equal(defaultDoubleValue, await client.GetDoubleValueAsync(flagName, defaultDoubleValue));
+ Assert.Equal(defaultDoubleValue, await client.GetDoubleValueAsync(flagName, defaultDoubleValue, EvaluationContext.Empty));
+ Assert.Equal(defaultDoubleValue, await client.GetDoubleValueAsync(flagName, defaultDoubleValue, EvaluationContext.Empty, emptyFlagOptions));
- (await client.GetStringValueAsync(flagName, defaultStringValue)).Should().Be(defaultStringValue);
- (await client.GetStringValueAsync(flagName, defaultStringValue, EvaluationContext.Empty)).Should().Be(defaultStringValue);
- (await client.GetStringValueAsync(flagName, defaultStringValue, EvaluationContext.Empty, emptyFlagOptions)).Should().Be(defaultStringValue);
+ Assert.Equal(defaultStringValue, await client.GetStringValueAsync(flagName, defaultStringValue));
+ Assert.Equal(defaultStringValue, await client.GetStringValueAsync(flagName, defaultStringValue, EvaluationContext.Empty));
+ Assert.Equal(defaultStringValue, await client.GetStringValueAsync(flagName, defaultStringValue, EvaluationContext.Empty, emptyFlagOptions));
- (await client.GetObjectValueAsync(flagName, defaultStructureValue)).Should().BeEquivalentTo(defaultStructureValue);
- (await client.GetObjectValueAsync(flagName, defaultStructureValue, EvaluationContext.Empty)).Should().BeEquivalentTo(defaultStructureValue);
- (await client.GetObjectValueAsync(flagName, defaultStructureValue, EvaluationContext.Empty, emptyFlagOptions)).Should().BeEquivalentTo(defaultStructureValue);
+ Assert.Equivalent(defaultStructureValue, await client.GetObjectValueAsync(flagName, defaultStructureValue));
+ Assert.Equivalent(defaultStructureValue, await client.GetObjectValueAsync(flagName, defaultStructureValue, EvaluationContext.Empty));
+ Assert.Equivalent(defaultStructureValue, await client.GetObjectValueAsync(flagName, defaultStructureValue, EvaluationContext.Empty, emptyFlagOptions));
}
[Fact]
@@ -128,29 +128,29 @@ public async Task OpenFeatureClient_Should_Allow_Details_Flag_Evaluation()
var client = Api.Instance.GetClient(domain, clientVersion);
var boolFlagEvaluationDetails = new FlagEvaluationDetails(flagName, defaultBoolValue, ErrorType.None, NoOpProvider.ReasonNoOp, NoOpProvider.Variant);
- (await client.GetBooleanDetailsAsync(flagName, defaultBoolValue)).Should().BeEquivalentTo(boolFlagEvaluationDetails);
- (await client.GetBooleanDetailsAsync(flagName, defaultBoolValue, EvaluationContext.Empty)).Should().BeEquivalentTo(boolFlagEvaluationDetails);
- (await client.GetBooleanDetailsAsync(flagName, defaultBoolValue, EvaluationContext.Empty, emptyFlagOptions)).Should().BeEquivalentTo(boolFlagEvaluationDetails);
+ Assert.Equivalent(boolFlagEvaluationDetails, await client.GetBooleanDetailsAsync(flagName, defaultBoolValue));
+ Assert.Equivalent(boolFlagEvaluationDetails, await client.GetBooleanDetailsAsync(flagName, defaultBoolValue, EvaluationContext.Empty));
+ Assert.Equivalent(boolFlagEvaluationDetails, await client.GetBooleanDetailsAsync(flagName, defaultBoolValue, EvaluationContext.Empty, emptyFlagOptions));
var integerFlagEvaluationDetails = new FlagEvaluationDetails(flagName, defaultIntegerValue, ErrorType.None, NoOpProvider.ReasonNoOp, NoOpProvider.Variant);
- (await client.GetIntegerDetailsAsync(flagName, defaultIntegerValue)).Should().BeEquivalentTo(integerFlagEvaluationDetails);
- (await client.GetIntegerDetailsAsync(flagName, defaultIntegerValue, EvaluationContext.Empty)).Should().BeEquivalentTo(integerFlagEvaluationDetails);
- (await client.GetIntegerDetailsAsync(flagName, defaultIntegerValue, EvaluationContext.Empty, emptyFlagOptions)).Should().BeEquivalentTo(integerFlagEvaluationDetails);
+ Assert.Equivalent(integerFlagEvaluationDetails, await client.GetIntegerDetailsAsync(flagName, defaultIntegerValue));
+ Assert.Equivalent(integerFlagEvaluationDetails, await client.GetIntegerDetailsAsync(flagName, defaultIntegerValue, EvaluationContext.Empty));
+ Assert.Equivalent(integerFlagEvaluationDetails, await client.GetIntegerDetailsAsync(flagName, defaultIntegerValue, EvaluationContext.Empty, emptyFlagOptions));
var doubleFlagEvaluationDetails = new FlagEvaluationDetails(flagName, defaultDoubleValue, ErrorType.None, NoOpProvider.ReasonNoOp, NoOpProvider.Variant);
- (await client.GetDoubleDetailsAsync(flagName, defaultDoubleValue)).Should().BeEquivalentTo(doubleFlagEvaluationDetails);
- (await client.GetDoubleDetailsAsync(flagName, defaultDoubleValue, EvaluationContext.Empty)).Should().BeEquivalentTo(doubleFlagEvaluationDetails);
- (await client.GetDoubleDetailsAsync(flagName, defaultDoubleValue, EvaluationContext.Empty, emptyFlagOptions)).Should().BeEquivalentTo(doubleFlagEvaluationDetails);
+ Assert.Equivalent(doubleFlagEvaluationDetails, await client.GetDoubleDetailsAsync(flagName, defaultDoubleValue));
+ Assert.Equivalent(doubleFlagEvaluationDetails, await client.GetDoubleDetailsAsync(flagName, defaultDoubleValue, EvaluationContext.Empty));
+ Assert.Equivalent(doubleFlagEvaluationDetails, await client.GetDoubleDetailsAsync(flagName, defaultDoubleValue, EvaluationContext.Empty, emptyFlagOptions));
var stringFlagEvaluationDetails = new FlagEvaluationDetails(flagName, defaultStringValue, ErrorType.None, NoOpProvider.ReasonNoOp, NoOpProvider.Variant);
- (await client.GetStringDetailsAsync(flagName, defaultStringValue)).Should().BeEquivalentTo(stringFlagEvaluationDetails);
- (await client.GetStringDetailsAsync(flagName, defaultStringValue, EvaluationContext.Empty)).Should().BeEquivalentTo(stringFlagEvaluationDetails);
- (await client.GetStringDetailsAsync(flagName, defaultStringValue, EvaluationContext.Empty, emptyFlagOptions)).Should().BeEquivalentTo(stringFlagEvaluationDetails);
+ Assert.Equivalent(stringFlagEvaluationDetails, await client.GetStringDetailsAsync(flagName, defaultStringValue));
+ Assert.Equivalent(stringFlagEvaluationDetails, await client.GetStringDetailsAsync(flagName, defaultStringValue, EvaluationContext.Empty));
+ Assert.Equivalent(stringFlagEvaluationDetails, await client.GetStringDetailsAsync(flagName, defaultStringValue, EvaluationContext.Empty, emptyFlagOptions));
var structureFlagEvaluationDetails = new FlagEvaluationDetails(flagName, defaultStructureValue, ErrorType.None, NoOpProvider.ReasonNoOp, NoOpProvider.Variant);
- (await client.GetObjectDetailsAsync(flagName, defaultStructureValue)).Should().BeEquivalentTo(structureFlagEvaluationDetails);
- (await client.GetObjectDetailsAsync(flagName, defaultStructureValue, EvaluationContext.Empty)).Should().BeEquivalentTo(structureFlagEvaluationDetails);
- (await client.GetObjectDetailsAsync(flagName, defaultStructureValue, EvaluationContext.Empty, emptyFlagOptions)).Should().BeEquivalentTo(structureFlagEvaluationDetails);
+ Assert.Equivalent(structureFlagEvaluationDetails, await client.GetObjectDetailsAsync(flagName, defaultStructureValue));
+ Assert.Equivalent(structureFlagEvaluationDetails, await client.GetObjectDetailsAsync(flagName, defaultStructureValue, EvaluationContext.Empty));
+ Assert.Equivalent(structureFlagEvaluationDetails, await client.GetObjectDetailsAsync(flagName, defaultStructureValue, EvaluationContext.Empty, emptyFlagOptions));
}
[Fact]
@@ -179,8 +179,8 @@ public async Task OpenFeatureClient_Should_Return_DefaultValue_When_Type_Mismatc
var client = Api.Instance.GetClient(domain, clientVersion, mockedLogger);
var evaluationDetails = await client.GetObjectDetailsAsync(flagName, defaultValue);
- evaluationDetails.ErrorType.Should().Be(ErrorType.TypeMismatch);
- evaluationDetails.ErrorMessage.Should().Be(new InvalidCastException().Message);
+ Assert.Equal(ErrorType.TypeMismatch, evaluationDetails.ErrorType);
+ Assert.Equal(new InvalidCastException().Message, evaluationDetails.ErrorMessage);
_ = mockedFeatureProvider.Received(1).ResolveStructureValueAsync(flagName, defaultValue, Arg.Any());
@@ -290,7 +290,7 @@ public async Task Should_Resolve_BooleanValue()
await Api.Instance.SetProviderAsync(featureProviderMock);
var client = Api.Instance.GetClient(domain, clientVersion);
- (await client.GetBooleanValueAsync(flagName, defaultValue)).Should().Be(defaultValue);
+ Assert.Equal(defaultValue, await client.GetBooleanValueAsync(flagName, defaultValue));
_ = featureProviderMock.Received(1).ResolveBooleanValueAsync(flagName, defaultValue, Arg.Any());
}
@@ -312,7 +312,7 @@ public async Task Should_Resolve_StringValue()
await Api.Instance.SetProviderAsync(featureProviderMock);
var client = Api.Instance.GetClient(domain, clientVersion);
- (await client.GetStringValueAsync(flagName, defaultValue)).Should().Be(defaultValue);
+ Assert.Equal(defaultValue, await client.GetStringValueAsync(flagName, defaultValue));
_ = featureProviderMock.Received(1).ResolveStringValueAsync(flagName, defaultValue, Arg.Any());
}
@@ -334,7 +334,7 @@ public async Task Should_Resolve_IntegerValue()
await Api.Instance.SetProviderAsync(featureProviderMock);
var client = Api.Instance.GetClient(domain, clientVersion);
- (await client.GetIntegerValueAsync(flagName, defaultValue)).Should().Be(defaultValue);
+ Assert.Equal(defaultValue, await client.GetIntegerValueAsync(flagName, defaultValue));
_ = featureProviderMock.Received(1).ResolveIntegerValueAsync(flagName, defaultValue, Arg.Any());
}
@@ -356,7 +356,7 @@ public async Task Should_Resolve_DoubleValue()
await Api.Instance.SetProviderAsync(featureProviderMock);
var client = Api.Instance.GetClient(domain, clientVersion);
- (await client.GetDoubleValueAsync(flagName, defaultValue)).Should().Be(defaultValue);
+ Assert.Equal(defaultValue, await client.GetDoubleValueAsync(flagName, defaultValue));
_ = featureProviderMock.Received(1).ResolveDoubleValueAsync(flagName, defaultValue, Arg.Any());
}
@@ -378,7 +378,7 @@ public async Task Should_Resolve_StructureValue()
await Api.Instance.SetProviderAsync(featureProviderMock);
var client = Api.Instance.GetClient(domain, clientVersion);
- (await client.GetObjectValueAsync(flagName, defaultValue)).Should().Be(defaultValue);
+ Assert.Equal(defaultValue, await client.GetObjectValueAsync(flagName, defaultValue));
_ = featureProviderMock.Received(1).ResolveStructureValueAsync(flagName, defaultValue, Arg.Any());
}
@@ -402,9 +402,9 @@ public async Task When_Error_Is_Returned_From_Provider_Should_Return_Error()
var client = Api.Instance.GetClient(domain, clientVersion);
var response = await client.GetObjectDetailsAsync(flagName, defaultValue);
- response.ErrorType.Should().Be(ErrorType.ParseError);
- response.Reason.Should().Be(Reason.Error);
- response.ErrorMessage.Should().Be(testMessage);
+ Assert.Equal(ErrorType.ParseError, response.ErrorType);
+ Assert.Equal(Reason.Error, response.Reason);
+ Assert.Equal(testMessage, response.ErrorMessage);
_ = featureProviderMock.Received(1).ResolveStructureValueAsync(flagName, defaultValue, Arg.Any());
}
@@ -427,9 +427,9 @@ public async Task When_Exception_Occurs_During_Evaluation_Should_Return_Error()
var client = Api.Instance.GetClient(domain, clientVersion);
var response = await client.GetObjectDetailsAsync(flagName, defaultValue);
- response.ErrorType.Should().Be(ErrorType.ParseError);
- response.Reason.Should().Be(Reason.Error);
- response.ErrorMessage.Should().Be(testMessage);
+ Assert.Equal(ErrorType.ParseError, response.ErrorType);
+ Assert.Equal(Reason.Error, response.Reason);
+ Assert.Equal(testMessage, response.ErrorMessage);
_ = featureProviderMock.Received(1).ResolveStructureValueAsync(flagName, defaultValue, Arg.Any());
}
@@ -456,9 +456,9 @@ public async Task When_Error_Is_Returned_From_Provider_Should_Not_Run_After_Hook
client.AddHooks(testHook);
var response = await client.GetObjectDetailsAsync(flagName, defaultValue);
- response.ErrorType.Should().Be(ErrorType.ParseError);
- response.Reason.Should().Be(Reason.Error);
- response.ErrorMessage.Should().Be(testMessage);
+ Assert.Equal(ErrorType.ParseError, response.ErrorType);
+ Assert.Equal(Reason.Error, response.Reason);
+ Assert.Equal(testMessage, response.ErrorMessage);
_ = featureProviderMock.Received(1)
.ResolveStructureValueAsync(flagName, defaultValue, Arg.Any());
@@ -501,8 +501,8 @@ public async Task Cancellation_Token_Added_Is_Passed_To_Provider()
cts.Cancel(); // cancel before awaiting
var response = await task;
- response.Value.Should().Be(defaultString);
- response.Reason.Should().Be(cancelledReason);
+ Assert.Equal(defaultString, response.Value);
+ Assert.Equal(cancelledReason, response.Reason);
_ = featureProviderMock.Received(1).ResolveStringValueAsync(flagName, defaultString, Arg.Any(), cts.Token);
}
@@ -538,7 +538,7 @@ public void ToFlagEvaluationDetails_Should_Convert_All_Properties()
var expected = new ResolutionDetails(flagName, boolValue, errorType, reason, variant, errorMessage, flagMetadata);
var result = expected.ToFlagEvaluationDetails();
- result.Should().BeEquivalentTo(expected);
+ Assert.Equivalent(expected, result);
}
[Fact]
diff --git a/test/OpenFeature.Tests/OpenFeatureEvaluationContextTests.cs b/test/OpenFeature.Tests/OpenFeatureEvaluationContextTests.cs
index 826ac68e..20b0ec2e 100644
--- a/test/OpenFeature.Tests/OpenFeatureEvaluationContextTests.cs
+++ b/test/OpenFeature.Tests/OpenFeatureEvaluationContextTests.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using AutoFixture;
-using FluentAssertions;
using OpenFeature.Model;
using OpenFeature.Tests.Internal;
using Xunit;
@@ -91,34 +90,34 @@ public void EvaluationContext_Should_All_Types()
var context = contextBuilder.Build();
- context.TargetingKey.Should().Be("targeting_key");
+ Assert.Equal("targeting_key", context.TargetingKey);
var targetingKeyValue = context.GetValue(context.TargetingKey!);
- targetingKeyValue.IsString.Should().BeTrue();
- targetingKeyValue.AsString.Should().Be("userId");
+ Assert.True(targetingKeyValue.IsString);
+ Assert.Equal("userId", targetingKeyValue.AsString);
var value1 = context.GetValue("key1");
- value1.IsString.Should().BeTrue();
- value1.AsString.Should().Be("value");
+ Assert.True(value1.IsString);
+ Assert.Equal("value", value1.AsString);
var value2 = context.GetValue("key2");
- value2.IsNumber.Should().BeTrue();
- value2.AsInteger.Should().Be(1);
+ Assert.True(value2.IsNumber);
+ Assert.Equal(1, value2.AsInteger);
var value3 = context.GetValue("key3");
- value3.IsBoolean.Should().Be(true);
- value3.AsBoolean.Should().Be(true);
+ Assert.True(value3.IsBoolean);
+ Assert.True(value3.AsBoolean);
var value4 = context.GetValue("key4");
- value4.IsDateTime.Should().BeTrue();
- value4.AsDateTime.Should().Be(now);
+ Assert.True(value4.IsDateTime);
+ Assert.Equal(now, value4.AsDateTime);
var value5 = context.GetValue("key5");
- value5.IsStructure.Should().BeTrue();
- value5.AsStructure.Should().Equal(structure);
+ Assert.True(value5.IsStructure);
+ Assert.Equal(structure, value5.AsStructure);
var value6 = context.GetValue("key6");
- value6.IsNumber.Should().BeTrue();
- value6.AsDouble.Should().Be(1.0);
+ Assert.True(value6.IsNumber);
+ Assert.Equal(1.0, value6.AsDouble);
}
[Fact]
@@ -146,11 +145,11 @@ public void Should_Be_Able_To_Get_All_Values()
var count = 0;
foreach (var keyValue in context)
{
- context.GetValue(keyValue.Key).AsString.Should().Be(keyValue.Value.AsString);
+ Assert.Equal(keyValue.Value.AsString, context.GetValue(keyValue.Key).AsString);
count++;
}
- context.Count.Should().Be(count);
+ Assert.Equal(count, context.Count);
}
[Fact]
diff --git a/test/OpenFeature.Tests/OpenFeatureHookTests.cs b/test/OpenFeature.Tests/OpenFeatureHookTests.cs
index 442b3491..bbb4da3f 100644
--- a/test/OpenFeature.Tests/OpenFeatureHookTests.cs
+++ b/test/OpenFeature.Tests/OpenFeatureHookTests.cs
@@ -6,7 +6,6 @@
using System.Threading;
using System.Threading.Tasks;
using AutoFixture;
-using FluentAssertions;
using NSubstitute;
using NSubstitute.ExceptionExtensions;
using OpenFeature.Constant;
@@ -122,11 +121,11 @@ public void Hook_Context_Should_Have_Properties_And_Be_Immutable()
var context = new HookContext("test", testStructure, FlagValueType.Object, clientMetadata,
providerMetadata, EvaluationContext.Empty);
- context.ClientMetadata.Should().BeSameAs(clientMetadata);
- context.ProviderMetadata.Should().BeSameAs(providerMetadata);
- context.FlagKey.Should().Be("test");
- context.DefaultValue.Should().BeSameAs(testStructure);
- context.FlagValueType.Should().Be(FlagValueType.Object);
+ Assert.Equal(clientMetadata, context.ClientMetadata);
+ Assert.Equal(providerMetadata, context.ProviderMetadata);
+ Assert.Equal("test", context.FlagKey);
+ Assert.Equal(testStructure, context.DefaultValue);
+ Assert.Equal(FlagValueType.Object, context.FlagValueType);
}
[Fact]
@@ -264,9 +263,9 @@ public async Task Hook_Should_Return_No_Errors()
await hook.FinallyAsync(hookContext, evaluationDetails, hookHints);
await hook.ErrorAsync(hookContext, new Exception(), hookHints);
- hookContext.ClientMetadata.Name.Should().BeNull();
- hookContext.ClientMetadata.Version.Should().BeNull();
- hookContext.ProviderMetadata.Name.Should().BeNull();
+ Assert.Null(hookContext.ClientMetadata.Name);
+ Assert.Null(hookContext.ClientMetadata.Version);
+ Assert.Null(hookContext.ProviderMetadata.Name);
}
[Fact]
@@ -329,8 +328,8 @@ await client.GetBooleanValueAsync("test", false, null,
new FlagEvaluationOptions(hook3, ImmutableDictionary.Empty));
Assert.Single(Api.Instance.GetHooks());
- client.GetHooks().Count().Should().Be(1);
- testProvider.GetProviderHooks().Count.Should().Be(1);
+ Assert.Single(client.GetHooks());
+ Assert.Single(testProvider.GetProviderHooks());
}
[Fact]
@@ -356,7 +355,7 @@ public async Task Finally_Hook_Should_Be_Executed_Even_If_Abnormal_Termination()
await Api.Instance.SetProviderAsync(featureProvider);
var client = Api.Instance.GetClient();
client.AddHooks(new[] { hook1, hook2 });
- client.GetHooks().Count().Should().Be(2);
+ Assert.Equal(2, client.GetHooks().Count());
await client.GetBooleanValueAsync("test", false);
@@ -522,7 +521,7 @@ public async Task When_Error_Occurs_In_Before_Hook_Should_Return_Default_Value()
hook.FinallyAsync(Arg.Any>(), Arg.Any>(), null);
});
- resolvedFlag.Should().BeTrue();
+ Assert.True(resolvedFlag);
_ = hook.Received(1).BeforeAsync(Arg.Any>(), null);
_ = hook.Received(1).ErrorAsync(Arg.Any>(), exceptionToThrow, null);
_ = hook.Received(1).FinallyAsync(Arg.Any>(), Arg.Any>(), null);
@@ -563,7 +562,7 @@ public async Task When_Error_Occurs_In_After_Hook_Should_Invoke_Error_Hook()
var resolvedFlag = await client.GetBooleanValueAsync("test", true, config: flagOptions);
- resolvedFlag.Should().BeTrue();
+ Assert.True(resolvedFlag);
Received.InOrder(() =>
{
diff --git a/test/OpenFeature.Tests/OpenFeatureTests.cs b/test/OpenFeature.Tests/OpenFeatureTests.cs
index 1955f82d..24caf9ad 100644
--- a/test/OpenFeature.Tests/OpenFeatureTests.cs
+++ b/test/OpenFeature.Tests/OpenFeatureTests.cs
@@ -2,7 +2,6 @@
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Threading.Tasks;
-using FluentAssertions;
using NSubstitute;
using OpenFeature.Constant;
using OpenFeature.Model;
@@ -21,7 +20,7 @@ public void OpenFeature_Should_Be_Singleton()
var openFeature = Api.Instance;
var openFeature2 = Api.Instance;
- openFeature.Should().BeSameAs(openFeature2);
+ Assert.Equal(openFeature2, openFeature);
}
[Fact]
@@ -104,8 +103,8 @@ public async Task OpenFeature_Should_Not_Change_Named_Providers_When_Setting_Def
var defaultClient = openFeature.GetProviderMetadata();
var domainScopedClient = openFeature.GetProviderMetadata(TestProvider.DefaultName);
- defaultClient?.Name.Should().Be(NoOpProvider.NoOpProviderName);
- domainScopedClient?.Name.Should().Be(TestProvider.DefaultName);
+ Assert.Equal(NoOpProvider.NoOpProviderName, defaultClient?.Name);
+ Assert.Equal(TestProvider.DefaultName, domainScopedClient?.Name);
}
[Fact]
@@ -118,7 +117,7 @@ public async Task OpenFeature_Should_Set_Default_Provide_When_No_Name_Provided()
var defaultClient = openFeature.GetProviderMetadata();
- defaultClient?.Name.Should().Be(TestProvider.DefaultName);
+ Assert.Equal(TestProvider.DefaultName, defaultClient?.Name);
}
[Fact]
@@ -131,7 +130,7 @@ public async Task OpenFeature_Should_Assign_Provider_To_Existing_Client()
await openFeature.SetProviderAsync(name, new TestProvider());
await openFeature.SetProviderAsync(name, new NoOpFeatureProvider());
- openFeature.GetProviderMetadata(name)?.Name.Should().Be(NoOpProvider.NoOpProviderName);
+ Assert.Equal(NoOpProvider.NoOpProviderName, openFeature.GetProviderMetadata(name)?.Name);
}
[Fact]
@@ -147,7 +146,7 @@ public async Task OpenFeature_Should_Allow_Multiple_Client_Names_Of_Same_Instanc
var clientA = openFeature.GetProvider("a");
var clientB = openFeature.GetProvider("b");
- clientA.Should().Be(clientB);
+ Assert.Equal(clientB, clientA);
}
[Fact]
@@ -164,16 +163,16 @@ public void OpenFeature_Should_Add_Hooks()
openFeature.AddHooks(hook1);
- openFeature.GetHooks().Should().Contain(hook1);
+ Assert.Contains(hook1, openFeature.GetHooks());
Assert.Single(openFeature.GetHooks());
openFeature.AddHooks(hook2);
- openFeature.GetHooks().Should().ContainInOrder(hook1, hook2);
- openFeature.GetHooks().Count().Should().Be(2);
+ var expectedHooks = new[] { hook1, hook2 }.AsEnumerable();
+ Assert.Equal(expectedHooks, openFeature.GetHooks());
openFeature.AddHooks(new[] { hook3, hook4 });
- openFeature.GetHooks().Should().ContainInOrder(hook1, hook2, hook3, hook4);
- openFeature.GetHooks().Count().Should().Be(4);
+ expectedHooks = new[] { hook1, hook2, hook3, hook4 }.AsEnumerable();
+ Assert.Equal(expectedHooks, openFeature.GetHooks());
openFeature.ClearHooks();
Assert.Empty(openFeature.GetHooks());
@@ -187,8 +186,8 @@ public async Task OpenFeature_Should_Get_Metadata()
var openFeature = Api.Instance;
var metadata = openFeature.GetProviderMetadata();
- metadata.Should().NotBeNull();
- metadata?.Name.Should().Be(NoOpProvider.NoOpProviderName);
+ Assert.NotNull(metadata);
+ Assert.Equal(NoOpProvider.NoOpProviderName, metadata?.Name);
}
[Theory]
@@ -201,9 +200,9 @@ public void OpenFeature_Should_Create_Client(string? name = null, string? versio
var openFeature = Api.Instance;
var client = openFeature.GetClient(name, version);
- client.Should().NotBeNull();
- client.GetMetadata().Name.Should().Be(name);
- client.GetMetadata().Version.Should().Be(version);
+ Assert.NotNull(client);
+ Assert.Equal(name, client.GetMetadata().Name);
+ Assert.Equal(version, client.GetMetadata().Version);
}
[Fact]
@@ -213,19 +212,19 @@ public void Should_Set_Given_Context()
Api.Instance.SetContext(context);
- Api.Instance.GetContext().Should().BeSameAs(context);
+ Assert.Equal(context, Api.Instance.GetContext());
context = EvaluationContext.Builder().Build();
Api.Instance.SetContext(context);
- Api.Instance.GetContext().Should().BeSameAs(context);
+ Assert.Equal(context, Api.Instance.GetContext());
}
[Fact]
public void Should_Always_Have_Provider()
{
- Api.Instance.GetProvider().Should().NotBeNull();
+ Assert.NotNull(Api.Instance.GetProvider());
}
[Fact]
@@ -239,11 +238,11 @@ public async Task OpenFeature_Should_Allow_Multiple_Client_Mapping()
var client1 = openFeature.GetClient("client1");
var client2 = openFeature.GetClient("client2");
- client1.GetMetadata().Name.Should().Be("client1");
- client2.GetMetadata().Name.Should().Be("client2");
+ Assert.Equal("client1", client1.GetMetadata().Name);
+ Assert.Equal("client2", client2.GetMetadata().Name);
- (await client1.GetBooleanValueAsync("test", false)).Should().BeTrue();
- (await client2.GetBooleanValueAsync("test", false)).Should().BeFalse();
+ Assert.True(await client1.GetBooleanValueAsync("test", false));
+ Assert.False(await client2.GetBooleanValueAsync("test", false));
}
[Fact]