Skip to content

Commit bdd225e

Browse files
test: Remove FluentAssertions (#342)
1 parent 308cc42 commit bdd225e

File tree

5 files changed

+63
-78
lines changed

5 files changed

+63
-78
lines changed

build/Common.tests.props

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
<PrivateAssets>all</PrivateAssets>
2929
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
3030
</PackageReference>
31-
<PackageReference Include="FluentAssertions" Version="$(FluentAssertionsVer)" />
3231
<PackageReference Include="GitHubActionsTestLogger" Version="$(GitHubActionsTestLoggerVer)" />
3332
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPkgVer)" />
3433
<PackageReference Include="NSubstitute" Version="$(NSubstituteVer)" />
@@ -47,7 +46,6 @@
4746
-->
4847
<AutoFixtureVer>[4.17.0]</AutoFixtureVer>
4948
<CoverletCollectorVer>[3.1.2]</CoverletCollectorVer>
50-
<FluentAssertionsVer>[6.7.0]</FluentAssertionsVer>
5149
<GitHubActionsTestLoggerVer>[2.3.3]</GitHubActionsTestLoggerVer>
5250
<MicrosoftNETTestSdkPkgVer>[17.3.2]</MicrosoftNETTestSdkPkgVer>
5351
<NSubstituteVer>[5.0.0]</NSubstituteVer>

test/OpenFeature.Contrib.Providers.Flipt.Test/FlipExtensionsTest.cs renamed to test/OpenFeature.Contrib.Providers.Flipt.Test/FliptExtensionsTest.cs

Lines changed: 39 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
1-
using System.Text.Json;
2-
using FluentAssertions;
31
using OpenFeature.Contrib.Providers.Flipt.Converters;
42
using OpenFeature.Model;
3+
using System.Text.Json;
54
using Xunit;
65

76
namespace OpenFeature.Contrib.Providers.Flipt.Test;
87

9-
public class FlipExtensionsTest
8+
public class FliptExtensionsTest
109
{
1110
[Fact]
1211
public void ToStringDictionary_WithEmptyContext_ShouldReturnEmptyDictionary()
1312
{
1413
var evaluationContext = EvaluationContext.Builder().Build();
1514
var result = evaluationContext.ToStringDictionary();
1615

17-
result.Should().NotBeNull();
18-
result.Should().BeEmpty();
16+
Assert.NotNull(result);
17+
Assert.Empty(result);
1918
}
2019

2120
[Fact]
@@ -27,9 +26,9 @@ public void ToStringDictionary_WithContext_ShouldReturnADictionaryWithValues()
2726
.Build();
2827
var result = evaluationContext.ToStringDictionary();
2928

30-
result.Should().NotBeNull();
31-
result.Should().NotBeEmpty();
32-
result.Keys.Should().Contain("location");
29+
Assert.NotNull(result);
30+
Assert.NotEmpty(result);
31+
Assert.Contains("location", result.Keys);
3332
}
3433

3534
[Fact]
@@ -41,10 +40,12 @@ public void ToStringDictionary_WithContextAndIntegerValue_ShouldReturnADictionar
4140
.Build();
4241
var result = evaluationContext.ToStringDictionary();
4342

44-
result.Should().NotBeNull();
45-
result.Should().NotBeEmpty();
46-
result.Keys.Should().Contain("age");
47-
result["age"].Should().Be("23");
43+
Assert.NotNull(result);
44+
Assert.NotEmpty(result);
45+
Assert.Contains("age", result.Keys);
46+
47+
var actual = result["age"];
48+
Assert.Equal("23", actual);
4849
}
4950

5051
[Fact]
@@ -62,14 +63,13 @@ public void ToStringDictionary_WithContextAndValuesOfStrings_ShouldReturnADictio
6263
.Build();
6364
var result = evaluationContext.ToStringDictionary();
6465

65-
result.Should().NotBeNull();
66-
result.Should().NotBeEmpty();
67-
result.Keys.Should().Contain("config");
66+
Assert.NotNull(result);
67+
Assert.NotEmpty(result);
68+
Assert.Contains("config", result.Keys);
6869

69-
JsonSerializer
70-
.Deserialize<Structure>(result["config"],
71-
JsonConverterExtensions.DefaultSerializerSettings).Should()
72-
.BeEquivalentTo(testStructure);
70+
var expected = JsonSerializer.Serialize(testStructure, JsonConverterExtensions.DefaultSerializerSettings);
71+
var actual = result["config"];
72+
Assert.Equal(expected, actual);
7373
}
7474

