Skip to content

Commit 68c588b

Browse files
Changes the connection strings to retrieve from env variable and after use localdb if no env variable exists.
1 parent f53f4af commit 68c588b

17 files changed

Lines changed: 90 additions & 17 deletions

PosInformatique.Testing.Databases.sln

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testing.Databases.SqlServer
6565
EndProject
6666
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Testing.Databases.SqlServer.Shared", "src\Testing.Databases.SqlServer.Shared\Testing.Databases.SqlServer.Shared.shproj", "{B9F8C52D-4652-4FC6-A695-DC2F61BA05C9}"
6767
EndProject
68+
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Testing.Databases.SqlServer.Shared.Tests", "tests\Testing.Databases.SqlServer.Shared.Tests\Testing.Databases.SqlServer.Shared.Tests.shproj", "{1554EA1B-37C8-4F10-9770-BF4DD8A7E80C}"
69+
EndProject
6870
Global
6971
GlobalSection(SolutionConfigurationPlatforms) = preSolution
7072
Debug|Any CPU = Debug|Any CPU
@@ -136,9 +138,14 @@ Global
136138
SolutionGuid = {FAC64573-D665-48A8-AC75-7B82B692EC9E}
137139
EndGlobalSection
138140
GlobalSection(SharedMSBuildProjectFiles) = preSolution
141+
tests\Testing.Databases.SqlServer.Shared.Tests\Testing.Databases.SqlServer.Shared.Tests.projitems*{04a7ae8f-fe77-435b-9250-600388bb8065}*SharedItemsImports = 5
142+
tests\Testing.Databases.SqlServer.Shared.Tests\Testing.Databases.SqlServer.Shared.Tests.projitems*{1554ea1b-37c8-4f10-9770-bf4dd8a7e80c}*SharedItemsImports = 13
139143
src\Testing.Databases.SqlServer.Shared\Testing.Databases.SqlServer.Shared.projitems*{157ddf0d-9410-4646-94b9-9cee4c140f5e}*SharedItemsImports = 5
144+
tests\Testing.Databases.SqlServer.Shared.Tests\Testing.Databases.SqlServer.Shared.Tests.projitems*{6751a585-1bb0-49a1-bf68-d7fbd3392df6}*SharedItemsImports = 5
140145
src\Testing.Databases.SqlServer.Shared\Testing.Databases.SqlServer.Shared.projitems*{8be60460-eba5-43de-b85d-c756e2988dc8}*SharedItemsImports = 5
141146
src\Testing.Databases.SqlServer.Shared\Testing.Databases.SqlServer.Shared.projitems*{b9f8c52d-4652-4fc6-a695-dc2f61ba05c9}*SharedItemsImports = 13
147+
tests\Testing.Databases.SqlServer.Shared.Tests\Testing.Databases.SqlServer.Shared.Tests.projitems*{c87e8f0d-d96d-4d77-9713-5564dc2e3597}*SharedItemsImports = 5
142148
src\Testing.Databases.SqlServer.Shared\Testing.Databases.SqlServer.Shared.projitems*{d3004122-ccdd-4ead-bd9e-da6dff470943}*SharedItemsImports = 5
149+
tests\Testing.Databases.SqlServer.Shared.Tests\Testing.Databases.SqlServer.Shared.Tests.projitems*{f8e025d7-4e2f-437a-abfa-c43a1368e15a}*SharedItemsImports = 5
143150
EndGlobalSection
144151
EndGlobal

