22using System . Text ;
33using Dapper . Oracle ;
44using FluentAssertions ;
5+ using Oracle . ManagedDataAccess . Client ;
56#if NETCOREAPP2_0
67using Oracle . ManagedDataAccess . Types ;
78#else
@@ -14,13 +15,90 @@ namespace Tests.Dapper.Oracle
1415{
1516 public class OracleValueConverterTests
1617 {
18+ [ Fact ]
19+ public void GetOracleBoolean ( )
20+ {
21+ var oraBool = new OracleBoolean ( true ) ;
22+ var result = OracleValueConverter . Convert < bool > ( oraBool ) ;
23+ result . Should ( ) . Be ( true ) ;
24+
25+ oraBool = new OracleBoolean ( - 1 ) ;
26+ result = OracleValueConverter . Convert < bool > ( oraBool ) ;
27+ result . Should ( ) . Be ( true ) ;
28+
29+ oraBool = new OracleBoolean ( 1 ) ;
30+ result = OracleValueConverter . Convert < bool > ( oraBool ) ;
31+ result . Should ( ) . Be ( true ) ;
32+
33+ oraBool = new OracleBoolean ( 0 ) ;
34+ result = OracleValueConverter . Convert < bool > ( oraBool ) ;
35+ result . Should ( ) . Be ( false ) ;
36+
37+ var oraBoolArr = new OracleBoolean [ 2 ] { true , false } ;
38+ var resultArr = OracleValueConverter . Convert < bool [ ] > ( oraBoolArr ) ;
39+ resultArr . Should ( ) . BeOfType < bool [ ] > ( ) ;
40+ resultArr . Should ( ) . HaveCount ( 2 ) ;
41+ }
42+
43+ [ Fact ]
44+ public void GetOracleBinary ( )
45+ {
46+ var bytes = Encoding . UTF8 . GetBytes ( "Lorem ipsum" ) ;
47+ var oracleBytes = new OracleBinary ( bytes ) ;
48+ var result = OracleValueConverter . Convert < byte [ ] > ( oracleBytes ) ;
49+ result . Should ( ) . Equal ( bytes ) ;
50+ }
51+
52+ [ Fact ]
53+ public void GetOracleTimeStamp ( )
54+ {
55+ var dateNow = DateTime . Now ;
56+ var oraTimeStamp = new OracleTimeStamp ( dateNow ) ;
57+ var result = OracleValueConverter . Convert < DateTime > ( oraTimeStamp ) ;
58+ result . Should ( ) . Be ( dateNow ) ;
59+
60+ var oraTimeStampArr = new OracleTimeStamp [ 1 ] { dateNow } ;
61+ var secondResult = OracleValueConverter . Convert < DateTime [ ] > ( oraTimeStampArr ) ;
62+ secondResult . Should ( ) . BeOfType < DateTime [ ] > ( ) ;
63+ secondResult . Should ( ) . HaveCount ( 1 ) ;
64+ }
65+
66+ [ Fact ]
67+ public void GetOracleDateArray ( )
68+ {
69+ var oraDateArray = new OracleDate [ ] {
70+ ( OracleDate ) DateTime . Now ,
71+ ( OracleDate ) DateTime . Now . AddYears ( 1 ) ,
72+ new OracleDate ( "10/29/2020 16:14:23" )
73+ } ;
74+
75+ var nullableOraDateArray = new OracleDate ? [ ] {
76+ ( OracleDate ) DateTime . Now ,
77+ ( OracleDate ) DateTime . Now . AddYears ( 1 ) ,
78+ null ,
79+ new OracleDate ( "10/29/2020 16:14:23" )
80+ } ;
81+ var result = OracleValueConverter . Convert < DateTime [ ] > ( oraDateArray ) ;
82+ result . Should ( ) . BeOfType < DateTime [ ] > ( ) ;
83+ result . Should ( ) . HaveCount ( oraDateArray . Length ) ;
84+
85+ var secondResult = OracleValueConverter . Convert < DateTime ? [ ] > ( nullableOraDateArray ) ;
86+ secondResult . Should ( ) . BeOfType < DateTime ? [ ] > ( ) ;
87+ secondResult . Should ( ) . HaveCount ( nullableOraDateArray . Length ) ;
88+ }
89+
1790 [ Fact ]
1891 public void GetStringArray ( )
1992 {
2093 var oraArray = new [ ] { "Foo" , "Bar" } ;
2194 var result = OracleValueConverter . Convert < string [ ] > ( oraArray ) ;
2295 result . Should ( ) . BeOfType < string [ ] > ( ) ;
2396 result . Should ( ) . HaveCount ( 2 ) ;
97+
98+ oraArray = new [ ] { "Foo" , "Bar" , null } ;
99+ result = OracleValueConverter . Convert < string [ ] > ( oraArray ) ;
100+ result . Should ( ) . BeOfType < string [ ] > ( ) ;
101+ result . Should ( ) . HaveCount ( 3 ) ;
24102 }
25103
26104 [ Fact ]
0 commit comments