Skip to content

Commit

Permalink
Merge pull request #29 from MrDave1999/refactor/default-values
Browse files Browse the repository at this point in the history
* refactor!: Add default values to Message/Status properties

* test: Add/update tests for creating an instance with default values

* test: Exclude the Status property in the assertion 

* chore: Add a resource called Error
  • Loading branch information
MrDave1999 authored Oct 25, 2023
2 parents 0a99234 + b9186cb commit 9155008
Show file tree
Hide file tree
Showing 12 changed files with 86 additions and 10 deletions.
9 changes: 9 additions & 0 deletions src/Core/Resources/ResponseMessages.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions src/Core/Resources/ResponseMessages.es.resx
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,9 @@
<data name="DivideByZero" xml:space="preserve">
<value>No se puede dividir por cero. El parámetro '{0}' no puede ser cero</value>
</data>
<data name="Error" xml:space="preserve">
<value>Error</value>
</data>
<data name="Failure" xml:space="preserve">
<value>Se ha producido un error durante la ejecución de un servicio</value>
</data>
Expand Down
3 changes: 3 additions & 0 deletions src/Core/Resources/ResponseMessages.resx
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,9 @@
<data name="DivideByZero" xml:space="preserve">
<value>Cannot be divided by zero. The '{0}' parameter cannot be zero</value>
</data>
<data name="Error" xml:space="preserve">
<value>Error</value>
</data>
<data name="Failure" xml:space="preserve">
<value>An error occurred during the execution of a service</value>
</data>
Expand Down
4 changes: 2 additions & 2 deletions src/Core/ResultBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public abstract class ResultBase
/// <summary>
/// Gets the description of a result.
/// </summary>
public string Message { get; init; }
public string Message { get; init; } = ResponseMessages.Error;

/// <summary>
/// Gets a collection of errors.
Expand All @@ -31,5 +31,5 @@ public abstract class ResultBase
/// Gets the current status of a result.
/// </summary>
[JsonIgnore]
public ResultStatus Status { get; init; }
public ResultStatus Status { get; init; } = ResultStatus.Failure;
}
8 changes: 6 additions & 2 deletions tests/Json/SystemTextJson.ListedResultOfT.Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,9 @@ public void ListedResultOfT_ShouldDeserializeResultOfValueType()
var actual = JsonSerializer.Deserialize<ListedResult<int>>(json, options);

// Assert
actual.Should().BeEquivalentTo(expectedResult);
actual
.Should()
.BeEquivalentTo(expectedResult, o => o.Excluding(r => r.Status));
}

[Test]
Expand Down Expand Up @@ -123,6 +125,8 @@ public void ListedResultOfT_ShouldDeserializeResultOfReferenceType()
var actual = JsonSerializer.Deserialize<ListedResult<Person>>(json, options);

// Assert
actual.Should().BeEquivalentTo(expectedResult);
actual
.Should()
.BeEquivalentTo(expectedResult, o => o.Excluding(r => r.Status));
}
}
8 changes: 6 additions & 2 deletions tests/Json/SystemTextJson.PagedResultOfT.Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,9 @@ public void PagedResultOfT_ShouldDeserializeResultOfValueType()
var actual = JsonSerializer.Deserialize<PagedResult<int>>(json, options);

// Assert
actual.Should().BeEquivalentTo(expectedResult);
actual
.Should()
.BeEquivalentTo(expectedResult, o => o.Excluding(r => r.Status));
}

[Test]
Expand Down Expand Up @@ -161,6 +163,8 @@ public void PagedResultOfT_ShouldDeserializeResultOfReferenceType()
var actual = JsonSerializer.Deserialize<PagedResult<Person>>(json, options);

// Assert
actual.Should().BeEquivalentTo(expectedResult);
actual
.Should()
.BeEquivalentTo(expectedResult, o => o.Excluding(r => r.Status));
}
}
4 changes: 3 additions & 1 deletion tests/Json/SystemTextJson.Result.Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ public void Result_ShouldDeserializeResultWithoutData()
var actual = JsonSerializer.Deserialize<Result>(json, options);

