Skip to content
This repository was archived by the owner on Oct 14, 2025. It is now read-only.

Commit 0ac2dd2

Browse files
committed
refactor(ReversoAPI.Web) change file structure to DDD
1 parent 54006c5 commit 0ac2dd2

File tree

126 files changed

+894
-963
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+894
-963
lines changed

ReversoAPI.Web.Examples/Program.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using ReversoAPI.Web.Clients;
2-
using ReversoAPI.Web.Domain.Generic.ValueObjects;
1+
using ReversoAPI.Web.Shared.Domain.ValueObjects;
32

43
namespace ReversoAPI.Web.Examples
54
{
@@ -23,7 +22,7 @@ static async Task Main(string[] args)
2322

2423
await PrintSpellingsAsync(text, source);
2524

26-
await DownloadPronunciationAsync(text, source, Directory.GetCurrentDirectory());
25+
await DownloadPronunciationAsync(text, source, Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), $"{source}.mp3"));
2726
}
2827

2928
private static async Task PrintSpellingsAsync(string text, Language language)

ReversoAPI.Web.Tests/Clients/SpellingClientTests.cs

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,31 @@
1-
using FluentAssertions;
2-
using Moq;
3-
using ReversoAPI.Web.Clients;
4-
using ReversoAPI.Web.Domain.Generic.ValueObjects;
5-
using ReversoAPI.Web.DTOs.SpellingResponseData;
6-
using ReversoAPI.Web.Entities;
7-
using ReversoAPI.Web.Http;
8-
using ReversoAPI.Web.Http.Interfaces;
9-
using ReversoAPI.Web.Values;
1+
using Moq;
2+
using Xunit;
3+
using FluentAssertions;
104
using System;
11-
using System.Collections;
12-
using System.Collections.Generic;
135
using System.IO;
14-
using System.Text;
156
using System.Threading;
167
using System.Threading.Tasks;
17-
using Xunit;
8+
using System.Collections.Generic;
9+
using ReversoAPI.Web.GrammarCheckFeature.Domain.Entities;
10+
using ReversoAPI.Web.GrammarCheckFeature.Domain.ValueObjects;
11+
using ReversoAPI.Web.GrammarCheckFeature.Application.DTOs;
12+
using ReversoAPI.Web.GrammarCheckFeature.Application.Interfaces.Services;
13+
using ReversoAPI.Web.GrammarCheckFeature.Application.Services;
14+
using ReversoAPI.Web.Shared.Domain.ValueObjects;
15+
using ReversoAPI.Web.Shared.Infrastructure.Http;
16+
using ReversoAPI.Web.Shared.Infrastructure.Http.Interfaces;
1817

1918
namespace ReversoAPI.Web.Tests.Clients
2019
{
2120
public class SpellingClientTests
2221
{
2322
private readonly Mock<IAPIConnector> _apiConnector;
24-
private readonly SpellingClient _client;
23+
private readonly ISpellingService _client;
2524

2625
public SpellingClientTests()
2726
{
2827
_apiConnector = new Mock<IAPIConnector>();
29-
_client = new SpellingClient(_apiConnector.Object);
28+
_client = new SpellingService(_apiConnector.Object);
3029
}
3130

3231
[Theory]
@@ -65,14 +64,14 @@ public static IEnumerable<object[]> SpellingDataForTest()
6564
Language = Language.English,
6665
Correction = new []
6766
{
68-
new Correction("Maney", "maney")
69-
{
70-
StartIndex = 0,
71-
EndIndex = 4,
72-
ShortDescription = "Spelling Mistake",
73-
LongDescription = "A proper or common noun is not capitalized",
74-
Suggestions = new[] { "Maney", "money", "many" }
75-
},
67+
new Correction(
68+
"Maney",
69+
"maney",
70+
startIndex: 0,
71+
endIndex: 4,
72+
"Spelling Mistake",
73+
"A proper or common noun is not capitalized",
74+
suggestions: new[] { "Maney", "money", "many" })
7675
}
7776
}
7877
};

