Skip to content

Commit 0820f87

Browse files
authored
Add testing Oracle to Git Hub Actions (#2848)
1 parent bd81789 commit 0820f87

File tree

9 files changed

+30
-11
lines changed

9 files changed

+30
-11
lines changed

.github/workflows/NetCoreTests.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ jobs:
1616
CONNECTION_STRING: "DataSource=localhost;Database=nhibernate;User=SYSDBA;Password=nhibernate;charset=utf8;"
1717
- DB: MySQL
1818
CONNECTION_STRING: "Server=localhost;Uid=root;Password=nhibernate;Database=nhibernate;Old Guids=True;"
19+
- DB: Oracle
20+
CONNECTION_STRING: "User ID=nhibernate;Password=nhibernate;Metadata Pooling=false;Self Tuning=false;Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XEPDB1)))"
1921
- DB: SQLite
2022
runs-on: ubuntu-latest
2123
continue-on-error: ${{matrix.ALLOW_FAILURE == true}}
@@ -45,6 +47,11 @@ jobs:
4547
run: |
4648
docker run --name firebird -e EnableWireCrypt=true -e FIREBIRD_USER=nhibernate -e FIREBIRD_PASSWORD=nhibernate -e ISC_PASSWORD=nhibernate -e FIREBIRD_DATABASE=nhibernate -p 3050:3050 -d jacobalberty/firebird:v3.0
4749
50+
- name: Set up Oracle
51+
if: matrix.DB == 'Oracle'
52+
run: |
53+
docker run -d -p 1521:1521 -e APP_USER=nhibernate -e APP_USER_PASSWORD=nhibernate -e ORACLE_PASSWORD=nhibernate gvenzl/oracle-xe:18-slim
54+
4855
- uses: actions/checkout@v2
4956
- name: Setup .NET
5057
uses: actions/setup-dotnet@v1.8.0

psake.ps1

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ Task Set-Configuration {
6262
'SqlServer2012' = @{
6363
'connection.connection_string' = 'Server=(local)\SQL2017;User ID=sa;Password=Password12!;initial catalog=nhibernate;';
6464
'dialect' = 'NHibernate.Dialect.MsSql2012Dialect'
65+
};
66+
'Oracle' = @{
67+
'connection.connection_string' = 'User ID=nhibernate;Password=nhibernate;Metadata Pooling=false;Self Tuning=false;Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XEPDB1)))';
68+
'connection.driver_class' = 'NHibernate.Driver.OracleManagedDataClientDriver';
69+
'dialect' = 'NHibernate.Dialect.Oracle10gDialect'
6570
}
6671
}
6772
#Settings for current build

src/NHibernate.Test/Async/NHSpecificTest/NH1171/Fixture.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ public class FixtureAsync : BugTestCase
2020
{
2121
protected override bool AppliesTo(Dialect.Dialect dialect)
2222
{
23-
// Firebird has issues with comments containing apostrophes
24-
return !(dialect is FirebirdDialect);
23+
return
24+
// Firebird has issues with comments containing apostrophes
25+
!(dialect is FirebirdDialect)
26+
// GH-2853: Oracle client bug: throws Oracle.ManagedDataAccess.Client.OracleException : ORA-01008: not all variables bound
27+
&& !(dialect is Oracle8iDialect);
2528
}
2629

2730
protected override void Configure(NHibernate.Cfg.Configuration configuration)

src/NHibernate.Test/Async/NHSpecificTest/NH1693/Fixture.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public async Task without_filterAsync()
4949
using (var tx = session.BeginTransaction())
5050
{
5151
var q1 =
52-
"from Invoice i where i.Mode='a' and i.Category=:cat and not exists (from Invoice i2 where i2.Mode='a' and i2.Category=:cat and i2.Num=i.Num+1)";
52+
"from Invoice i where i.Mode='a' and i.Category=:cat and not exists (from Invoice i2 where i2.Mode='a' and i2.Category=:cat and i2.Num=i.Num+1) order by i.Num";
5353
var list = await (session.CreateQuery(q1)
5454
.SetParameter("cat", 10)
5555
.ListAsync<Invoice>());
@@ -70,7 +70,7 @@ public async Task with_filterAsync()
7070
session.EnableFilter("modeFilter").SetParameter("currentMode", "a");
7171

7272
var q1 =
73-
"from Invoice i where i.Category=:cat and not exists (from Invoice i2 where i2.Category=:cat and i2.Num=i.Num+1)";
73+
"from Invoice i where i.Category=:cat and not exists (from Invoice i2 where i2.Category=:cat and i2.Num=i.Num+1) order by i.Num";
7474
var list = await (session.CreateQuery(q1)
7575
.SetParameter("cat", 10)
7676
.ListAsync<Invoice>());

src/NHibernate.Test/Async/Tools/hbm2ddl/SchemaMetadataUpdaterTest/SchemaMetadataUpdaterFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ public async Task WhenConfiguredOnlyExplicitAutoQuoteAsync()
254254
// Test uses the default dialect driver, which will not accept Odbc or OleDb connection strings.
255255
if (typeof(OdbcDriver).IsAssignableFrom(driverClass) || typeof(OleDbDriver).IsAssignableFrom(driverClass))
256256
Assert.Ignore("Test is not compatible with OleDb or ODBC driver connection strings");
257-
var configuredDialect = Dialect.Dialect.GetDialect();
257+
var configuredDialect = Dialect.Dialect.GetDialect(configuration.Properties);
258258
if(!configuredDialect.DefaultProperties.ContainsKey(Environment.ConnectionDriver))
259259
{
260260
Assert.Ignore(GetType() + " does not apply to " + configuredDialect);

src/NHibernate.Test/NHSpecificTest/NH1171/Fixture.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,11 @@ public class Fixture : BugTestCase
99
{
1010
protected override bool AppliesTo(Dialect.Dialect dialect)
1111
{
12-
// Firebird has issues with comments containing apostrophes
13-
return !(dialect is FirebirdDialect);
12+
return
13+
// Firebird has issues with comments containing apostrophes
14+
!(dialect is FirebirdDialect)
15+
// GH-2853: Oracle client bug: throws Oracle.ManagedDataAccess.Client.OracleException : ORA-01008: not all variables bound
16+
&& !(dialect is Oracle8iDialect);
1417
}
1518

1619
protected override void Configure(NHibernate.Cfg.Configuration configuration)

src/NHibernate.Test/NHSpecificTest/NH1693/Fixture.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public void without_filter()
3838
using (var tx = session.BeginTransaction())
3939
{
4040
var q1 =
41-
"from Invoice i where i.Mode='a' and i.Category=:cat and not exists (from Invoice i2 where i2.Mode='a' and i2.Category=:cat and i2.Num=i.Num+1)";
41+
"from Invoice i where i.Mode='a' and i.Category=:cat and not exists (from Invoice i2 where i2.Mode='a' and i2.Category=:cat and i2.Num=i.Num+1) order by i.Num";
4242
var list = session.CreateQuery(q1)
4343
.SetParameter("cat", 10)
4444
.List<Invoice>();
@@ -59,7 +59,7 @@ public void with_filter()
5959
session.EnableFilter("modeFilter").SetParameter("currentMode", "a");
6060

6161
var q1 =
62-
"from Invoice i where i.Category=:cat and not exists (from Invoice i2 where i2.Category=:cat and i2.Num=i.Num+1)";
62+
"from Invoice i where i.Category=:cat and not exists (from Invoice i2 where i2.Category=:cat and i2.Num=i.Num+1) order by i.Num";
6363
var list = session.CreateQuery(q1)
6464
.SetParameter("cat", 10)
6565
.List<Invoice>();

src/NHibernate.Test/NHibernate.Test.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,13 @@
7474
<Reference Include="System.Threading.Tasks" />
7575
<Reference Include="System.Data.OracleClient" />
7676
<PackageReference Include="Microsoft.SqlServer.Compact" Version="4.0.8876.1" />
77-
<PackageReference Include="Oracle.ManagedDataAccess" Version="12.1.2400" />
77+
<PackageReference Include="Oracle.ManagedDataAccess" Version="19.11.0" />
7878
</ItemGroup>
7979
<ItemGroup Condition="'$(TargetFramework)'=='netcoreapp2.0'">
8080
<PackageReference Include="System.CodeDom" Version="4.7.0" />
8181
<PackageReference Include="System.Data.SqlClient" Version="4.8.2" />
8282
<PackageReference Include="System.Data.OracleClient" Version="1.0.8" />
83+
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="2.19.110" />
8384
<PackageReference Include="System.Data.Odbc" Version="4.7.0" />
8485
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
8586
<PackageReference Include="NUnitLite" Version="3.13.2" />

src/NHibernate.Test/Tools/hbm2ddl/SchemaMetadataUpdaterTest/SchemaMetadataUpdaterFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ public void WhenConfiguredOnlyExplicitAutoQuote()
259259
// Test uses the default dialect driver, which will not accept Odbc or OleDb connection strings.
260260
if (typeof(OdbcDriver).IsAssignableFrom(driverClass) || typeof(OleDbDriver).IsAssignableFrom(driverClass))
261261
Assert.Ignore("Test is not compatible with OleDb or ODBC driver connection strings");
262-
var configuredDialect = Dialect.Dialect.GetDialect();
262+
var configuredDialect = Dialect.Dialect.GetDialect(configuration.Properties);
263263
if(!configuredDialect.DefaultProperties.ContainsKey(Environment.ConnectionDriver))
264264
{
265265
Assert.Ignore(GetType() + " does not apply to " + configuredDialect);

0 commit comments

Comments
 (0)