7575
[Fact]
@@ -88,21 +88,22 @@ public void ToStringDictionary_WithContextAndMixedValueTypes_ShouldReturnADictio
8888
.Build();
8989
var result = evaluationContext.ToStringDictionary();
9090

91-
result.Should().NotBeNull();
92-
result.Should().NotBeEmpty();
93-
result.Keys.Should().Contain("config");
91+
Assert.NotNull(result);
92+
Assert.NotEmpty(result);
93+
Assert.Contains("config", result.Keys);
9494

95-
var deserialized = JsonSerializer.Deserialize<Structure>(result["config"],
96-
JsonConverterExtensions.DefaultSerializerSettings);
97-
deserialized.Should().BeEquivalentTo(testStructure);
95+
var expected = JsonSerializer.Serialize(testStructure, JsonConverterExtensions.DefaultSerializerSettings);
96+
var actual = result["config"];
97+
Assert.Equal(expected, actual);
9898
}
9999

100100
[Fact]
101101
public void ToStringDictionary_WithContextWithListAndNestedList_ShouldReturnADictionaryWithSerializedValues()
102102
{
103103
var sampleDictionary = new Dictionary<string, Value>();
104104
sampleDictionary["config2"] = new Value([
105-
new Value([new Value("element1-1"), new Value("element1-2")]), new Value("element2"),
105+
new Value([new Value("element1-1"), new Value("element1-2")]),
106+
new Value("element2"),
106107
new Value("element3")
107108
]);
108109
sampleDictionary["config3"] = new Value(DateTime.Now);
@@ -115,13 +116,13 @@ public void ToStringDictionary_WithContextWithListAndNestedList_ShouldReturnADic
115116
.Build();
116117
var result = evaluationContext.ToStringDictionary();
117118

118-
result.Should().NotBeNull();
119-
result.Should().NotBeEmpty();
120-
result.Keys.Should().Contain("config");
119+
Assert.NotNull(result);
120+
Assert.NotEmpty(result);
121+
Assert.Contains("config", result.Keys);
121122

122-
var deserialized = JsonSerializer.Deserialize<Structure>(result["config"],
123-
JsonConverterExtensions.DefaultSerializerSettings);
124-
deserialized.Should().BeEquivalentTo(testStructure);
123+
var expected = JsonSerializer.Serialize(testStructure, JsonConverterExtensions.DefaultSerializerSettings);
124+
var actual = result["config"];
125+
Assert.Equal(expected, actual);
125126
}
126127

127128
[Fact]
@@ -144,12 +145,12 @@ public void ToStringDictionary_WithContextWithNestedStructure_ShouldReturnADicti
144145
.Build();
145146
var result = evaluationContext.ToStringDictionary();
146147

147-
result.Should().NotBeNull();
148-
result.Should().NotBeEmpty();
149-
result.Keys.Should().Contain("config");
148+
Assert.NotNull(result);
149+
Assert.NotEmpty(result);
150+
Assert.Contains("config", result.Keys);
150151

151-
var deserialized = JsonSerializer.Deserialize<Structure>(result["config"],
152-
JsonConverterExtensions.DefaultSerializerSettings);
153-
deserialized.Should().BeEquivalentTo(testStructure);
152+
var expected = JsonSerializer.Serialize(testStructure, JsonConverterExtensions.DefaultSerializerSettings);
153+
var actual = result["config"];
154+
Assert.Equal(expected, actual);
154155
}
155156
}

test/OpenFeature.Contrib.Providers.Flipt.Test/FliptProviderTest.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using Flipt.Rest;
2-
using FluentAssertions;
32
using Moq;
43
using OpenFeature.Contrib.Providers.Flipt.ClientWrapper;
54
using OpenFeature.Error;
@@ -23,11 +22,9 @@ public void CreateFliptProvider_ShouldReturnFliptProvider()
2322
[Fact]
2423
public void CreateFliptProvider_GivenEmptyUrl_ShouldThrowInvalidOperationException()
2524
{
26-
var act = void() => new FliptProvider("");
27-
act.Should().Throw<UriFormatException>();
25+
Assert.Throws<UriFormatException>(() => new FliptProvider(""));
2826
}
2927

30-
3128
[Fact]
3229
public async Task
3330
ResolveNonBooleansAsync_GivenFlagThatHasATypeMismatch_ShouldReturnDefaultValueWithTypeMismatchError()
@@ -49,9 +46,7 @@ public async Task
4946

