@@ -1567,7 +1567,7 @@ public void GetFieldValue_ShouldReturnExpectedDateOnlyValueFromDateTime()
1567
1567
}
1568
1568
1569
1569
[ Fact ]
1570
- public void GetFieldValue__ShouldReturnExpectedDateTimeOffsetValueFromString ( )
1570
+ public void GetFieldValue_ShouldReturnExpectedDateOnlyValueFromString ( )
1571
1571
{
1572
1572
// Arrange
1573
1573
var values = new List < object > { DateOnly . MaxValue . ToString ( CultureInfo . InvariantCulture ) } ;
@@ -1580,15 +1580,42 @@ public void GetFieldValue__ShouldReturnExpectedDateTimeOffsetValueFromString()
1580
1580
{ 0 , new EFTableColumnInfo { DbTypeName = nameof ( String ) , Ordinal = 0 } }
1581
1581
}
1582
1582
} ;
1583
+
1583
1584
var dataReader = new EFTableRowsDataReader ( tableRows ) ;
1584
1585
1585
1586
dataReader . Read ( ) ;
1586
1587
1587
1588
// Act
1588
- void Act ( ) => dataReader . GetFieldValue < DateOnly > ( 0 ) ;
1589
+ var actual = dataReader . GetFieldValue < DateOnly > ( 0 ) ;
1589
1590
1590
1591
// Assert
1591
- Assert . Throws < InvalidCastException > ( Act ) ;
1592
+ Assert . Equal ( DateOnly . MaxValue , actual ) ;
1593
+ }
1594
+
1595
+ [ Fact ]
1596
+ public void GetFieldValue_ShouldNotThrowInvalidCastExceptionWhenValueConversionFromStringToDateOnly ( )
1597
+ {
1598
+ // Arrange
1599
+ var values = new List < object > { DateOnly . MaxValue . ToString ( CultureInfo . InvariantCulture ) } ;
1600
+ var tableRow = new EFTableRow ( values ) ;
1601
+ var tableRows = new EFTableRows
1602
+ {
1603
+ Rows = new List < EFTableRow > { tableRow } ,
1604
+ ColumnsInfo = new Dictionary < int , EFTableColumnInfo >
1605
+ {
1606
+ { 0 , new EFTableColumnInfo { DbTypeName = nameof ( String ) , Ordinal = 0 } }
1607
+ }
1608
+ } ;
1609
+
1610
+ var dataReader = new EFTableRowsDataReader ( tableRows ) ;
1611
+
1612
+ dataReader . Read ( ) ;
1613
+
1614
+ // Act
1615
+ var exception = Record . Exception ( ( ) => dataReader . GetFieldValue < DateOnly > ( 0 ) ) ;
1616
+
1617
+ // Assert
1618
+ Assert . Null ( exception ) ;
1592
1619
}
1593
1620
1594
1621
[ Fact ]
@@ -1643,6 +1670,32 @@ public void GetFieldValue_ShouldReturnExpectedTimeOnlyValueFromNumber()
1643
1670
1644
1671
[ Fact ]
1645
1672
public void GetFieldValue_ShouldReturnExpectedTimeOnlyValueFromString ( )
1673
+ {
1674
+ // Arrange
1675
+ var values = new List < object > { TimeOnly . MaxValue . ToString ( "O" , CultureInfo . InvariantCulture ) } ;
1676
+ var tableRow = new EFTableRow ( values ) ;
1677
+ var tableRows = new EFTableRows
1678
+ {
1679
+ Rows = new List < EFTableRow > { tableRow } ,
1680
+ ColumnsInfo = new Dictionary < int , EFTableColumnInfo >
1681
+ {
1682
+ { 0 , new EFTableColumnInfo { DbTypeName = nameof ( String ) , Ordinal = 0 } }
1683
+ }
1684
+ } ;
1685
+
1686
+ var dataReader = new EFTableRowsDataReader ( tableRows ) ;
1687
+
1688
+ dataReader . Read ( ) ;
1689
+
1690
+ // Act
1691
+ var actual = dataReader . GetFieldValue < TimeOnly > ( 0 ) ;
1692
+
1693
+ // Assert
1694
+ Assert . Equal ( TimeOnly . MaxValue , actual ) ;
1695
+ }
1696
+
1697
+ [ Fact ]
1698
+ public void GetFieldValue_ShouldNotThrowInvalidCastExceptionWhenValueConversionFromStringToTimeOnly ( )
1646
1699
{
1647
1700
// Arrange
1648
1701
var values = new List < object > { TimeOnly . MaxValue . ToString ( CultureInfo . InvariantCulture ) } ;
@@ -1652,18 +1705,19 @@ public void GetFieldValue_ShouldReturnExpectedTimeOnlyValueFromString()
1652
1705
Rows = new List < EFTableRow > { tableRow } ,
1653
1706
ColumnsInfo = new Dictionary < int , EFTableColumnInfo >
1654
1707
{
1655
- { 0 , new EFTableColumnInfo { DbTypeName = nameof ( TimeSpan ) , Ordinal = 0 } }
1708
+ { 0 , new EFTableColumnInfo { DbTypeName = nameof ( String ) , Ordinal = 0 } }
1656
1709
}
1657
1710
} ;
1711
+
1658
1712
var dataReader = new EFTableRowsDataReader ( tableRows ) ;
1659
1713
1660
1714
dataReader . Read ( ) ;
1661
1715
1662
1716
// Act
1663
- void Act ( ) => dataReader . GetFieldValue < DateOnly > ( 0 ) ;
1717
+ var exception = Record . Exception ( ( ) => dataReader . GetFieldValue < TimeOnly > ( 0 ) ) ;
1664
1718
1665
1719
// Assert
1666
- Assert . Throws < InvalidCastException > ( Act ) ;
1720
+ Assert . Null ( exception ) ;
1667
1721
}
1668
1722
1669
1723
[ Fact ]
0 commit comments