Skip to content

Commit 11658b7

Browse files
committed
Fix tests
1 parent 6cc79d8 commit 11658b7

File tree

6 files changed

+48
-60
lines changed

6 files changed

+48
-60
lines changed

Diff for: Directory.Build.props

+6
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,10 @@
33
<Version>2.7.1</Version>
44
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
55
</PropertyGroup>
6+
7+
<ItemGroup>
8+
<InternalsVisibleTo Include="OpenAI.ChatGpt.UnitTests"/>
9+
<InternalsVisibleTo Include="OpenAI.ChatGpt.IntegrationTests"/>
10+
<InternalsVisibleTo Include="DynamicProxyGenAssembly2"/>
11+
</ItemGroup>
612
</Project>

Diff for: OpenAI.ChatGpt.Modules.Translator/ChatGPTTranslatorService.cs

+20-20
Original file line numberDiff line numberDiff line change
@@ -88,19 +88,19 @@ public async Task<string> TranslateText(
8888
rawResponseGetter,
8989
cancellationToken);
9090
return response;
91-
92-
string CreateTextTranslationPrompt(string sourceLanguage, string targetLanguage)
93-
{
94-
ArgumentNullException.ThrowIfNull(sourceLanguage);
95-
ArgumentNullException.ThrowIfNull(targetLanguage);
96-
return $"I want you to act as a translator from {sourceLanguage} to {targetLanguage}. " +
97-
"The user provides with a sentence and you translate it. " +
98-
"In the response write ONLY translated text." +
99-
(_extraPrompt is not null ? "\n" + _extraPrompt : "");
100-
}
10191
}
10292

103-
public async Task<TObject> TranslateObject<TObject>(
93+
internal virtual string CreateTextTranslationPrompt(string sourceLanguage, string targetLanguage)
94+
{
95+
ArgumentNullException.ThrowIfNull(sourceLanguage);
96+
ArgumentNullException.ThrowIfNull(targetLanguage);
97+
return $"I want you to act as a translator from {sourceLanguage} to {targetLanguage}. " +
98+
"The user provides with a sentence and you translate it. " +
99+
"In the response write ONLY translated text." +
100+
(_extraPrompt is not null ? "\n" + _extraPrompt : "");
101+
}
102+
103+
public virtual async Task<TObject> TranslateObject<TObject>(
104104
TObject objectToTranslate,
105105
string? sourceLanguage = null,
106106
string? targetLanguage = null,
@@ -144,14 +144,14 @@ public async Task<TObject> TranslateObject<TObject>(
144144
cancellationToken
145145
);
146146
return response;
147-
148-
string CreateObjectTranslationPrompt(string sourceLanguage, string targetLanguage)
149-
{
150-
ArgumentNullException.ThrowIfNull(sourceLanguage);
151-
ArgumentNullException.ThrowIfNull(targetLanguage);
152-
return $"I want you to act as a translator from {sourceLanguage} to {targetLanguage}. " +
153-
"The user provides you with an object in json. You translate only the text fields that need to be translated. " +
154-
(_extraPrompt is not null ? "\n" + _extraPrompt : "");
155-
}
147+
}
148+
149+
internal string CreateObjectTranslationPrompt(string sourceLanguage, string targetLanguage)
150+
{
151+
ArgumentNullException.ThrowIfNull(sourceLanguage);
152+
ArgumentNullException.ThrowIfNull(targetLanguage);
153+
return $"I want you to act as a translator from {sourceLanguage} to {targetLanguage}. " +
154+
"The user provides you with an object in json. You translate only the text fields that need to be translated. " +
155+
(_extraPrompt is not null ? "\n" + _extraPrompt : "");
156156
}
157157
}

Diff for: OpenAI_DotNet.sln