ReversoAPI.Web.Tests/Clients/TranslationClientTests.cs

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,31 @@
1-
using FluentAssertions;
2-
using Moq;
3-
using ReversoAPI.Web.Clients;
4-
using ReversoAPI.Web.Domain.Generic.ValueObjects;
5-
using ReversoAPI.Web.DTOs.TranslationObjects;
6-
using ReversoAPI.Web.Entities;
7-
using ReversoAPI.Web.Http;
8-
using ReversoAPI.Web.Http.Interfaces;
9-
using ReversoAPI.Web.Values;
1+
using Moq;
2+
using Xunit;
3+
using FluentAssertions;
104
using System;
11-
using System.Collections.Generic;
125
using System.IO;
136
using System.Threading;
147
using System.Threading.Tasks;
15-
using Xunit;
8+
using System.Collections.Generic;
9+
using ReversoAPI.Web.TranslationFeature.Application.DTOs;
10+
using ReversoAPI.Web.TranslationFeature.Application.Interfaces.Services;
11+
using ReversoAPI.Web.TranslationFeature.Application.Services;
12+
using ReversoAPI.Web.TranslationFeature.Domain.Entities;
13+
using ReversoAPI.Web.TranslationFeature.Domain.ValueObjects;
14+
using ReversoAPI.Web.Shared.Domain.ValueObjects;
15+
using ReversoAPI.Web.Shared.Infrastructure.Http;
16+
using ReversoAPI.Web.Shared.Infrastructure.Http.Interfaces;
1617

