Skip to content

Commit 379450f

Browse files
committed
new tests
1 parent e7ade71 commit 379450f

5 files changed

Lines changed: 150 additions & 4 deletions

File tree

src/RoyalCode.SmartProblems.Tests/Basics/ProblemTests.cs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,62 @@ public void Problem_WithEnum_MustAddExtension()
109109
Assert.Single(problem.Extensions);
110110
Assert.Equal("Value1", problem.Extensions["my-key"]);
111111
}
112+
113+
[Fact]
114+
public void Problem_Implicit_Task()
115+
{
116+
// Arrange
117+
Problem problem = Problems.InvalidParameter("Invalid parameter");
118+
Task<Result> task;
119+
120+
// Act
121+
task = problem;
122+
123+
// Assert
124+
Assert.NotNull(task);
125+
var result = task.Result;
126+
Assert.True(result.HasProblems(out var resultProblems));
127+
Assert.NotNull(resultProblems);
128+
Assert.Single(resultProblems);
129+
}
130+
131+
[Fact]
132+
public void Problem_AsResult()
133+
{
134+
// Arrange
135+
Problem problem = Problems.InvalidParameter("Invalid parameter");
136+
Result result;
137+
Task<Result> task;
138+
139+
// Act
140+
task = problem.AsResult();
141+
142+
// Assert
143+
Assert.NotNull(task);
144+
result = task.Result;
145+
Assert.True(result.HasProblems(out var resultProblems));
146+
Assert.NotNull(resultProblems);
147+
Assert.Single(resultProblems);
148+
}
149+
150+
[Fact]
151+
public void Problem_AsResultValue()
152+
{
153+
// Arrange
154+
Problem problem = Problems.InvalidParameter("Invalid parameter");
155+
Result<int> result;
156+
Task<Result<int>> task;
157+
158+
// Act
159+
task = problem.AsResult<int>();
160+
161+
// Assert
162+
Assert.NotNull(task);
163+
result = task.Result;
164+
Assert.True(result.HasProblems(out var resultProblems));
165+
Assert.NotNull(resultProblems);
166+
Assert.Single(resultProblems);
167+
}
112168
}
113169

114170
file enum MyEnum

src/RoyalCode.SmartProblems.Tests/Basics/ProblemsTests.cs

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public void Problems_Custom_Must_HaveUriValidTypeId()
139139
}
140140

141141
[Fact]
142-
public void Problems_Implict_Add_Problem()
142+
public void Problems_Implicit_Add_Problem()
143143
{
144144
// Arrange
145145
Problems problems = [];
@@ -152,7 +152,7 @@ public void Problems_Implict_Add_Problem()
152152
}
153153

154154
[Fact]
155-
public void Problems_Implict_Add_Problems()
155+
public void Problems_Implicit_Add_Problems()
156156
{
157157
// Arrange
158158
Problems problems = [];
@@ -165,6 +165,24 @@ public void Problems_Implict_Add_Problems()
165165
Assert.Equal(2, problems.Count);
166166
}
167167

168+
[Fact]
169+
public void Problems_Implicit_Task()
170+
{
171+
// Arrange
172+
Problems problems = Problems.InvalidParameter("Invalid parameter");
173+
Task<Result> task;
174+
175+
// Act
176+
task = problems;
177+
178+
// Assert
179+
Assert.NotNull(task);
180+
var result = task.Result;
181+
Assert.True(result.HasProblems(out var resultProblems));
182+
Assert.NotNull(resultProblems);
183+
Assert.Single(resultProblems);
184+
}
185+
168186
[Fact]
169187
public void Problems_GetByIndex()
170188
{
@@ -332,6 +350,44 @@ public void Problems_ToException_WithMessagePattern_And_Separator()
332350
Assert.Contains("\n - Category: InvalidParameter, Details: Invalid parameter 1", exception.Message);
333351
Assert.Contains("\n - Category: InvalidParameter, Details: Invalid parameter 2", exception.Message);
334352
}
353+
354+
[Fact]
355+
public void Problem_AsResult()
356+
{
357+
// Arrange
358+
Problems problems = Problems.InvalidParameter("Invalid parameter");
359+
Result result;
360+
Task<Result> task;
361+
362+
// Act
363+
task = problems.AsResult();
364+
365+
// Assert
366+
Assert.NotNull(task);
367+
result = task.Result;
368+
Assert.True(result.HasProblems(out var resultProblems));
369+
Assert.NotNull(resultProblems);
370+
Assert.Single(resultProblems);
371+
}
372+
373+
[Fact]
374+
public void Problem_AsResultValue()
375+
{
376+
// Arrange
377+
Problems problems = Problems.InvalidParameter("Invalid parameter");
378+
Result<int> result;
379+
Task<Result<int>> task;
380+
381+
// Act
382+
task = problems.AsResult<int>();
383+
384+
// Assert
385+
Assert.NotNull(task);
386+
result = task.Result;
387+
Assert.True(result.HasProblems(out var resultProblems));
388+
Assert.NotNull(resultProblems);
389+
Assert.Single(resultProblems);
390+
}
335391
}
336392

337393
#region classes

src/RoyalCode.SmartProblems.Tests/Basics/ResultTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,22 @@ public void Result_Implicit_Exception()
8484
Assert.Equal("Error", problems[0].Detail);
8585
}
8686

87+
[Fact]
88+
public void Result_Implicit_Task()
89+
{
90+
// Arrange
91+
Result result = Result.Ok();
92+
Task<Result> task;
93+
94+
// Act
95+
task = result;
96+
97+
// Assert
98+
Assert.NotNull(task);
99+
Assert.True(task.IsCompleted);
100+
Assert.Equal(result, task.Result);
101+
}
102+
87103
[Fact]
88104
public void Result_Add_Problem_Must_HasProblems()
89105
{

src/RoyalCode.SmartProblems.Tests/Basics/ResultValuedTests.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,25 @@ public void ResultValued_Implicit_Problems()
6868
Assert.Same(problems[0], resultProblems[0]);
6969
}
7070

71+
[Fact]
72+
public void Result_Implicit_Task()
73+
{
74+
// Arrange
75+
Result<int> result = 42;
76+
Task<Result<int>> task;
77+
78+
// Act
79+
task = result;
80+
81+
// Assert
82+
Assert.NotNull(task);
83+
Assert.True(task.IsCompleted);
84+
var resultValue = task.Result;
85+
Assert.Equal(result, resultValue);
86+
Assert.True(resultValue.HasValue(out var value));
87+
Assert.Equal(42, value);
88+
}
89+
7190
[Fact]
7291
public void ResultValued_Implicit_Problems_Must_Throw_When_Null()
7392
{

src/RoyalCode.SmartProblems/Problems.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -493,9 +493,8 @@ public Result AsResult()
493493
/// Convert the collection of problems to a <see cref="Result{TValue}"/> instance with the specified value.
494494
/// </summary>
495495
/// <typeparam name="TValue"></typeparam>
496-
/// <param name="value"></param>
497496
/// <returns></returns>
498-
public Result<TValue> AsResult<TValue>(TValue value)
497+
public Result<TValue> AsResult<TValue>()
499498
{
500499
return new Result<TValue>(this);
501500
}

0 commit comments

Comments
 (0)