5047
var provider = new FliptProvider(new FliptToOpenFeatureConverter(mockFliptClientWrapper.Object));
5148

52-
var resolution = async Task<ResolutionDetails<double>>() =>
53-
await provider.ResolveDoubleValueAsync(flagKey, 0.0);
54-
await resolution.Should().ThrowAsync<TypeMismatchException>();
49+
await Assert.ThrowsAsync<TypeMismatchException>(async () => await provider.ResolveDoubleValueAsync(flagKey, 0.0));
5550
}
5651

5752
[Fact]

test/OpenFeature.Contrib.Providers.Flipt.Test/FliptToOpenFeatureConverterTest.cs

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
// ReSharper disable RedundantUsingDirective
22

3-
using System.Net;
4-
using System.Net.Http;
53
using Flipt.Rest;
6-
using FluentAssertions;
74
using Moq;
85
using OpenFeature.Constant;
96
using OpenFeature.Contrib.Providers.Flipt.ClientWrapper;
7+
using OpenFeature.Contrib.Providers.Flipt.Converters;
108
using OpenFeature.Model;
9+
using System.Net;
10+
using System.Net.Http;
11+
using System.Text.Json;
1112
using Xunit;
1213

1314
namespace OpenFeature.Contrib.Providers.Flipt.Test;
@@ -30,10 +31,8 @@ public async Task EvaluateBooleanAsync_GivenHttpRequestException_ShouldHandleHtt
3031
.ThrowsAsync(new FliptRestException("", (int)thrownStatusCode, "", null, null));
3132

3233
var fliptToOpenFeature = new FliptToOpenFeatureConverter(mockFliptClientWrapper.Object);
33-
var resolution = async Task<ResolutionDetails<bool>>() =>
34-
await fliptToOpenFeature.EvaluateBooleanAsync("flagKey", fallbackValue);
3534

36-
await resolution.Should().ThrowAsync<HttpRequestException>();
35+
await Assert.ThrowsAsync<HttpRequestException>(async () => await fliptToOpenFeature.EvaluateBooleanAsync("flagKey", fallbackValue));
3736
}
3837

3938
[Theory]
@@ -54,9 +53,9 @@ public async Task EvaluateBooleanAsync_GivenExistingFlag_ShouldReturnFlagValue(s
5453
var fliptToOpenFeature = new FliptToOpenFeatureConverter(mockFliptClientWrapper.Object);
5554
var resolution = await fliptToOpenFeature.EvaluateBooleanAsync("show-feature", false);
5655

57-
resolution.FlagKey.Should().Be(flagKey);
58-
resolution.Value.Should().Be(valueFromSrc);
59-
resolution.Reason.Should().Be(Reason.TargetingMatch);
56+
Assert.Equal(flagKey, resolution.FlagKey);
57+
Assert.Equal(valueFromSrc, resolution.Value);
58+
Assert.Equal(Reason.TargetingMatch, resolution.Reason);
6059
}
6160

6261
[Theory]
@@ -70,10 +69,8 @@ public async Task EvaluateBooleanAsync_GivenNonExistentFlag_ShouldReturnDefaultV
7069
.ThrowsAsync(new FliptRestException("", (int)HttpStatusCode.NotFound, "", null, null));
7170

7271
var fliptToOpenFeature = new FliptToOpenFeatureConverter(mockFliptClientWrapper.Object);
73-
var resolution = async Task<ResolutionDetails<bool>>() =>
74-
await fliptToOpenFeature.EvaluateBooleanAsync(flagKey, fallBackValue);
7572

76-
await resolution.Should().ThrowAsync<HttpRequestException>();
73+
await Assert.ThrowsAsync<HttpRequestException>(async () => await fliptToOpenFeature.EvaluateBooleanAsync(flagKey, fallBackValue));
7774
}
7875

7976
// EvaluateAsync Tests
@@ -93,10 +90,8 @@ public async Task EvaluateAsync_GivenHttpRequestException_ShouldHandleHttpReques
9390
.ThrowsAsync(new FliptRestException("", (int)thrownStatusCode, "", null, null));
9491

9592
var fliptToOpenFeature = new FliptToOpenFeatureConverter(mockFliptClientWrapper.Object);
96-
var resolution = async Task<ResolutionDetails<double>>() =>
97-
await fliptToOpenFeature.EvaluateAsync("flagKey", fallbackValue);
9893

99-
await resolution.Should().ThrowAsync<HttpRequestException>();
94+
await Assert.ThrowsAsync<HttpRequestException>(async () => await fliptToOpenFeature.EvaluateAsync("flagKey", fallbackValue));
10095
}
10196