1718
namespace ReversoAPI.Web.Tests.Clients
1819
{
1920
public class TranslationClientTests
2021
{
2122
private readonly Mock<IAPIConnector> _apiConnector;
22-
private readonly TranslationClient _client;
23+
private readonly ITranslationService _client;
2324

2425
public TranslationClientTests()
2526
{
2627
_apiConnector = new Mock<IAPIConnector>();
27-
_client = new TranslationClient(_apiConnector.Object);
28+
_client = new TranslationService(_apiConnector.Object);
2829
}
2930

3031
[Theory]
@@ -44,19 +45,21 @@ public async Task GetFromOneWordAsync_Success(string text, Language source, Lang
4445
expectedResult.Should().BeEquivalentTo(result);
4546
}
4647

47-
[Fact]
48-
public async Task GetFromOneWordAsync_Length_Exceeded()
49-
{
50-
// Arrange
51-
var text = new string('x', 2001);
48+
//TO DO: Move it into separate service tests
5249

53-
// Act
54-
var act = async () => await _client.GetAsync(text, It.IsAny<Language>(), It.IsAny<Language>());
50+
//[Fact]
51+
//public async Task GetFromOneWordAsync_Length_Exceeded()
52+
//{
53+
// // Arrange
54+
// var text = new string('x', 2001);
5555

56-
// Assert
57-
var exception = await Assert.ThrowsAsync<ArgumentException>(act);
58-
Assert.Equal("The text provided exceeds the limit of 2000 symbols. (Parameter 'text')", exception.Message);
59-
}
56+
// // Act
57+
// var act = async () => await _client.GetAsync(text, It.IsAny<Language>(), It.IsAny<Language>());
58+
59+
// // Assert
60+
// var exception = await Assert.ThrowsAsync<ArgumentException>(act);
61+
// Assert.Equal("The text provided exceeds the limit of 2000 symbols. (Parameter 'text')", exception.Message);
62+
//}
6063

6164
#region TestData
6265

ReversoAPI.Web.Tests/Extensions/ParseExtesionsTests.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using Xunit;
2-
using ReversoAPI.Web.Extensions;
3-
using ReversoAPI.Web.Values;
4-
using ReversoAPI.Web.Domain.Generic.ValueObjects;
2+
using ReversoAPI.Web.Shared.Domain.ValueObjects;
3+
using ReversoAPI.Web.Shared.Domain.Extensions;
54

65
namespace ReversoAPI.Web.Tests.Extensions
76
{

ReversoAPI.Web.Tests/Parsers/ConjugationResponseParserTest.cs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
using FluentAssertions;
2-
using ReversoAPI.Web.Domain.Generic.ValueObjects;
3-
using ReversoAPI.Web.Entities;
4-
using ReversoAPI.Web.Tools.Parsers;
5-
using ReversoAPI.Web.Values;
6-
using System.Collections.Generic;
1+
using Xunit;
2+
using FluentAssertions;
73
using System.IO;
84
using System.Text;
9-
using Xunit;
5+
using System.Collections.Generic;
6+
using ReversoAPI.Web.ConjugationFeature.Domain.Core.Entities;
7+
using ReversoAPI.Web.ConjugationFeature.Domain.Core.Interfaces.ValueObjects;
8+
using ReversoAPI.Web.ConjugationFeature.Domain.Core.Services;
9+
using ReversoAPI.Web.ConjugationFeature.Domain.Core.ValueObjects;
10+
using ReversoAPI.Web.Shared.Domain.ValueObjects;
1011

1112
namespace ReversoAPI.Web.Tests.Parsers
1213
{
@@ -17,7 +18,7 @@ public class ConjugationResponseParserTest
1718
public void Invoke_Test(ConjugationData expectedResult, Stream html)
1819
{
1920
// Arrange
20-
var parser = new ConjugationResponseParser();
21+
var parser = new ConjugationParser();
2122

2223
// Act
2324
var result = parser.Invoke(html);
@@ -37,7 +38,7 @@ public static IEnumerable<object[]> HtmlResponsesForTest()
3738
{
3839
Text = "run",
3940
Language = Language.English,
40-
Conjugations = new Dictionary<string, IEnumerable<Conjugation>>
41+
Conjugations = new Dictionary<string, IEnumerable<IConjugation>>
4142
{
4243
{ "Indicative Present", new[]
4344
{
@@ -77,7 +78,7 @@ public static IEnumerable<object[]> HtmlResponsesForTest()
7778
{
7879
Text = "бежать",
7980
Language = Language.Russian,
80-
Conjugations = new Dictionary<string, IEnumerable<Conjugation>>
81+
Conjugations = new Dictionary<string, IEnumerable<IConjugation>>
8182
{
8283
{ "настоящее", new[]
8384
{
@@ -142,7 +143,7 @@ public static IEnumerable<object[]> HtmlResponsesForTest()
142143
{
143144
Text = "cair",
144145
Language = Language.Portuguese,
145-
Conjugations = new Dictionary<string, IEnumerable<Conjugation>>
146+
Conjugations = new Dictionary<string, IEnumerable<IConjugation>>
146147
{
147148
{ "Indicativo Presente", new[]
148149
{

ReversoAPI.Web.Tests/Parsers/ContextResponseParserTest.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
using System.IO;
2-
using System.Text;
3-
using ReversoAPI.Web.Values;
4-
using ReversoAPI.Web.Tools.Parsers;
5-
using Xunit;
1+
using Xunit;
62
using FluentAssertions;
3+
using System.IO;
4+
using System.Text;
75
using System.Collections.Generic;
8-
using ReversoAPI.Web.Domain.Core.Context.Enities;
9-
using ReversoAPI.Web.Domain.Generic.ValueObjects;
6+
using ReversoAPI.Web.ContextFeature.Domain.Core.Enities;
7+
using ReversoAPI.Web.ContextFeature.Domain.Core.Services;
8+
using ReversoAPI.Web.ContextFeature.Domain.Core.ValueObjects;
9+
using ReversoAPI.Web.Shared.Domain.ValueObjects;
1010

1111
namespace ReversoAPI.Web.Tests.Parsers
1212
{
@@ -17,7 +17,7 @@ public class ContextResponseParserTest
1717
public void Invoke_Test(ContextData expectedResult, Stream html)
1818
{
1919
// Arrange
20-
var parser = new ContextResponseParser();
20+
var parser = new ContextParser();
2121

2222
// Act
2323
var result = parser.Invoke(html);

ReversoAPI.Web.Tests/Parsers/SynonymsResponseParserTest.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
using FluentAssertions;
2-
using ReversoAPI.Web.Domain.Generic.ValueObjects;
3-
using ReversoAPI.Web.Entities;
4-
using ReversoAPI.Web.Tools.Parsers;
5-
using ReversoAPI.Web.Values;
6-
using System.Collections.Generic;
1+
using Xunit;
2+
using FluentAssertions;
73
using System.IO;
84
using System.Text;
9-
using Xunit;
5+
using System.Collections.Generic;
6+
using ReversoAPI.Web.SynonymsFeature.Domain.Core.Entities;
7+
using ReversoAPI.Web.SynonymsFeature.Domain.Core.Services;
8+
using ReversoAPI.Web.SynonymsFeature.Domain.Core.ValueObjects;
9+
using ReversoAPI.Web.Shared.Domain.ValueObjects;
1010

1111
namespace ReversoAPI.Web.Tests.Parsers
1212
{
@@ -17,7 +17,7 @@ public class SynonymsResponseParserTest
1717
public void Invoke_Test(SynonymsData expectedResult, Stream html)
1818
{
1919
// Arrange
20-
var parser = new SynonymsResponseParser();
20+
var parser = new SynonymsParser();
2121

2222
// Act
2323
var result = parser.Invoke(html);

ReversoAPI.Web.Tests/ReversoAPI.Web.Tests.csproj

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,4 @@
4242
</EmbeddedResource>
4343
</ItemGroup>
4444

45-
<ItemGroup>
46-
<Folder Include="Http\" />
47-
</ItemGroup>
48-
4945
</Project>

ReversoAPI.Web/Conjugation/App/ConjugationClient.cs

Lines changed: 0 additions & 47 deletions
This file was deleted.

ReversoAPI.Web/Conjugation/App/Interfaces/IConjugationClient.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)