26ff8d9b4f
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
92 lines
3.3 KiB
C#
92 lines
3.3 KiB
C#
namespace JdeScoping.DataSync.IntegrationTests.Infrastructure;
|
|
|
|
/// <summary>
|
|
/// Initializes the test database schema.
|
|
/// Creates test tables that mirror production schemas.
|
|
/// </summary>
|
|
public static class TestDatabaseInitializer
|
|
{
|
|
/// <summary>
|
|
/// Creates all test tables in the database.
|
|
/// </summary>
|
|
public static async Task InitializeAsync(string connectionString)
|
|
{
|
|
await using var connection = new SqlConnection(connectionString);
|
|
await connection.OpenAsync();
|
|
|
|
// WorkOrder_Test: For MERGE and bulk copy tests (has LastUpdateDT)
|
|
await connection.ExecuteAsync(@"
|
|
IF OBJECT_ID('WorkOrder_Test', 'U') IS NOT NULL
|
|
DROP TABLE WorkOrder_Test;
|
|
|
|
CREATE TABLE WorkOrder_Test (
|
|
OrderNumber INT NOT NULL PRIMARY KEY,
|
|
Status VARCHAR(10) NULL,
|
|
Description VARCHAR(100) NULL,
|
|
Quantity DECIMAL(18,4) NULL,
|
|
LastUpdateDT DATETIME2 NOT NULL
|
|
);
|
|
|
|
CREATE NONCLUSTERED INDEX IX_WorkOrder_Test_Status
|
|
ON WorkOrder_Test(Status);
|
|
");
|
|
|
|
// Item_Test: For tables WITHOUT LastUpdateDT (unconditional update)
|
|
await connection.ExecuteAsync(@"
|
|
IF OBJECT_ID('Item_Test', 'U') IS NOT NULL
|
|
DROP TABLE Item_Test;
|
|
|
|
CREATE TABLE Item_Test (
|
|
ItemNumber VARCHAR(25) NOT NULL PRIMARY KEY,
|
|
Description VARCHAR(100) NULL,
|
|
UnitOfMeasure VARCHAR(10) NULL
|
|
);
|
|
");
|
|
|
|
// LotUsage_Test: For composite primary key tests
|
|
await connection.ExecuteAsync(@"
|
|
IF OBJECT_ID('LotUsage_Test', 'U') IS NOT NULL
|
|
DROP TABLE LotUsage_Test;
|
|
|
|
CREATE TABLE LotUsage_Test (
|
|
LotNumber VARCHAR(30) NOT NULL,
|
|
OrderNumber INT NOT NULL,
|
|
Quantity DECIMAL(18,4) NULL,
|
|
LastUpdateDT DATETIME2 NOT NULL,
|
|
CONSTRAINT PK_LotUsage_Test PRIMARY KEY (LotNumber, OrderNumber)
|
|
);
|
|
");
|
|
|
|
// DataUpdate_Test: For update logging tests
|
|
await connection.ExecuteAsync(@"
|
|
IF OBJECT_ID('DataUpdate_Test', 'U') IS NOT NULL
|
|
DROP TABLE DataUpdate_Test;
|
|
|
|
CREATE TABLE DataUpdate_Test (
|
|
Id INT IDENTITY(1,1) PRIMARY KEY,
|
|
TableName VARCHAR(50) NOT NULL,
|
|
SourceSystem VARCHAR(10) NOT NULL,
|
|
SourceData VARCHAR(50) NOT NULL,
|
|
UpdateType INT NOT NULL,
|
|
StartDT DATETIME2 NOT NULL,
|
|
EndDT DATETIME2 NULL,
|
|
NumberRecords INT NOT NULL,
|
|
WasSuccessful BIT NULL
|
|
);
|
|
");
|
|
|
|
// BulkMergeTest: For BulkMergeHelper integration tests
|
|
await connection.ExecuteAsync(@"
|
|
IF OBJECT_ID('BulkMergeTest', 'U') IS NOT NULL
|
|
DROP TABLE BulkMergeTest;
|
|
|
|
CREATE TABLE BulkMergeTest (
|
|
Id INT NOT NULL PRIMARY KEY,
|
|
Name NVARCHAR(100) NOT NULL,
|
|
Amount DECIMAL(18,2) NULL,
|
|
LastUpdateDt DATETIME2 NOT NULL
|
|
);
|
|
");
|
|
}
|
|
}
|