10297
[Theory]
@@ -122,10 +117,10 @@ public async Task EvaluateAsync_GivenExistingVariantFlagWhichIsNotAnObject_Shoul
122117
var fliptToOpenFeature = new FliptToOpenFeatureConverter(mockFliptClientWrapper.Object);
123118
var resolution = await fliptToOpenFeature.EvaluateAsync(flagKey, valueFromSrc);
124119

125-
resolution.FlagKey.Should().Be(flagKey);
126-
resolution.Variant.Should().Be(valueFromSrc.ToString() ?? string.Empty);
127-
resolution.Value.Should().BeEquivalentTo(expectedValue?.ToString());
128-
resolution.Reason.Should().Be(Reason.TargetingMatch);
120+
Assert.Equal(flagKey, resolution.FlagKey);
121+
Assert.Equal(valueFromSrc.ToString() ?? string.Empty, resolution.Value);
122+
Assert.Equal(expectedValue?.ToString(), resolution.Value);
123+
Assert.Equal(Reason.TargetingMatch, resolution.Reason);
129124
}
130125

131126
[Fact]
@@ -160,11 +155,13 @@ public async Task EvaluateAsync_GivenExistingVariantFlagAndWithAnObject_ShouldRe
160155
var fliptToOpenFeature = new FliptToOpenFeatureConverter(mockFliptClientWrapper.Object);
161156
var resolution = await fliptToOpenFeature.EvaluateAsync(flagKey, new Value());
162157

163-
resolution.FlagKey.Should().Be(flagKey);
164-
resolution.Variant.Should().Be(variantKey);
165-
resolution.Value.Should().BeEquivalentTo(expectedValue);
166-
}
158+
Assert.Equal(flagKey, resolution.FlagKey);
159+
Assert.Equal(variantKey, resolution.Variant);
167160

161+
var expected = JsonSerializer.Serialize(expectedValue, JsonConverterExtensions.DefaultSerializerSettings);
162+
var actual = JsonSerializer.Serialize(resolution.Value, JsonConverterExtensions.DefaultSerializerSettings);
163+
Assert.Equal(expected, actual);
164+
}
168165

169166
[Fact]
170167
public async Task
@@ -179,13 +176,10 @@ public async Task
179176
.ThrowsAsync(new FliptRestException("", (int)HttpStatusCode.NotFound, "", null, null));
180177

181178
var fliptToOpenFeature = new FliptToOpenFeatureConverter(mockFliptClientWrapper.Object);
182-
var resolution = async Task<ResolutionDetails<Value>>() =>
183-
await fliptToOpenFeature.EvaluateAsync("non-existent-flag", fallbackValue);
184179

185-
await resolution.Should().ThrowAsync<HttpRequestException>();
180+
await Assert.ThrowsAsync<HttpRequestException>(async () => await fliptToOpenFeature.EvaluateAsync("non-existent-flag", fallbackValue));
186181
}
187182

188-
189183
[Fact]
190184
public async Task
191185
EvaluateVariantAsync_GivenNonExistentFlagWithNestedFallback_ShouldReturnDefaultValueWithFlagNotFoundError()
@@ -196,9 +190,7 @@ public async Task
196190
.ThrowsAsync(new FliptRestException("", (int)HttpStatusCode.NotFound, "", null, null));
197191

198192
var fliptToOpenFeature = new FliptToOpenFeatureConverter(mockFliptClientWrapper.Object);
199-
var resolution = async Task<ResolutionDetails<Value>>() =>
200-
await fliptToOpenFeature.EvaluateAsync("non-existent-flag", fallbackValue);
201193

202-
await resolution.Should().ThrowAsync<HttpRequestException>();
194+
await Assert.ThrowsAsync<HttpRequestException>(async () => await fliptToOpenFeature.EvaluateAsync("non-existent-flag", fallbackValue));
203195
}
204196
}

test/OpenFeature.Contrib.Providers.Flipt.Test/OpenFeature.Contrib.Providers.Flipt.Test.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
<ItemGroup>
1717
<PackageReference Include="Moq" Version="4.20.72"/>
18-
<PackageReference Update="FluentAssertions" Version="6.12.1"/>
1918
<ProjectReference Include="..\..\src\OpenFeature.Contrib.Providers.Flipt\OpenFeature.Contrib.Providers.Flipt.csproj"/>
2019
</ItemGroup>
2120

0 commit comments

Comments
 (0)