Fixed tests to work at least for .NET 8 (#275)

* Fixed tests to work at least for .NET 8
---------

Signed-off-by: Roberto Paterlini <paterlini.roberto@gmail.com>
This commit is contained in:
Roberto Paterlini
2025-04-16 17:02:15 +02:00
committed by GitHub
parent d0d0cd22e4
commit 753aadf9c5
11 changed files with 157 additions and 48 deletions

View File

@@ -190,6 +190,21 @@ VS.NET
Visual Studio 2022 is required to open and build the solution. The free community version of Visual Studio should
suffice.
### Running tests
- To run tests that require a database connection, you need:
- SqlServer running in (local)
- Check in `SQL Server Configuration Manager` that `Named Pipes` and `TCP/IP` protocols are enabled
- From `build-support` execute
- `create-integration-test-databases-and-users.sql`
- From `\test\Spring\Spring.Data.Integration.Tests\Data` execute
- `Spring.Data.Integration.Tests_Spring_database.sql`
- `Spring.Data.Integration.Tests_Credits_database.sql`
- `Spring.Data.Integration.Tests_Debits_database.sql`
- `Spring.Data.Integration.Tests_CreditsAndDebits_database.sql`
- Create a database named `quartz` and execute `tables_sqlServer_Below2016.sql` from [Quartz.NET](https://github.com/quartznet/quartznet/blob/main/database/tables/tables_sqlServer_Below2016.sql)
## Acknowledgements
InnovaSys Document X!

View File

@@ -66,10 +66,10 @@ public class CurrencyFormatterTests
fmt = new CurrencyFormatter(CultureInfoUtils.SerbianCyrillicCultureName);
#if NETFRAMEWORK
Assert.AreEqual("1.234,00 дин.", fmt.Format(1234));
Assert.AreEqual("1.234,56 дин.", fmt.Format(1234.56));
Assert.AreEqual("-1.234,00 дин.", fmt.Format(-1234));
Assert.AreEqual("-1.234,56 дин.", fmt.Format(-1234.56));
Assert.AreEqual("1.234,00 дин.", fmt.Format(1234));
Assert.AreEqual("1.234,56 дин.", fmt.Format(1234.56));
Assert.AreEqual("-1.234,00 дин.", fmt.Format(-1234));
Assert.AreEqual("-1.234,56 дин.", fmt.Format(-1234.56));
#else
Assert.AreEqual("1.234 RSD", fmt.Format(1234));
Assert.AreEqual("1.235 RSD", fmt.Format(1234.56));

View File

@@ -56,8 +56,8 @@ public class FloatFormatterTests
fmt = new FloatFormatter(FloatFormatter.DefaultFormat, "sr-SP-Latn");
#if NETFRAMEWORK
Assert.AreEqual("1234,00", fmt.Format(1234));
Assert.AreEqual("-1234,00", fmt.Format(-1234));
Assert.AreEqual("1234,00", fmt.Format(1234));
Assert.AreEqual("-1234,00", fmt.Format(-1234));
#else
Assert.AreEqual("1234,000", fmt.Format(1234));
Assert.AreEqual("-1234,000", fmt.Format(-1234));

View File

@@ -58,10 +58,10 @@ public class NumberFormatterTests
fmt = new NumberFormatter("sr-SP-Latn");
#if NETFRAMEWORK
Assert.AreEqual("1.234,00", fmt.Format(1234));
Assert.AreEqual("1.234,56", fmt.Format(1234.56));
Assert.AreEqual("-1.234,00", fmt.Format(-1234));
Assert.AreEqual("-1.234,56", fmt.Format(-1234.56));
Assert.AreEqual("1.234,00", fmt.Format(1234));
Assert.AreEqual("1.234,56", fmt.Format(1234.56));
Assert.AreEqual("-1.234,00", fmt.Format(-1234));
Assert.AreEqual("-1.234,56", fmt.Format(-1234.56));
#else
Assert.AreEqual("1.234,000", fmt.Format(1234));
Assert.AreEqual("1.234,560", fmt.Format(1234.56));
@@ -104,10 +104,10 @@ public class NumberFormatterTests
fmt.GroupSeparator = "'";
#if NETFRAMEWORK
Assert.AreEqual("1'23'4,00", fmt.Format(1234));
Assert.AreEqual("1'23'4,56", fmt.Format(1234.56));
Assert.AreEqual("-1'23'4,00", fmt.Format(-1234));
Assert.AreEqual("-1'23'4,56", fmt.Format(-1234.56));
Assert.AreEqual("1'23'4,00", fmt.Format(1234));
Assert.AreEqual("1'23'4,56", fmt.Format(1234.56));
Assert.AreEqual("-1'23'4,00", fmt.Format(-1234));
Assert.AreEqual("-1'23'4,56", fmt.Format(-1234.56));
#else
Assert.AreEqual("1'23'4,000", fmt.Format(1234));
Assert.AreEqual("1'23'4,560", fmt.Format(1234.56));

View File

@@ -56,8 +56,8 @@ public class PercentFormatterTests
fmt = new PercentFormatter("sr-SP-Latn");
#if NETFRAMEWORK
Assert.AreEqual("25,00%", fmt.Format(0.25));
Assert.AreEqual("25,34%", fmt.Format(0.2534));
Assert.AreEqual("25,00%", fmt.Format(0.25));
Assert.AreEqual("25,34%", fmt.Format(0.2534));
#else
Assert.AreEqual("25,000%", fmt.Format(0.25));
Assert.AreEqual("25,340%", fmt.Format(0.2534));

View File

@@ -32,32 +32,37 @@ public class VariableAccessorTests
private static readonly DateTime TESTDATETIME = new DateTime(2007, 07, 06, 11, 12, 13);
private static readonly DateTime TESTDATETIME_DEFAULT = TESTDATETIME.AddDays(-1);
private readonly IVariableSource _testVariableSource = new DictionaryVariableSource(null, true)
.Add("ValidString", "String")
.Add("EmptyString", "")
.Add("ValidChar", "c")
.Add("InvalidChar", "12")
.Add("ValidBoolean", "true")
.Add("InvalidBoolean", "")
.Add("ValidByte", "1")
.Add("InvalidByte", "")
.Add("ValidInt16", "1")
.Add("InvalidInt16", "")
.Add("ValidInt32", "1")
.Add("InvalidInt32", "")
.Add("ValidInt64", "1")
.Add("InvalidInt64", "")
.Add("ValidFloat", "1")
.Add("InvalidFloat", "")
.Add("ValidDouble", "1")
.Add("InvalidDouble", "")
.Add("ValidDecimal", "1")
.Add("InvalidDecimal", "")
.Add("ValidGuid", TESTGUID.ToString())
.Add("InvalidGuid", "")
.Add("ValidDateTime", TESTDATETIME.ToString(CultureInfo.InvariantCulture))
.Add("InvalidDateTime", "blabla")
.Add("ValidDateTimeUtcRoundtripFormatted", TESTDATETIME.ToUniversalTime().ToString("u"));
private readonly IVariableSource _testVariableSource = GetTestVariableSource();
private static DictionaryVariableSource GetTestVariableSource()
{
return new DictionaryVariableSource(null, true)
.Add("ValidString", "String")
.Add("EmptyString", "")
.Add("ValidChar", "c")
.Add("InvalidChar", "12")
.Add("ValidBoolean", "true")
.Add("InvalidBoolean", "")
.Add("ValidByte", "1")
.Add("InvalidByte", "")
.Add("ValidInt16", "1")
.Add("InvalidInt16", "")
.Add("ValidInt32", "1")
.Add("InvalidInt32", "")
.Add("ValidInt64", "1")
.Add("InvalidInt64", "")
.Add("ValidFloat", "1")
.Add("InvalidFloat", "")
.Add("ValidDouble", "1")
.Add("InvalidDouble", "")
.Add("ValidDecimal", "1")
.Add("InvalidDecimal", "")
.Add("ValidGuid", TESTGUID.ToString())
.Add("InvalidGuid", "")
.Add("ValidDateTime", TESTDATETIME.ToString())
.Add("InvalidDateTime", "blabla")
.Add("ValidDateTimeUtcRoundtripFormatted", TESTDATETIME.ToUniversalTime().ToString("u"));
}
[Test]
public void AcceptsNullVariableSource()
@@ -167,9 +172,24 @@ public class VariableAccessorTests
}
[Test]
[SetCulture("en-US")]
public void GetDateTime()
{
VariableAccessor va = new VariableAccessor(_testVariableSource);
var testVariables = GetTestVariableSource();
DoGetDateTime(testVariables);
}
[Test]
[SetCulture("it-IT")]
public void GetDateTimeIt()
{
var testVariables = GetTestVariableSource();
DoGetDateTime(testVariables);
}
public static void DoGetDateTime(DictionaryVariableSource testVariables)
{
var va = new VariableAccessor(testVariables);
Assert.AreEqual(TESTDATETIME, va.GetDateTime("ValidDateTime", null, TESTDATETIME_DEFAULT));
Assert.AreEqual(TESTDATETIME.ToUniversalTime(), va.GetDateTime("ValidDateTimeUtcRoundtripFormatted", "u", TESTDATETIME_DEFAULT));
Assert.AreEqual(TESTDATETIME_DEFAULT, va.GetDateTime("InvalidDateTime", null, TESTDATETIME_DEFAULT, false));

View File

@@ -12,7 +12,7 @@
<property name="logMethodArguments" value="true" />
<property name="Separator" value=";" />
<property name="LogLevel" value="Info" />
<property name="LogLevel" value="Information" />
<property name="HideProxyTypeNames" value="true" />
<property name="UseDynamicLogger" value="true" />

View File

@@ -25,8 +25,7 @@
<property name="DbProvider" ref="DbProvider" />
<property name="MappingResources">
<list>
<value>assembly://Spring.Data.NHibernate5.Integration.Tests/Spring.Data.NHibernate/TestObject.hbm.xml
</value>
<value>assembly://Spring.Data.NHibernate5.Integration.Tests/Spring.Data.NHibernate/TestObject.hbm.xml</value>
</list>
</property>
<!--

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<objects xmlns="http://www.springframework.net"
xmlns:aop="http://www.springframework.net/aop"
xmlns:db="http://www.springframework.net/database"
xmlns:tx="http://www.springframework.net/tx">
<!-- Property placeholder configurer for database settings -->
<object type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
<property name="ConfigSections" value="appSettings" />
</object>
<!-- DB -->
<db:provider id="dbProvider" provider="SqlServer" connectionString="Server=(local);initial catalog=quartz;Integrated Security=true" />
<object id="transactionManager" type="Spring.Data.Core.TxScopeTransactionManager, Spring.Data">
</object>
<!-- And actual Quartz -->
<object id="quartzSchedulerFactory" type="Spring.Scheduling.Quartz.SchedulerFactoryObject, Spring.Scheduling.Quartz3">
<property name="AutoStartup" value="true" />
<property name="StartupDelay" value="5s" />
<property name="QuartzProperties">
<dictionary>
<entry key="quartz.serializer.type" value="binary" />
<entry key="quartz.threadPool.threadCount" value="10" />
<entry key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<entry key="quartz.threadPool.threadPriority" value="Normal" />
<entry key="quartz.jobStore.misfireThreshold" value="60000" />
<entry key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.StdAdoDelegate, Quartz" />
<entry key="quartz.jobStore.useProperties" value="false" />
<entry key="quartz.jobStore.tablePrefix" value="QRTZ_" />
<entry key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz" />
</dictionary>
</property>
<property name="triggers">
<list>
<ref object="simpleTrigger" />
</list>
</property>
<property name="DbProvider" ref="dbProvider" />
<property name="TransactionManager" ref="transactionManager" />
</object>
<object id="testJob" type="Spring.Scheduling.Quartz.JobDetailObject, Spring.Scheduling.Quartz3">
<property name="JobType"
value="Spring.Scheduling.Quartz.Integration.Tests.TestJob, Spring.Scheduling.Quartz3.Integration.Tests" />
</object>
<object id="simpleTrigger" type="Spring.Scheduling.Quartz.SimpleTriggerObject, Spring.Scheduling.Quartz3">
<!-- see the example of method invoking job above -->
<property name="jobDetail" ref="testJob" />
<!-- 2 seconds -->
<property name="startDelay" value="2s" />
<!-- repeat every 3 seconds -->
<property name="repeatInterval" value="3s" />
</object>
</objects>

View File

@@ -23,13 +23,18 @@ namespace Spring.Scheduling.Quartz.Integration.Tests;
[TestFixture]
public class LocalDataSourceJobStoreTest
{
private IApplicationContext ctx;
private IApplicationContext _ctx;
[SetUp]
public void SetUp()
{
ctx = new XmlApplicationContext(
#if NETFRAMEWORK
_ctx = new XmlApplicationContext(
"assembly://Spring.Scheduling.Quartz3.Integration.Tests/Spring.Scheduling.Quartz/LocalDataSourceJobStoreTest.xml");
#else
_ctx = new XmlApplicationContext(
"assembly://Spring.Scheduling.Quartz3.Integration.Tests/Spring.Scheduling.Quartz/LocalDataSourceJobStoreTest-core.xml");
#endif
}
[Test]

View File

@@ -2,6 +2,10 @@
<PropertyGroup>
<TargetFrameworks>net8.0;$(TargetFullFrameworkVersion)</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<None Remove="Scheduling\Quartz\LocalDataSourceJobStoreTest-core.xml" />
<None Remove="Scheduling\Quartz\LocalDataSourceJobStoreTest.xml" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\Spring\Spring.Core\Spring.Core.csproj" />
<ProjectReference Include="..\..\..\src\Spring\Spring.Data\Spring.Data.csproj" />
@@ -13,8 +17,10 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="NUnit" />
<PackageReference Include="NUnit3TestAdapter" />
<PackageReference Include="System.Data.SqlClient" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Scheduling\Quartz\LocalDataSourceJobStoreTest-core.xml" />
<EmbeddedResource Include="Scheduling\Quartz\LocalDataSourceJobStoreTest.xml" />
</ItemGroup>
</Project>