- Add TriggeringDEXJobBatchCommandTests - Test batch command execution with multiple profiles - Verify batch ID generation and propagation - Mock ISQLExecutor and IRecClient dependencies - Add MainQueryExecutionBehaviorTests - Test main query execution success path - Test SQL exception handling (JobSqlException) - Verify MainQueryResults population - Add CheckQueryExecutionBehaviorTests - Test check query validation (ErrorAction.SkipInsert) - Test skip behavior for zero results - Test SQL exception handling - All tests pass on both net480 and net8.0 frameworks - Update ECM.JobRunner.sln with test project reference - Upgrade Microsoft.Extensions.DependencyInjection to 8.0.1 (ReC.Client requirement)
86 lines
3.5 KiB
XML
86 lines
3.5 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<TargetFrameworks>net480;net8.0</TargetFrameworks>
|
|
<LangVersion>latest</LangVersion>
|
|
<Nullable>enable</Nullable>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
|
|
<IsPackable>false</IsPackable>
|
|
<IsTestProject>true</IsTestProject>
|
|
|
|
<!-- Suppress AutoMapper vulnerability warning for .NET Framework 4.8 -->
|
|
<NoWarn>$(NoWarn);NU1903</NoWarn>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Test Framework - Common for both frameworks -->
|
|
<PackageReference Include="coverlet.collector" Version="6.0.0">
|
|
<PrivateAssets>all</PrivateAssets>
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
|
<PackageReference Include="xunit" Version="2.5.3" />
|
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3">
|
|
<PrivateAssets>all</PrivateAssets>
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
</PackageReference>
|
|
|
|
<!-- Fluent Assertions for Better Test Readability -->
|
|
<PackageReference Include="FluentAssertions" Version="6.12.1" />
|
|
|
|
<!-- Mocking Framework -->
|
|
<PackageReference Include="Moq" Version="4.20.72" />
|
|
|
|
<!-- Fake Data Generation (common for both frameworks) -->
|
|
<PackageReference Include="Bogus" Version="35.6.1" />
|
|
</ItemGroup>
|
|
|
|
<!-- .NET Framework 4.8 specific packages -->
|
|
<ItemGroup Condition="'$(TargetFramework)' == 'net480'">
|
|
<!-- Dependency Injection & Hosting for .NET Framework 4.8 -->
|
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.0" />
|
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0" />
|
|
|
|
<!-- AutoMapper for .NET Framework 4.8 (matching Infrastructure) -->
|
|
<PackageReference Include="AutoMapper" Version="10.1.1" />
|
|
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" />
|
|
|
|
<!-- MediatR for .NET Framework 4.8 -->
|
|
<PackageReference Include="MediatR" Version="9.0.0" />
|
|
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="9.0.0" />
|
|
|
|
<!-- ReC.Client for HTTP mocking -->
|
|
<PackageReference Include="ReC.Client" Version="2.0.0-beta" />
|
|
</ItemGroup>
|
|
|
|
<!-- .NET 8.0 specific packages -->
|
|
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
|
|
<!-- Dependency Injection & Hosting for .NET 8 -->
|
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.0" />
|
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0" />
|
|
|
|
<!-- AutoMapper for .NET 8 (matching Infrastructure) -->
|
|
<PackageReference Include="AutoMapper" Version="12.0.1" />
|
|
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.1" />
|
|
|
|
<!-- MediatR for .NET 8 -->
|
|
<PackageReference Include="MediatR" Version="12.4.1" />
|
|
|
|
<!-- ReC.Client for HTTP mocking -->
|
|
<PackageReference Include="ReC.Client" Version="2.0.0-beta" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Using Include="Xunit" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Project References -->
|
|
<ProjectReference Include="..\ECMJobRunner.Domain\ECMJobRunner.Domain.csproj" />
|
|
<ProjectReference Include="..\ECMJobRunner.Infrastructure\ECMJobRunner.Infrastructure.csproj" />
|
|
<ProjectReference Include="..\ECMJobRunner.Application\ECMJobRunner.Application.csproj" />
|
|
</ItemGroup>
|
|
|
|
</Project>
|