Skip to content

Commit 75dd020

Browse files
committed
Test for decimal/numeric scale bug.
1 parent b3e0303 commit 75dd020

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

Provider/src/FirebirdSql.Data.FirebirdClient.Tests/TrackerIssuesTests.cs

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,5 +355,75 @@ public async Task DNET304_CharOctetsParameterRoundtrip()
355355
}
356356
}
357357
}
358+
359+
[Test]
360+
public async Task DNET1036_ReadNumericScaleZero()
361+
{
362+
await using (var transaction = await Connection.BeginTransactionAsync())
363+
{
364+
await using (var command = new FbCommand("select cast(3 as numeric(18,0)) from rdb$database", Connection, transaction))
365+
{
366+
await using (var reader = await command.ExecuteReaderAsync())
367+
{
368+
await reader.ReadAsync();
369+
Assert.AreEqual(3m, reader[0]);
370+
}
371+
}
372+
await transaction.RollbackAsync();
373+
}
374+
}
375+
376+
[Test]
377+
public async Task DNET1036_ReadDecimalScaleZero()
378+
{
379+
await using (var transaction = await Connection.BeginTransactionAsync())
380+
{
381+
await using (var command = new FbCommand("select cast(3 as decimal(18,0)) from rdb$database", Connection, transaction))
382+
{
383+
await using (var reader = await command.ExecuteReaderAsync())
384+
{
385+
await reader.ReadAsync();
386+
Assert.AreEqual(3m, reader[0]);
387+
}
388+
}
389+
await transaction.RollbackAsync();
390+
}
391+
}
392+
393+
[Test]
394+
public async Task DNET1036_WriteNumericScaleZero()
395+
{
396+
await using (var transaction = await Connection.BeginTransactionAsync())
397+
{
398+
await using (var command = new FbCommand("select cast(@value as numeric(18,0)) from rdb$database", Connection, transaction))
399+
{
400+
command.Parameters.AddWithValue("value", 3m);
401+
await using (var reader = await command.ExecuteReaderAsync())
402+
{
403+
await reader.ReadAsync();
404+
Assert.AreEqual(3m, reader[0]);
405+
}
406+
}
407+
await transaction.RollbackAsync();
408+
}
409+
}
410+
411+
[Test]
412+
public async Task DNET1036_WriteDecimalScaleZero()
413+
{
414+
await using (var transaction = await Connection.BeginTransactionAsync())
415+
{
416+
await using (var command = new FbCommand("select cast(@value as decimal(18,0)) from rdb$database", Connection, transaction))
417+
{
418+
command.Parameters.AddWithValue("value", 3m);
419+
await using (var reader = await command.ExecuteReaderAsync())
420+
{
421+
await reader.ReadAsync();
422+
Assert.AreEqual(3m, reader[0]);
423+
}
424+
}
425+
await transaction.RollbackAsync();
426+
}
427+
}
358428
}
359429
}

0 commit comments

Comments
 (0)