-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathConnectorCosmosDbOptionTest.cs
More file actions
53 lines (46 loc) · 2.2 KB
/
Copy pathConnectorCosmosDbOptionTest.cs
File metadata and controls
53 lines (46 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System.Collections.Generic;
using Steeltoe.NetCoreTool.Template.WebApi.Test.Models;
using Xunit.Abstractions;
namespace Steeltoe.NetCoreTool.Template.WebApi.Test;
public class ConnectorCosmosDbOptionTest(ITestOutputHelper logger)
: ProjectOptionTest("connector-cosmosdb", "Add a connector for CosmosDB databases.", logger)
{
protected override void AssertPackageReferencesHook(ProjectOptions options, List<(string, string)> packages)
{
packages.Add(("Microsoft.Azure.Cosmos", "3.57.*"));
packages.Add(("Newtonsoft.Json", "13.0.*"));
packages.Add((GetPackageName(options.SteeltoeVersion), "$(SteeltoeVersion)"));
}
private static string GetPackageName(SteeltoeVersion steeltoeVersion)
{
return steeltoeVersion == SteeltoeVersion.Steeltoe32 ? "Steeltoe.Connector.ConnectorCore" : "Steeltoe.Connectors";
}
protected override void AssertProgramSnippetsHook(ProjectOptions options, List<string> snippets)
{
snippets.Add($"using {GetNamespaceImport(options.SteeltoeVersion)};");
snippets.Add(GetSetupComment(options.SteeltoeVersion));
snippets.AddRange(GetSetupCodeFragments(options.SteeltoeVersion));
}
private static string GetNamespaceImport(SteeltoeVersion steeltoeVersion)
{
return steeltoeVersion == SteeltoeVersion.Steeltoe32 ? "Steeltoe.Connector.CosmosDb" : "Steeltoe.Connectors.CosmosDb";
}
private static string GetSetupComment(SteeltoeVersion steeltoeVersion)
{
return steeltoeVersion == SteeltoeVersion.Steeltoe32
? "// TODO: Add your connection string at configuration key: CosmosDb:Client:ConnectionString"
: "// TODO: Add your connection string at configuration key: Steeltoe:Client:CosmosDb:Default:ConnectionString";
}
private static IEnumerable<string> GetSetupCodeFragments(SteeltoeVersion steeltoeVersion)
{
if (steeltoeVersion == SteeltoeVersion.Steeltoe32)
{
yield return "var manager = new ConnectionStringManager(builder.Configuration);";
yield return "var cosmosInfo = manager.Get<CosmosDbConnectionInfo>();";
}
else
{
yield return "builder.AddCosmosDb();";
}
}
}