tests/Testing.Databases.SqlServer.Dac.Tests/SqlServerDacExtensionsTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace PosInformatique.Testing.Databases.SqlServer.Tests
99
[Collection("PosInformatique.Testing.Databases.SqlServer.Tests")]
1010
public class SqlServerDacExtensionsTest
1111
{
12-
private const string ConnectionString = $"Data Source=(localDB)\\posinfo-tests; Integrated Security=True";
12+
private static readonly string ConnectionString = ConnectionStrings.Get();
1313

1414
[Theory]
1515
[InlineData(false)]

tests/Testing.Databases.SqlServer.Dac.Tests/SqlServerDatabaseInitializerTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace PosInformatique.Testing.Databases.SqlServer.Tests
99
[Collection("PosInformatique.Testing.Databases.SqlServer.Tests")]
1010
public class SqlServerDatabaseInitializerTest : IClassFixture<SqlServerDatabaseInitializer>
1111
{
12-
private const string ConnectionString = $"Data Source=(localDB)\\posinfo-tests; Initial Catalog={nameof(SqlServerDatabaseInitializerTest)}; Integrated Security=True";
12+
private static readonly string ConnectionString = ConnectionStrings.Get(nameof(SqlServerDatabaseInitializerTest));
1313

1414
private readonly SqlServerDatabase database;
1515

tests/Testing.Databases.SqlServer.Dac.Tests/Testing.Databases.SqlServer.Dac.Tests.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,12 @@
2727
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2828
</PackageReference>
2929
</ItemGroup>
30+
3031
<ItemGroup>
3132
<ProjectReference Include="..\..\src\Testing.Databases.SqlServer.Dac\Testing.Databases.SqlServer.Dac.csproj" />
3233
<ProjectReference Include="..\Testing.Databases.SqlServer.Tests.DacPac\Testing.Databases.SqlServer.Tests.DacPac.sqlproj" />
3334
</ItemGroup>
35+
36+
<Import Project="..\Testing.Databases.SqlServer.Shared.Tests\Testing.Databases.SqlServer.Shared.Tests.projitems" Label="Shared" />
3437

3538
</Project>

tests/Testing.Databases.SqlServer.EntityFramework.Tests/EntityFrameworkDatabaseInitializerExtensionsTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace PosInformatique.Testing.Databases.SqlServer.Tests
1111
[Collection("PosInformatique.Testing.Databases.SqlServer.Tests")]
1212
public class EntityFrameworkDatabaseInitializerExtensionsTest : IClassFixture<SqlServerDatabaseInitializer>
1313
{
14-
private const string ConnectionString = $"Data Source=(localDB)\\posinfo-tests; Initial Catalog={nameof(EntityFrameworkDatabaseInitializerExtensionsTest)}; Integrated Security=True";
14+
private static readonly string ConnectionString = ConnectionStrings.Get(nameof(EntityFrameworkDatabaseInitializerExtensionsTest));
1515

1616
private readonly SqlServerDatabase database;
1717

tests/Testing.Databases.SqlServer.EntityFramework.Tests/EntityFrameworkSqlServerExtensionsTest.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace PosInformatique.Testing.Databases.SqlServer.Tests
1111
[Collection("PosInformatique.Testing.Databases.SqlServer.Tests")]
1212
public class EntityFrameworkSqlServerExtensionsTest
1313
{
14-
private const string ConnectionString = $"Data Source=(localDB)\\posinfo-tests; Integrated Security=True";
14+
private static readonly string ConnectionString = ConnectionStrings.Get();
1515

1616
[Fact]
1717
public async Task Create_WithNoExistingDatabase()
@@ -26,7 +26,7 @@ public async Task Create_WithNoExistingDatabase()
2626

2727
var database = server.CreateDatabase(nameof(EntityFrameworkSqlServerExtensionsTest), dbContext);
2828

29-
database.ConnectionString.Should().Be("Data Source=(localDB)\\posinfo-tests;Initial Catalog=EntityFrameworkSqlServerExtensionsTest;Integrated Security=True");
29+
database.ConnectionString.Should().Be(ConnectionStrings.Get("EntityFrameworkSqlServerExtensionsTest"));
3030

3131
var tables = await database.GetTablesAsync();
3232

@@ -54,7 +54,7 @@ public async Task Create_WithAlreadyExistingDatabase()
5454

5555
var database = server.CreateDatabase(nameof(EntityFrameworkSqlServerExtensionsTest), dbContext);
5656

57-
database.ConnectionString.Should().Be("Data Source=(localDB)\\posinfo-tests;Initial Catalog=EntityFrameworkSqlServerExtensionsTest;Integrated Security=True");
57+
database.ConnectionString.Should().Be(ConnectionStrings.Get("EntityFrameworkSqlServerExtensionsTest"));
5858

5959
var tables = await database.GetTablesAsync();
6060

@@ -80,7 +80,7 @@ public async Task CreateAsync_WithNoExistingDatabase()
8080

8181
var database = await server.CreateDatabaseAsync(nameof(EntityFrameworkSqlServerExtensionsTest), dbContext);
8282

83-
database.ConnectionString.Should().Be("Data Source=(localDB)\\posinfo-tests;Initial Catalog=EntityFrameworkSqlServerExtensionsTest;Integrated Security=True");
83+
database.ConnectionString.Should().Be(ConnectionStrings.Get("EntityFrameworkSqlServerExtensionsTest"));
8484

8585
var tables = await database.GetTablesAsync();
8686

@@ -108,7 +108,7 @@ public async Task CreateAsync_WithAlreadyExistingDatabase()
108108

109109
var database = await server.CreateDatabaseAsync(nameof(EntityFrameworkSqlServerExtensionsTest), dbContext);
110110

111-
database.ConnectionString.Should().Be("Data Source=(localDB)\\posinfo-tests;Initial Catalog=EntityFrameworkSqlServerExtensionsTest;Integrated Security=True");
111+
database.ConnectionString.Should().Be(ConnectionStrings.Get("EntityFrameworkSqlServerExtensionsTest"));
112112

113113
var tables = await database.GetTablesAsync();
114114

tests/Testing.Databases.SqlServer.EntityFramework.Tests/Testing.Databases.SqlServer.EntityFramework.Tests.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@
2222
<ProjectReference Include="..\..\src\Testing.Databases.SqlServer.EntityFramework\Testing.Databases.SqlServer.EntityFramework.csproj" />
2323
</ItemGroup>
2424

25+
<Import Project="..\Testing.Databases.SqlServer.Shared.Tests\Testing.Databases.SqlServer.Shared.Tests.projitems" Label="Shared" />
26+
2527
</Project>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
//-----------------------------------------------------------------------
2+
// <copyright file="ConnectionStrings.cs" company="P.O.S Informatique">
3+
// Copyright (c) P.O.S Informatique. All rights reserved.
4+
// </copyright>
5+
//-----------------------------------------------------------------------
6+
7+
namespace PosInformatique.Testing.Databases.SqlServer
8+
{
9+
using Microsoft.Data.SqlClient;
10+
11+
public static class ConnectionStrings
12+
{
13+
public static string Get(string databaseName = "master")
14+
{
15+
var connectionString = Environment.GetEnvironmentVariable("SQL_SERVER_UNIT_TESTS_CONNECTION_STRING");
16+
17+
if (connectionString is null)
18+
{
19+
connectionString = $"Data Source=(localDB)\\posinfo-tests; Integrated Security=True";
20+
}
21+
22+
var connectionStringBuilder = new SqlConnectionStringBuilder(connectionString)
23+
{
24+
InitialCatalog = databaseName,
25+
};
26+
27+
return connectionStringBuilder.ToString();
28+
}
29+
}
30+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup>
4+
<MSBuildAllProjects Condition="'$(MSBuildVersion)' == '' Or '$(MSBuildVersion)' &lt; '16.0'">$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
5+
<HasSharedItems>true</HasSharedItems>
6+
<SharedGUID>1554ea1b-37c8-4f10-9770-bf4dd8a7e80c</SharedGUID>
7+
</PropertyGroup>
8+
<PropertyGroup Label="Configuration">
9+
<Import_RootNamespace>Testing.Databases.SqlServer.Shared.Tests</Import_RootNamespace>
10+
</PropertyGroup>
11+
<ItemGroup>
12+
<Compile Include="$(MSBuildThisFileDirectory)ConnectionStrings.cs" />
13+
</ItemGroup>
14+
</Project>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup Label="Globals">
4+
<ProjectGuid>1554ea1b-37c8-4f10-9770-bf4dd8a7e80c</ProjectGuid>
5+
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
6+
</PropertyGroup>
7+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
8+
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
9+
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
10+
<PropertyGroup />
11+
<Import Project="Testing.Databases.SqlServer.Shared.Tests.projitems" Label="Shared" />
12+
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
13+
</Project>

0 commit comments

Comments
 (0)