Skip to content

Commit

Permalink
1.0.0-beta-sun-build70 Version:
Browse files Browse the repository at this point in the history
      Core package update

      Fix issue 31: #31
      Fix issue 32: #32
      Fix issue 33: #33
      Fix issue 34: #34
      Fix issue 35: #35

      Usage:

      var database = await SqlServerDatabaseFactory.ImportAsync("Your connection string!");

      Wiki: https://github.com/hherzl/CatFactory.SqlServer/wiki
  • Loading branch information
hherzl committed May 7, 2023
1 parent 7dd37c5 commit 64dcc5c
Show file tree
Hide file tree
Showing 28 changed files with 766 additions and 1,163 deletions.
21 changes: 10 additions & 11 deletions CatFactory.SqlServer.Tests/DatabaseTypeMapsTests.cs
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
using System.Linq;
using System.Threading.Tasks;
using CatFactory.ObjectRelationalMapping;
using CatFactory.SqlServer.ObjectRelationalMapping;
using CatFactory.SqlServer.Tests.Settings;
using Xunit;

namespace CatFactory.SqlServer.Tests
{
public class DatabaseTypeMapsTests
{
private const string OnlineStoreConnectionString = "server=(local); database=OnlineStore; integrated security=yes; TrustServerCertificate=True;";
private const string AdventureWorks2017ConnectionString = "server=(local); database=AdventureWorks2017; integrated security=yes; TrustServerCertificate=True;";

[Fact]
public async Task GetMapsForStringAsync()
{
// Arrange
var database = await SqlServerDatabaseFactory.ImportAsync(OnlineStoreConnectionString);
var database = await SqlServerDatabaseFactory.ImportAsync(ConnectionStrings.OnlineStore);

// Act
var mapsForString = database.DatabaseTypeMaps.Where(item => item.GetClrType() == typeof(string)).ToList();
var mapsForString = database.DatabaseTypeMaps.GetByClrType(typeof(string)).ToList();

// Assert
Assert.True(mapsForString.Count == 6);
Expand All @@ -27,10 +26,10 @@ public async Task GetMapsForStringAsync()
public async Task GetMapsForDecimalAsync()
{
// Arrange
var database = await SqlServerDatabaseFactory.ImportAsync(OnlineStoreConnectionString);
var database = await SqlServerDatabaseFactory.ImportAsync(ConnectionStrings.OnlineStore);

// Act
var mapsForString = database.DatabaseTypeMaps.Where(item => item.GetClrType() == typeof(decimal)).ToList();
var mapsForString = database.DatabaseTypeMaps.GetByClrType(typeof(decimal)).ToList();

// Assert
Assert.True(mapsForString.Count == 4);
Expand All @@ -40,10 +39,10 @@ public async Task GetMapsForDecimalAsync()
public async Task GetMapForVarcharAsync()
{
// Arrange
var database = await SqlServerDatabaseFactory.ImportAsync(OnlineStoreConnectionString);
var database = await SqlServerDatabaseFactory.ImportAsync(ConnectionStrings.OnlineStore);

// Act
var mapForVarchar = database.DatabaseTypeMaps.FirstOrDefault(item => item.DatabaseType == "varchar");
var mapForVarchar = database.DatabaseTypeMaps.GetByDatabaseType("varchar");

// Assert
Assert.False(mapForVarchar == null);
Expand All @@ -53,10 +52,10 @@ public async Task GetMapForVarcharAsync()
public async Task GetMapForTypeWithParentAsync()
{
// Arrange
var database = await SqlServerDatabaseFactory.ImportAsync(AdventureWorks2017ConnectionString);
var database = await SqlServerDatabaseFactory.ImportAsync(ConnectionStrings.AdventureWorks2017);

// Act
var mapForName = database.DatabaseTypeMaps.FirstOrDefault(item => item.DatabaseType == "Name");
var mapForName = database.DatabaseTypeMaps.GetByDatabaseType("Name");

var parentType = mapForName.GetParentType(database.DatabaseTypeMaps);

Expand Down
155 changes: 93 additions & 62 deletions CatFactory.SqlServer.Tests/DocumentationTests.cs

Large diffs are not rendered by default.

29 changes: 14 additions & 15 deletions CatFactory.SqlServer.Tests/ImportTests.cs
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
using System.Linq;
using System.Threading.Tasks;
using CatFactory.SqlServer.Tests.Settings;
using Xunit;

namespace CatFactory.SqlServer.Tests
{
public class ImportTests
{
private const string OnlineStoreConnectionString = "server=(local); database=OnlineStore; integrated security=yes; TrustServerCertificate=True;";
private const string AdventureWorks2017ConnectionString = "server=(local); database=AdventureWorks2017; integrated security=yes; TrustServerCertificate=True;";
private const string WideWorldImportersConnectionString = "server=(local); database=WideWorldImporters; integrated security=yes; TrustServerCertificate=True;";
private const string NorthwindConnectionString = "server=(local); database=Northwind; integrated security=yes; TrustServerCertificate=True;";

[Fact]
public async Task ImportOnlineStoreDatabaseAsync()
{
// Arrange and Act
var database = await SqlServerDatabaseFactory.ImportAsync(OnlineStoreConnectionString);
var database = await SqlServerDatabaseFactory.ImportAsync(ConnectionStrings.OnlineStore);

// Assert
Assert.True(database.Tables.Count > 0);
Expand All @@ -33,7 +29,7 @@ public async Task ImportOnlineStoreDatabaseAsync()
public async Task ImportTablesFromOnlineStoreDatabaseAsync()
{
// Arrange and Act
var database = await SqlServerDatabaseFactory.ImportTablesAsync(OnlineStoreConnectionString, "Sales.OrderHeader", "Sales.OrderDetail");
var database = await SqlServerDatabaseFactory.ImportTablesAsync(ConnectionStrings.OnlineStore, "Sales.OrderHeader", "Sales.OrderDetail");

// Assert
Assert.True(database.Tables.Count == 2);
Expand All @@ -52,11 +48,14 @@ public async Task ImportAdventureWorksDatabaseAsync()
// Arrange
var databaseFactory = new SqlServerDatabaseFactory(SqlServerDatabaseFactory.GetLogger(), new DatabaseImportSettings
{
ConnectionString = AdventureWorks2017ConnectionString,
ConnectionString = ConnectionStrings.AdventureWorks2017,
ImportStoredProcedures = true,
ImportScalarFunctions = true,
ImportTableFunctions = true,
ExclusionTypes = { "geography" }
ExclusionTypes =
{
"geography"
}
});

// Act
Expand Down Expand Up @@ -86,7 +85,7 @@ public async Task ImportAdventureWorksDatabaseAsync()
public async Task ImportWideWorldImportersDatabaseAsync()
{
// Arrange
var databaseFactory = new SqlServerDatabaseFactory(DatabaseImportSettings.Create(connectionString: WideWorldImportersConnectionString, importSequences: true));
var databaseFactory = new SqlServerDatabaseFactory(DatabaseImportSettings.Create(connectionString: ConnectionStrings.WideWorldImporters, importSequences: true));

// Act
var database = (SqlServerDatabase)await databaseFactory.ImportAsync();
Expand All @@ -104,7 +103,7 @@ public async Task ImportWideWorldImportersDatabaseAsync()
public async Task ImportNorthwindDatabaseAsync()
{
// Arrange and Act
var database = await SqlServerDatabaseFactory.ImportAsync(NorthwindConnectionString, "dbo.ChangeLog");
var database = await SqlServerDatabaseFactory.ImportAsync(ConnectionStrings.Northwind, "dbo.ChangeLog");

// Assert
Assert.True(database.Tables.Count > 0);
Expand All @@ -126,7 +125,7 @@ public async Task FullImportNorthwindDatabaseAsync()
{
// Arrange
var databaseFactory = new SqlServerDatabaseFactory(
DatabaseImportSettings.Create(connectionString: NorthwindConnectionString, importScalarFunctions: true, importTableFunctions: true, importStoredProcedures: true)
DatabaseImportSettings.Create(connectionString: ConnectionStrings.Northwind, importScalarFunctions: true, importTableFunctions: true, importStoredProcedures: true)
);

// Act
Expand All @@ -152,7 +151,7 @@ public async Task FullImportNorthwindDatabaseAsync()
public async Task ImportTablesFromNorthwindDatabaseAsync()
{
// Arrange and Act
var database = await SqlServerDatabaseFactory.ImportTablesAsync(NorthwindConnectionString);
var database = await SqlServerDatabaseFactory.ImportTablesAsync(ConnectionStrings.Northwind);

// Assert
Assert.True(database.Tables.Count > 0);
Expand All @@ -163,7 +162,7 @@ public async Task ImportTablesFromNorthwindDatabaseAsync()
public async Task ImportNorthwindViewsAsync()
{
// Arrange and Act
var database = await SqlServerDatabaseFactory.ImportViewsAsync(NorthwindConnectionString);
var database = await SqlServerDatabaseFactory.ImportViewsAsync(ConnectionStrings.Northwind);

// Assert
Assert.True(database.Tables.Count == 0);
Expand All @@ -175,7 +174,7 @@ public async Task ImportTablesAndViewsFromNorthwindAsync()
{
// Arrange and Act
var database = await SqlServerDatabaseFactory
.ImportTablesAndViewsAsync(NorthwindConnectionString, "dbo.Orders", "dbo.Order Details", "dbo.Category Sales for 1997", "dbo.Product Sales for 1997")
.ImportTablesAndViewsAsync(ConnectionStrings.Northwind, "dbo.Orders", "dbo.Order Details", "dbo.Category Sales for 1997", "dbo.Product Sales for 1997")
;

// Assert
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
using System.Threading.Tasks;
using CatFactory.SqlServer.CodeFactory;
using CatFactory.SqlServer.Tests.Models;
using CatFactory.SqlServer.Tests.Settings;
using Xunit;

namespace CatFactory.SqlServer.Tests
{
public class ScaffoldingStoredProceduresTests
{
private const string OnlineStoreConnectionString = "server=(local); database=OnlineStore; integrated security=yes; TrustServerCertificate=True;";

[Fact]
public async Task ScaffoldProceduresFromExistingDatabaseAsync()
{
// Arrange
var database = await SqlServerDatabaseFactory.ImportAsync(OnlineStoreConnectionString);
var database = await SqlServerDatabaseFactory.ImportAsync(ConnectionStrings.OnlineStore);

// Act
foreach (var table in database.Tables)
Expand Down
7 changes: 3 additions & 4 deletions CatFactory.SqlServer.Tests/SerializationTests.cs
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
using System.IO;
using CatFactory.SqlServer.Tests.Helpers;
using CatFactory.SqlServer.Tests.Models;
using CatFactory.SqlServer.Tests.Settings;
using Newtonsoft.Json;
using Xunit;

namespace CatFactory.SqlServer.Tests
{
public class SerializationTests
{
private const string AdventureWorks2017ConnectionString = "server=(local); database=AdventureWorks2017; integrated security=yes; TrustServerCertificate=True; MultipleActiveResultSets=true;";

[Fact]
public void SerializeMockDatabaseToXml()
{
Expand Down Expand Up @@ -46,7 +45,7 @@ public void SerializeAdventureWorks2017DatabaseToXml()
{
DatabaseImportSettings = new DatabaseImportSettings
{
ConnectionString = AdventureWorks2017ConnectionString,
ConnectionString = ConnectionStrings.AdventureWorks2017,
ExtendedProperties =
{
"MS_Description"
Expand Down Expand Up @@ -76,7 +75,7 @@ public void SerializeAdventureWorks2017DatabaseToJson()
{
DatabaseImportSettings = new DatabaseImportSettings
{
ConnectionString = AdventureWorks2017ConnectionString,
ConnectionString = ConnectionStrings.AdventureWorks2017,
ExtendedProperties =
{
"MS_Description"
Expand Down
10 changes: 10 additions & 0 deletions CatFactory.SqlServer.Tests/Settings/ConnectionStrings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace CatFactory.SqlServer.Tests.Settings
{
internal static class ConnectionStrings
{
public const string AdventureWorks2017 = "server=(local); database=AdventureWorks2017; integrated security=yes; TrustServerCertificate=True;";
public const string Northwind = "server=(local); database=Northwind; integrated security=yes; TrustServerCertificate=True;";
public const string OnlineStore = "server=(local); database=OnlineStore; integrated security=yes; TrustServerCertificate=True;";
public const string WideWorldImporters = "server=(local); database=WideWorldImporters; integrated security=yes; TrustServerCertificate=True;";
}
}
6 changes: 5 additions & 1 deletion CatFactory.SqlServer/CatFactory.SqlServer.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,13 @@
<PackageReleaseNotes>
1.0.0-beta-sun-build70 Version:

Core package update

Fix issue 31: https://github.com/hherzl/CatFactory.SqlServer/issues/31
Fix issue 32: https://github.com/hherzl/CatFactory.SqlServer/issues/32
Fix issue 33: https://github.com/hherzl/CatFactory.SqlServer/issues/33
Fix issue 34: https://github.com/hherzl/CatFactory.SqlServer/issues/34
Fix issue 35: https://github.com/hherzl/CatFactory.SqlServer/issues/35

Usage:

Expand All @@ -31,7 +35,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="CatFactory" Version="1.0.0-beta-sun-build34" />
<PackageReference Include="CatFactory" Version="1.0.0-beta-sun-build36" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.5" />
</ItemGroup>

Expand Down

0 comments on commit 64dcc5c

Please sign in to comment.