-14
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChatGpt.TelegramBotExample"
2727
EndProject
2828
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenAI.ChatGpt.Modules.Translator", "OpenAI.ChatGpt.Modules.Translator\OpenAI.ChatGpt.Modules.Translator.csproj", "{E155D31C-0061-40A3-AD54-93B5DD08836B}"
2929
EndProject
30-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenAI.ChatGpt.Modules.Translator.UnitTests", "tests\OpenAI.ChatGpt.Modules.Translator.UnitTests\OpenAI.ChatGpt.Modules.Translator.UnitTests.csproj", "{49F18714-F5F9-4FFC-A674-39CE166466A6}"
31-
EndProject
32-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenAI.ChatGpt.Modules.Translator.IntegrationTests", "tests\OpenAI.ChatGpt.Modules.Translator.IntegrationTests\OpenAI.ChatGpt.Modules.Translator.IntegrationTests.csproj", "{600195A2-6E93-46AF-87A7-EA2E48E5AE24}"
33-
EndProject
3430
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenAI.Tests.Shared", "tests\OpenAI.Tests.Shared\OpenAI.Tests.Shared.csproj", "{E303F270-6091-47DE-9260-DAD6122005A7}"
3531
EndProject
3632
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenAI.ChatGpt.Modules.StructuredResponse", "OpenAI.ChatGpt.Modules.StructuredResponse\OpenAI.ChatGpt.Modules.StructuredResponse.csproj", "{F2968A66-5672-439E-823E-D35100CA067D}"
@@ -81,14 +77,6 @@ Global
8177
{E155D31C-0061-40A3-AD54-93B5DD08836B}.Debug|Any CPU.Build.0 = Debug|Any CPU
8278
{E155D31C-0061-40A3-AD54-93B5DD08836B}.Release|Any CPU.ActiveCfg = Release|Any CPU
8379
{E155D31C-0061-40A3-AD54-93B5DD08836B}.Release|Any CPU.Build.0 = Release|Any CPU
84-
{49F18714-F5F9-4FFC-A674-39CE166466A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
85-
{49F18714-F5F9-4FFC-A674-39CE166466A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
86-
{49F18714-F5F9-4FFC-A674-39CE166466A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
87-
{49F18714-F5F9-4FFC-A674-39CE166466A6}.Release|Any CPU.Build.0 = Release|Any CPU
88-
{600195A2-6E93-46AF-87A7-EA2E48E5AE24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
89-
{600195A2-6E93-46AF-87A7-EA2E48E5AE24}.Debug|Any CPU.Build.0 = Debug|Any CPU
90-
{600195A2-6E93-46AF-87A7-EA2E48E5AE24}.Release|Any CPU.ActiveCfg = Release|Any CPU
91-
{600195A2-6E93-46AF-87A7-EA2E48E5AE24}.Release|Any CPU.Build.0 = Release|Any CPU
9280
{E303F270-6091-47DE-9260-DAD6122005A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
9381
{E303F270-6091-47DE-9260-DAD6122005A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
9482
{E303F270-6091-47DE-9260-DAD6122005A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -108,8 +96,6 @@ Global
10896
{983A565C-5AE2-4F76-8B7B-7C5C051072C7} = {926D63B6-9F6A-45A1-B5B7-5F36352C23AB}
10997
{88213D5C-AADC-4F03-ACA3-7ADDCCE87DF4} = {80DB142C-5A1B-431C-BD85-19C83C6FC0A3}
11098
{8C86E60A-77C2-4204-AF36-F4B845474016} = {80DB142C-5A1B-431C-BD85-19C83C6FC0A3}
111-
{49F18714-F5F9-4FFC-A674-39CE166466A6} = {926D63B6-9F6A-45A1-B5B7-5F36352C23AB}
112-
{600195A2-6E93-46AF-87A7-EA2E48E5AE24} = {926D63B6-9F6A-45A1-B5B7-5F36352C23AB}
11399
{E303F270-6091-47DE-9260-DAD6122005A7} = {926D63B6-9F6A-45A1-B5B7-5F36352C23AB}
114100
EndGlobalSection
115101
EndGlobal

Diff for: tests/OpenAI.ChatGpt.Modules.Translator.IntegrationTests/ChatGptTranslatorServiceTests.cs renamed to tests/OpenAI.ChatGpt.IntegrationTests/ChatGptTranslatorServiceTests.cs

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
using FluentAssertions;
2-
using OpenAI.Tests.Shared;
1+
using OpenAI.ChatGpt.Modules.Translator;
32

4-
namespace OpenAI.ChatGpt.Modules.Translator.IntegrationTests;
3+
namespace OpenAI.ChatGpt.IntegrationTests;
54

65
public class ChatGptTranslatorServiceTests
76
{

Diff for: tests/OpenAI.ChatGpt.Modules.Translator.UnitTests/ChatGptTranslatorServiceTests.cs renamed to tests/OpenAI.ChatGpt.UnitTests/ChatGptTranslatorServiceTests.cs

+19-23
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
using FluentAssertions;
21
using Moq;
3-
using OpenAI.ChatGpt.Models.ChatCompletion;
4-
using OpenAI.ChatGpt.Models.ChatCompletion.Messaging;
2+
using OpenAI.ChatGpt.Modules.Translator;
53

6-
namespace OpenAI.ChatGpt.Modules.Translator.UnitTests;
4+
namespace OpenAI.ChatGpt.UnitTests;
75

86
public class ChatGptTranslatorServiceTests
97
{
@@ -46,31 +44,29 @@ public async Task Translate_without_source_and_target_languages_uses_default_lan
4644
It.IsAny<Action<ChatCompletionRequest>>(),
4745
It.IsAny<Action<ChatCompletionResponse>>(),
4846
It.IsAny<CancellationToken>()))
49-
.ReturnsAsync("Привет, мир!")
47+
.ReturnsAsync("Привет, мир!");
48+
49+
var translatorServiceMock = new Mock<ChatGPTTranslatorService>(
50+
(IOpenAiClient) clientMock.Object,
51+
expectedSourceLanguage,
52+
expectedTargetLanguage,
53+
null);
54+
55+
translatorServiceMock.Setup(service => service.CreateTextTranslationPrompt(
56+
It.IsAny<string>(), It.IsAny<string>()))
57+
.Returns($"{expectedSourceLanguage} => {expectedTargetLanguage}")
5058
.Verifiable();
51-
var translatorService = new ChatGPTTranslatorService(
52-
clientMock.Object,
53-
defaultSourceLanguage: expectedSourceLanguage,
54-
defaultTargetLanguage: expectedTargetLanguage);
59+
60+
var translatorService = translatorServiceMock.Object;
5561

5662
// Act
57-
var translatedText = await translatorService.TranslateText(textToTranslate);
63+
_ = await translatorService.TranslateText(textToTranslate);
5864

5965
// Assert
60-
clientMock.Verify(client => client.GetChatCompletions(
61-
It.Is<UserOrSystemMessage>(dialog =>
62-
dialog.GetMessages().Any(
63-
message => message.Role == "system" &&
64-
message.Content.Contains($"I want you to act as a translator from {expectedSourceLanguage} to {expectedTargetLanguage}"))),
65-
It.IsAny<int>(),
66-
It.IsAny<string>(),
67-
It.IsAny<float>(),
68-
It.IsAny<string>(),
69-
It.IsAny<Action<ChatCompletionRequest>>(),
70-
It.IsAny<Action<ChatCompletionResponse>>(),
71-
It.IsAny<CancellationToken>()),
66+
translatorServiceMock.Verify(service =>
67+
service.CreateTextTranslationPrompt(
68+
expectedSourceLanguage, expectedTargetLanguage),
7269
Times.Once);
73-
translatedText.Should().Be("Привет, мир!");
7470
}
7571

7672

Diff for: tests/OpenAI.ChatGpt.UnitTests/OpenAI.ChatGpt.UnitTests.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.5" />
1616
<PackageReference Include="Microsoft.Extensions.Configuration" Version="7.0.0" />
1717
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
18+
<PackageReference Include="Moq" Version="4.18.4" />
1819
<PackageReference Include="xunit" Version="2.4.2" />
1920
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
2021
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

0 commit comments

Comments
 (0)