-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: CRUD operations for Filetype (#8)
* tmp * tmp * impl
- Loading branch information
1 parent
6f41835
commit 1a7d5ea
Showing
28 changed files
with
1,054 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
DocumentDomain.Spec/Operations/Scenario/Filetype/AddFiletypeScenario.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
namespace DocumentDomain.Spec.Operations.Scenario.Filetype; | ||
|
||
using EncyclopediaGalactica.BusinessLogic.Contracts; | ||
using EncyclopediaGalactica.DocumentDomain.Operations.Scenarios; | ||
using EncyclopediaGalactica.DocumentDomain.Operations.Scenarios.Filetype; | ||
using FluentAssertions; | ||
using LanguageExt; | ||
|
||
public class AddFiletypeScenario : ScenarioBaseTest | ||
{ | ||
[Theory] | ||
[ClassData(typeof(AddFiletypeScenarioInputValidationInvalidInputData))] | ||
public async Task ReturnErrorResult_WhenInputIsInvalid(FiletypeInput input) | ||
{ | ||
Either<ErrorResult, FiletypeResult> result = await AddFiletypeScenario.ExecuteAsync( | ||
new AddFiletypeScenarioContext(Guid.NewGuid(), input)); | ||
result.IsLeft.Should().BeTrue(); | ||
result.IsRight.Should().BeFalse(); | ||
result.IfLeft(er => | ||
{ | ||
er.CorrelationId.Should().NotBeEmpty(); | ||
er.ErrorMessage.Should().NotBeEmpty(); | ||
}); | ||
} | ||
|
||
[Fact] | ||
public async Task ReturnFiletypeResult_WhenOperationIsSuccessful() | ||
{ | ||
Either<ErrorResult, FiletypeResult> result = await AddFiletypeScenario.ExecuteAsync( | ||
new AddFiletypeScenarioContext(Guid.NewGuid(), | ||
new FiletypeInput { Id = 0, Name = "asdd", Description = "asd", FileExtension = "asd" })); | ||
result.IsLeft.Should().BeFalse(); | ||
result.IsRight.Should().BeTrue(); | ||
result.IfRight(r => | ||
{ | ||
r.Id.Should().BeGreaterOrEqualTo(1); | ||
r.Name.Should().Be("asdd"); | ||
r.Description.Should().Be("asd"); | ||
r.FileExtension.Should().Be("asd"); | ||
}); | ||
} | ||
} |
59 changes: 59 additions & 0 deletions
59
DocumentDomain.Spec/Operations/Scenario/Filetype/AddFiletypeScenarioInputValidatorShould.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
namespace DocumentDomain.Spec.Operations.Scenario.Filetype; | ||
|
||
using System.Collections; | ||
using System.Diagnostics.CodeAnalysis; | ||
using EncyclopediaGalactica.BusinessLogic.Contracts; | ||
using EncyclopediaGalactica.DocumentDomain.Operations.Scenarios.Filetype; | ||
using FluentAssertions; | ||
using FluentValidation.Results; | ||
|
||
public class AddFiletypeScenarioInputValidatorShould | ||
{ | ||
private AddFiletypeScenarioInputValidator validator = new(); | ||
|
||
[Theory] | ||
[ClassData(typeof(AddFiletypeScenarioInputValidationInvalidInputData))] | ||
public void ShowInvalidState_WhenInputIsInvalid(FiletypeInput input) | ||
{ | ||
ValidationResult result = validator.Validate(input); | ||
result.IsValid.Should().BeFalse(); | ||
result.Errors.Should().NotBeEmpty(); | ||
} | ||
|
||
[Fact] | ||
public void ShowValidState_WhenInputIsValid() | ||
{ | ||
ValidationResult validationResult = validator.Validate( | ||
new FiletypeInput { Id = 0, Name = "asd", Description = "asd", FileExtension = "asd" }); | ||
validationResult.IsValid.Should().BeTrue(); | ||
validationResult.Errors.Should().BeEmpty(); | ||
} | ||
} | ||
|
||
[ExcludeFromCodeCoverage] | ||
public class AddFiletypeScenarioInputValidationInvalidInputData : IEnumerable<object[]> | ||
{ | ||
public IEnumerator<object[]> GetEnumerator() | ||
{ | ||
yield return new object[] { new FiletypeInput { Id = 1, Name = "asd", Description = "asd", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 0, Name = null, Description = "asd", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 0, Name = string.Empty, Description = "asd", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 0, Name = " ", Description = "asd", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 0, Name = "as", Description = "asd", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 0, Name = " as ", Description = "asd", FileExtension = "asd" } }; | ||
|
||
yield return new object[] { new FiletypeInput { Id = 1, Name = "asd", Description = null, FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 0, Name = "asd", Description = string.Empty, FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 0, Name = "asd", Description = " ", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 0, Name = "asd", Description = "as", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 0, Name = "asd", Description = " as ", FileExtension = "asd" } }; | ||
|
||
yield return new object[] { new FiletypeInput { Id = 0, Name = "asd", Description = "asd", FileExtension = null } }; | ||
yield return new object[] { new FiletypeInput { Id = 0, Name = "asd", Description = "asd", FileExtension = string.Empty } }; | ||
} | ||
|
||
IEnumerator IEnumerable.GetEnumerator() | ||
{ | ||
return GetEnumerator(); | ||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
...entDomain.Spec/Operations/Scenario/Filetype/DeleteFiletypeScenarioInputValidatorShould.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
namespace DocumentDomain.Spec.Operations.Scenario.Filetype; | ||
|
||
using EncyclopediaGalactica.BusinessLogic.Contracts; | ||
using EncyclopediaGalactica.DocumentDomain.Operations.Scenarios.Filetype; | ||
using FluentAssertions; | ||
using FluentValidation.Results; | ||
|
||
public class DeleteFiletypeScenarioInputValidatorShould | ||
{ | ||
private DeleteFiletypeScenarioInputValidator validator = new(); | ||
|
||
[Fact] | ||
public void ShowInvalidState_WhenTheInputIsInvalid() | ||
{ | ||
ValidationResult result = validator.Validate(new FiletypeInput { Id = 0 }); | ||
result.IsValid.Should().BeFalse(); | ||
result.Errors.Should().NotBeEmpty(); | ||
} | ||
|
||
[Fact] | ||
public void ShowValidState_WhenTheInputIsValid() | ||
{ | ||
ValidationResult result = validator.Validate(new FiletypeInput { Id = 1 }); | ||
result.IsValid.Should().BeTrue(); | ||
result.Errors.Should().BeEmpty(); | ||
} | ||
} |
61 changes: 61 additions & 0 deletions
61
DocumentDomain.Spec/Operations/Scenario/Filetype/DeleteFiletypeScenarioShould.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
namespace DocumentDomain.Spec.Operations.Scenario.Filetype; | ||
|
||
using EncyclopediaGalactica.BusinessLogic.Contracts; | ||
using EncyclopediaGalactica.DocumentDomain.Operations.Scenarios; | ||
using EncyclopediaGalactica.DocumentDomain.Operations.Scenarios.Filetype; | ||
using FluentAssertions; | ||
using LanguageExt; | ||
|
||
public class DeleteFiletypeScenarioShould : ScenarioBaseTest | ||
{ | ||
[Fact] | ||
public async Task ReturnErrorResult_WhenInputIsInvalid() | ||
{ | ||
Either<ErrorResult, FiletypeResult> result = await DeleteFiletypeScenario.ExecuteAsync( | ||
new DeleteFiletypeScenarioContext(Guid.NewGuid(), | ||
new FiletypeInput { Id = 0 })); | ||
result.IsLeft.Should().BeTrue(); | ||
result.IsRight.Should().BeFalse(); | ||
result.IfLeft(er => | ||
{ | ||
er.CorrelationId.Should().NotBeEmpty(); | ||
er.ErrorMessage.Should().NotBeEmpty(); | ||
}); | ||
} | ||
|
||
[Fact] | ||
public async Task ReturnErrorResult_WhenNoSuchEntity() | ||
{ | ||
Either<ErrorResult, FiletypeResult> result = await DeleteFiletypeScenario.ExecuteAsync( | ||
new DeleteFiletypeScenarioContext(Guid.NewGuid(), | ||
new FiletypeInput { Id = 190 })); | ||
result.IsLeft.Should().BeTrue(); | ||
result.IsRight.Should().BeFalse(); | ||
result.IfLeft(er => | ||
{ | ||
er.CorrelationId.Should().NotBeEmpty(); | ||
er.ErrorMessage.Should().NotBeEmpty(); | ||
}); | ||
} | ||
|
||
[Fact] | ||
public async Task ReturnFiletypeResult_WhenTheOperationIsSuccessful() | ||
{ | ||
FiletypeInput delete = null; | ||
Either<ErrorResult, FiletypeResult> data = await AddFiletypeScenario.ExecuteAsync( | ||
new AddFiletypeScenarioContext(Guid.NewGuid(), new FiletypeInput | ||
{ | ||
Id = 0, Name = "asd", Description = "asd", FileExtension = "asd" | ||
})); | ||
data.IsRight.Should().BeTrue(); | ||
data.IsLeft.Should().BeFalse(); | ||
data.IfRight(res => delete = new FiletypeInput { Id = res.Id }); | ||
|
||
Either<ErrorResult, FiletypeResult> result = await DeleteFiletypeScenario.ExecuteAsync( | ||
new DeleteFiletypeScenarioContext(Guid.NewGuid(), delete!)); | ||
|
||
result.IsLeft.Should().BeFalse(); | ||
result.IsRight.Should().BeTrue(); | ||
result.IfRight(r => { r.Id.Should().Be(0); }); | ||
} | ||
} |
63 changes: 63 additions & 0 deletions
63
DocumentDomain.Spec/Operations/Scenario/Filetype/EditFiletypeScenarioInputValidatorShould.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
namespace DocumentDomain.Spec.Operations.Scenario.Filetype; | ||
|
||
using System.Collections; | ||
using System.Diagnostics.CodeAnalysis; | ||
using EncyclopediaGalactica.BusinessLogic.Contracts; | ||
using EncyclopediaGalactica.DocumentDomain.Entity; | ||
using EncyclopediaGalactica.DocumentDomain.Operations.Scenarios.Filetype; | ||
using FluentAssertions; | ||
using FluentValidation.Results; | ||
|
||
public class EditFiletypeScenarioInputValidatorShould | ||
{ | ||
private EditFiletypeScenarioInputValidator _validator = new(); | ||
|
||
|
||
[Theory] | ||
[ClassData(typeof(EditFiletypeScenarioInputValidatorInvalidInputData))] | ||
public void ShowsInvalidResult_WhenInputIsInvalid(FiletypeInput filetypeInput) | ||
{ | ||
ValidationResult result = _validator.Validate(filetypeInput); | ||
result.IsValid.Should().BeFalse(); | ||
result.Errors.Should().NotBeEmpty(); | ||
} | ||
|
||
[Fact] | ||
public void ShowsValidResult_WhenInputIsValid() | ||
{ | ||
ValidationResult result = _validator.Validate(new FiletypeInput | ||
{ | ||
Id = 1, | ||
Name = "asd", | ||
Description = "asd", | ||
FileExtension = "asd" | ||
}); | ||
result.IsValid.Should().BeTrue(); | ||
result.Errors.Should().BeEmpty(); | ||
} | ||
} | ||
|
||
[ExcludeFromCodeCoverage] | ||
public class EditFiletypeScenarioInputValidatorInvalidInputData : IEnumerable<object[]> | ||
{ | ||
public IEnumerator<object[]> GetEnumerator() | ||
{ | ||
yield return new object[] { new FiletypeInput { Id = 0, Name = "asd", Description = "asd", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 1, Name = null, Description = "asd", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 1, Name = string.Empty, Description = "asd", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 1, Name = " ", Description = "asd", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 1, Name = " as ", Description = "asd", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 1, Name = "asd", Description = null, FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 1, Name = "asd", Description = string.Empty, FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 1, Name = "asd", Description = " ", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 1, Name = "asd", Description = " as ", FileExtension = "asd" } }; | ||
yield return new object[] { new FiletypeInput { Id = 1, Name = "asd", Description = "asd", FileExtension = null } }; | ||
yield return new object[] { new FiletypeInput { Id = 1, Name = "asd", Description = "asd", FileExtension = string.Empty } }; | ||
yield return new object[] { new FiletypeInput { Id = 1, Name = "asd", Description = "asd", FileExtension = " " } }; | ||
} | ||
|
||
IEnumerator IEnumerable.GetEnumerator() | ||
{ | ||
return GetEnumerator(); | ||
} | ||
} |
46 changes: 46 additions & 0 deletions
46
DocumentDomain.Spec/Operations/Scenario/Filetype/EditFiletypeScenarioShould.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
namespace DocumentDomain.Spec.Operations.Scenario.Filetype; | ||
|
||
using System.Diagnostics.CodeAnalysis; | ||
using EncyclopediaGalactica.BusinessLogic.Contracts; | ||
using EncyclopediaGalactica.DocumentDomain.Operations.Scenarios; | ||
using EncyclopediaGalactica.DocumentDomain.Operations.Scenarios.Filetype; | ||
using FluentAssertions; | ||
using LanguageExt; | ||
|
||
public class EditFiletypeScenarioShould : ScenarioBaseTest | ||
{ | ||
[Theory] | ||
[ClassData(typeof(EditFiletypeScenarioInputValidatorInvalidInputData))] | ||
public async Task ReturnErrorResult_WhenOperationFails(FiletypeInput input) | ||
{ | ||
Either<ErrorResult, FiletypeResult> result = await EditFiletypeScenario.ExecuteAsync( | ||
new EditFiletypeScenarioContext(Guid.NewGuid(), input)); | ||
|
||
result.IsRight.Should().BeFalse(); | ||
result.IsLeft.Should().BeTrue(); | ||
result.IfLeft(er => | ||
{ | ||
er.CorrelationId.Should().NotBeEmpty(); | ||
er.ErrorMessage.Should().NotBeEmpty(); | ||
}); | ||
} | ||
|
||
[Fact] | ||
public async Task ReturnErrorResult_WhenThereIsNoSuchEntity() | ||
{ | ||
Either<ErrorResult, FiletypeResult> result = await EditFiletypeScenario.ExecuteAsync( | ||
new EditFiletypeScenarioContext(Guid.NewGuid(), new FiletypeInput { Id = 1000 })); | ||
|
||
result.IsRight.Should().BeFalse(); | ||
result.IsLeft.Should().BeTrue(); | ||
result.IfLeft(er => | ||
{ | ||
er.CorrelationId.Should().NotBeEmpty(); | ||
er.ErrorMessage.Should().NotBeEmpty(); | ||
}); | ||
} | ||
|
||
public async Task ReturnFiletypeResult_WhenOperationIsSuccessful() | ||
{ | ||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
...ntDomain.Spec/Operations/Scenario/Filetype/GetFiletypeByIdScenarioInputValidatorShould.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
namespace DocumentDomain.Spec.Operations.Scenario.Filetype; | ||
|
||
using EncyclopediaGalactica.BusinessLogic.Contracts; | ||
using EncyclopediaGalactica.DocumentDomain.Operations.Scenarios.Filetype; | ||
using FluentAssertions; | ||
using FluentValidation.Results; | ||
|
||
public class GetFiletypeByIdScenarioInputValidatorShould | ||
{ | ||
private GetFiletypeByIdScenarioInputValidator validator = new(); | ||
|
||
[Fact] | ||
public void ReturnInvalidState_WhenInputIsInvalid() | ||
{ | ||
ValidationResult result = validator.Validate(new FiletypeInput { Id = 0 }); | ||
result.IsValid.Should().BeFalse(); | ||
result.Errors.Should().NotBeEmpty(); | ||
} | ||
|
||
[Fact] | ||
public void ReturnValidState_WhenInputIsValid() | ||
{ | ||
ValidationResult result = validator.Validate(new FiletypeInput { Id = 1 }); | ||
result.IsValid.Should().BeTrue(); | ||
result.Errors.Should().BeEmpty(); | ||
} | ||
} |
Oops, something went wrong.