// Assert
actual.Should().BeEquivalentTo(expectedResult);
actual
.Should()
.BeEquivalentTo(expectedResult, o => o.Excluding(r => r.Status));
}
}
12 changes: 9 additions & 3 deletions tests/Json/SystemTextJson.ResultOfT.Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,9 @@ public void ResultOfT_ShouldDeserializeResultOfValueType()
var actual = JsonSerializer.Deserialize<Result<int>>(json, options);

// Assert
actual.Should().BeEquivalentTo(expectedResult);
actual
.Should()
.BeEquivalentTo(expectedResult, o => o.Excluding(r => r.Status));
}

[Test]
Expand All @@ -95,7 +97,9 @@ public void ResultOfT_ShouldDeserializeResultOfCreatedIdType()
var actual = JsonSerializer.Deserialize<Result<CreatedId>>(json, options);

// Assert
actual.Should().BeEquivalentTo(expectedResult);
actual
.Should()
.BeEquivalentTo(expectedResult, o => o.Excluding(r => r.Status));
}

[Test]
Expand All @@ -121,6 +125,8 @@ public void ResultOfT_ShouldDeserializeResultOfCreatedGuidType()
var actual = JsonSerializer.Deserialize<Result<CreatedGuid>>(json, options);

// Assert
actual.Should().BeEquivalentTo(expectedResult);
actual
.Should()
.BeEquivalentTo(expectedResult, o => o.Excluding(r => r.Status));
}
}
5 changes: 5 additions & 0 deletions tests/ListedResultOfT.Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,19 @@ public class ListedResultOfTTests
[Test]
public void ListedResultOfT_ShouldCreateInstanceWithDefaultValues()
{
// Arrange
var expectedMessage = ResponseMessages.Error;

// Act
var actual = new ListedResult<Person>();

// Asserts
actual.Data.Should().BeEmpty();
actual.IsSuccess.Should().BeFalse();
actual.IsFailed.Should().BeTrue();
actual.Message.Should().Be(expectedMessage);
actual.Errors.Should().BeEmpty();
actual.Status.Should().Be(ResultStatus.Failure);
}

[Test]
Expand Down
5 changes: 5 additions & 0 deletions tests/PagedResultOfT.Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ public class PagedResultOfTTests
[Test]
public void PagedResultOfT_ShouldCreateInstanceWithDefaultValues()
{
// Arrange
var expectedMessage = ResponseMessages.Error;

// Act
var actual = new PagedResult<Person>();

Expand All @@ -13,7 +16,9 @@ public void PagedResultOfT_ShouldCreateInstanceWithDefaultValues()
actual.PagedInfo.Should().BeNull();
actual.IsSuccess.Should().BeFalse();
actual.IsFailed.Should().BeTrue();
actual.Message.Should().Be(expectedMessage);
actual.Errors.Should().BeEmpty();
actual.Status.Should().Be(ResultStatus.Failure);
}

[Test]
Expand Down
18 changes: 18 additions & 0 deletions tests/ResultOfT.Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,24 @@

public class ResultOfTTests
{
[Test]
public void ResultOfT_ShouldCreateInstanceWithDefaultValues()
{
// Arrange
var expectedMessage = ResponseMessages.Error;

// Act
var actual = new Result<Person>();

// Asserts
actual.Data.Should().BeNull();
actual.IsSuccess.Should().BeFalse();
actual.IsFailed.Should().BeTrue();
actual.Message.Should().Be(expectedMessage);
actual.Errors.Should().BeEmpty();
actual.Status.Should().Be(ResultStatus.Failure);
}

[Test]
public void ImplicitOperator_WhenConvertedFromResultType_ShouldReturnsResultOfT()
{
Expand Down
17 changes: 17 additions & 0 deletions tests/ResultTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,23 @@

public partial class ResultTests
{
[Test]
public void Result_ShouldCreateInstanceWithDefaultValues()
{
// Arrange
var expectedMessage = ResponseMessages.Error;

// Act
var actual = new Result();

// Asserts
actual.IsSuccess.Should().BeFalse();
actual.IsFailed.Should().BeTrue();
actual.Message.Should().Be(expectedMessage);
actual.Errors.Should().BeEmpty();
actual.Status.Should().Be(ResultStatus.Failure);
}

[Test]
public void Success_WhenResultIsSuccessWithMessage_ShouldReturnsResultOfT()
{
Expand Down

0 comments on commit 9155008

Please sign in to comment.