Skip to content

Commit 10d86b4

Browse files
Added result extensions. (#91)
Added result extensions.
1 parent 378c072 commit 10d86b4

22 files changed

+227
-105
lines changed

OnixLabs.Core.UnitTests/ObjectExtensionTests.cs

+30
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
// limitations under the License.
1414

1515
using System;
16+
using System.Threading.Tasks;
1617
using OnixLabs.Core.UnitTests.Data;
1718
using Xunit;
1819

@@ -223,4 +224,33 @@ public void ToStringOrNullShouldProduceExpectedResultWhenObjectIsNotNull()
223224
// Then
224225
Assert.Equal(expected, actual);
225226
}
227+
228+
[Fact(DisplayName = "ToSuccessResult should produce the expected result")]
229+
public void ToSuccessResultShouldProduceTheExpectedResult()
230+
{
231+
// Given
232+
const string expected = "abc";
233+
234+
// When
235+
Result<string> result = expected.ToSuccessResult();
236+
237+
// Then
238+
Success<string> success = Assert.IsType<Success<string>>(result);
239+
Assert.Equal(expected, success.Value);
240+
}
241+
242+
[Fact(DisplayName = "ToSuccessResultAsync should produce the expected result")]
243+
public async Task ToSuccessResultAsyncShouldProduceTheExpectedResult()
244+
{
245+
// Given
246+
const string expected = "abc";
247+
248+
// When
249+
Task<string> task = Task.FromResult(expected);
250+
Result<string> result = await task.ToSuccessResultAsync();
251+
252+
// Then
253+
Success<string> success = Assert.IsType<Success<string>>(result);
254+
Assert.Equal(expected, success.Value);
255+
}
226256
}

OnixLabs.Core.UnitTests/OptionalEqualityComparerTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ public void OptionalEqualityComparerEqualsShouldReturnFalseWhenComparingNonIdent
158158
public void OptionalEqualityComparerGetHashCodeShouldReturnZeroWhenOptionalValueIsNone()
159159
{
160160
// Given
161-
const int expected = default;
161+
const int expected = 0;
162162
Optional<string> optional = Optional<string>.None;
163163
OptionalEqualityComparer<string> comparer = new();
164164

OnixLabs.Core.UnitTests/OptionalTests.cs

+7-7
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ public void OptionalNoneShouldProduceExpectedResult()
4242
public void OptionalOfShouldProduceExpectedResultForImplicitDefaultValues()
4343
{
4444
// Given / When
45-
Optional<int> number = Optional<int>.Of(default);
46-
Optional<string> text = Optional<string>.Of(default);
45+
Optional<int> number = Optional<int>.Of(0);
46+
Optional<string> text = Optional<string>.Of(null);
4747

4848
// Then
4949
Assert.True(Optional<int>.IsNone(number));
@@ -100,7 +100,7 @@ public void OptionalOfShouldProduceExpectedResultForNullNullableStructValues()
100100
{
101101
// Given / When
102102
Optional<int> number = Optional<int>.Of((int?)null);
103-
Optional<Guid> identifier = Optional<Guid>.Of((Guid?)default);
103+
Optional<Guid> identifier = Optional<Guid>.Of((Guid?)null);
104104

105105
// Then
106106
Assert.False(number.HasValue);
@@ -171,7 +171,7 @@ public void OptionalImplicitOperatorShouldProduceExpectedSomeResult()
171171
public void OptionalImplicitOperatorShouldProduceExpectedNoneResult()
172172
{
173173
// Given / When
174-
const string? value = default;
174+
const string? value = null;
175175
Optional<string> optional = value;
176176

177177
// Then
@@ -297,7 +297,7 @@ public void OptionalSomeGetHashCodeShouldProduceExpectedResult()
297297
public void OptionalNoneGetHashCodeShouldProduceExpectedResult()
298298
{
299299
// Given
300-
const int expected = default;
300+
const int expected = 0;
301301
Optional<int> optional = Optional<int>.None;
302302

303303
// When
@@ -335,8 +335,8 @@ public void OptionalNoneGetValueOrDefaultShouldProduceExpectedResult()
335335
string? actualText = text.GetValueOrDefault();
336336

337337
// Then
338-
Assert.Equal(default, actualNumber);
339-
Assert.Equal(default, actualText);
338+
Assert.Equal(0, actualNumber);
339+
Assert.Equal(null, actualText);
340340
}
341341

342342
[Fact(DisplayName = "Optional Some.GetValueOrDefault with default value should produce the expected result.")]

OnixLabs.Core.UnitTests/PreconditionTests.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -217,13 +217,13 @@ public void CheckNotNullOfValueTypeShouldThrowInvalidOperationExceptionWhenCondi
217217
{
218218
// Given
219219
int? expected = null;
220-
int actual = default;
220+
int actual = 0;
221221

222222
// When
223223
Exception exception = Assert.Throws<InvalidOperationException>(() => actual = CheckNotNull(expected));
224224

225225
// Then
226-
Assert.Equal(default, actual);
226+
Assert.Equal(0, actual);
227227
Assert.Equal("Argument must not be null.", exception.Message);
228228
}
229229

@@ -593,13 +593,13 @@ public void RequireNotNullOfValueTypeShouldThrowInvalidOperationExceptionWhenCon
593593
{
594594
// Given
595595
int? expected = null;
596-
int actual = default;
596+
int actual = 0;
597597

598598
// When
599599
Exception exception = Assert.Throws<ArgumentNullException>(() => actual = RequireNotNull(expected));
600600

601601
// Then
602-
Assert.Equal(default, actual);
602+
Assert.Equal(0, actual);
603603
Assert.Equal("Argument must not be null.", exception.Message);
604604
}
605605

OnixLabs.Core.UnitTests/ResultExtensionTests.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ public async Task ResultGetValueOrDefaultAsyncShouldReturnDefaultWhenResultIsFai
211211
string? actualText = await textTask.GetValueOrDefaultAsync();
212212

213213
// Then
214-
Assert.Equal(default, actualNumber);
214+
Assert.Equal(0, actualNumber);
215215
Assert.Null(actualText);
216216
}
217217

@@ -364,8 +364,8 @@ public async Task ResultGetValueOrNoneAsyncShouldReturnOptionalValueWhenResultIs
364364
public async Task ResultGetValueOrNoneAsyncShouldReturnNoneWhenResultIsSuccessAndValueIsNone()
365365
{
366366
// Given
367-
Result<int> numberResult = Result<int>.Success(default);
368-
Result<string> textResult = Result<string>.Success(default!);
367+
Result<int> numberResult = Result<int>.Success(0);
368+
Result<string> textResult = Result<string>.Success(null!);
369369

370370
// When
371371
Optional<int> actualNumber = await Task.FromResult(numberResult).GetValueOrNoneAsync();

0 commit comments

Comments
 (0)