@@ -24,22 +24,110 @@ public CopyLatestTests(DockerFixture dockerFixture, ITestOutputHelper output)
2424 }
2525
2626 [ Fact ]
27- public async Task CopiesLatestRows ( )
27+ public async Task CopiesLatestRowsByInt ( )
2828 {
29- var sourceTable = "[dbo].[test_copying_latest_rows ]" ;
29+ var sourceTable = "[dbo].[test_copying_latest_rows_by_int ]" ;
3030 var targetTable = sourceTable ;
31- var resultById = await _sqlBulkCopyCautiouslyService . CopyLatest ( sourceTable , targetTable ) ;
32- Assert . Equal ( 1 , resultById ) ;
33-
34- var byDateColumn = "[timestamp]" ;
35- var resultByDate = await _sqlBulkCopyCautiouslyService . CopyLatest ( sourceTable , targetTable , byDateColumn ) ;
36- Assert . Equal ( 2 , resultByDate ) ;
37-
38- var byVersionControlColumn = "[version_control]" ;
39- var resultByVersionControl = await _sqlBulkCopyCautiouslyService . CopyLatest ( sourceTable , targetTable , byVersionControlColumn ) ;
40- Assert . Equal ( 1 , resultByVersionControl ) ;
31+ var rowCount = await _sqlBulkCopyCautiouslyService . CopyLatest ( sourceTable , targetTable ) ;
32+ Assert . Equal ( 1 , rowCount ) ;
33+
34+ var targetRows = await TestUtils . QueryTable ( _dockerFixture . TargetSqlDbConnectionString ,
35+ $ "SELECT [id], [notes], [timestamp] FROM { targetTable } ") ;
36+ Assert . Collection ( targetRows , row =>
37+ {
38+ Assert . Equal ( 1 , row [ 0 ] ) ;
39+ Assert . Equal ( "Note 1" , row [ 1 ] ) ;
40+ Assert . Equal ( 1 , ( ( DateTime ) row [ 2 ] ) . Day ) ;
41+ } , row =>
42+ {
43+ Assert . Equal ( 2 , row [ 0 ] ) ;
44+ Assert . Equal ( "Note 2" , row [ 1 ] ) ;
45+ Assert . Equal ( 1 , ( ( DateTime ) row [ 2 ] ) . Day ) ;
46+ } , row =>
47+ {
48+ Assert . Equal ( 3 , row [ 0 ] ) ;
49+ Assert . Equal ( "Note 3" , row [ 1 ] ) ;
50+ Assert . Equal ( 1 , ( ( DateTime ) row [ 2 ] ) . Day ) ;
51+ } , row =>
52+ {
53+ Assert . Equal ( 4 , row [ 0 ] ) ;
54+ Assert . Equal ( "Note 4" , row [ 1 ] ) ;
55+ Assert . Equal ( 1 , ( ( DateTime ) row [ 2 ] ) . Day ) ;
56+ } ) ;
57+ }
58+
59+ [ Fact ]
60+ public async Task CopiesLatestRowsByDate ( )
61+ {
62+ var sourceTable = "[dbo].[test_copying_latest_rows_by_date]" ;
63+ var targetTable = sourceTable ;
64+ var keyColumn = "[timestamp]" ;
65+ var rowCount = await _sqlBulkCopyCautiouslyService . CopyLatest ( sourceTable , targetTable , keyColumn ) ;
66+ Assert . Equal ( 3 , rowCount ) ;
67+
68+ var targetRows = await TestUtils . QueryTable ( _dockerFixture . TargetSqlDbConnectionString ,
69+ $ "SELECT [id], [notes], [timestamp] FROM { targetTable } ") ;
70+ Assert . Collection ( targetRows , row =>
71+ {
72+ Assert . Equal ( 1 , row [ 0 ] ) ;
73+ Assert . Equal ( "Note 1" , row [ 1 ] ) ;
74+ Assert . Equal ( 1 , ( ( DateTime ) row [ 2 ] ) . Day ) ;
75+ } , row =>
76+ {
77+ Assert . Equal ( 1 , row [ 0 ] ) ;
78+ Assert . Equal ( "Note 2" , row [ 1 ] ) ;
79+ Assert . Equal ( 2 , ( ( DateTime ) row [ 2 ] ) . Day ) ;
80+ } , row =>
81+ {
82+ Assert . Equal ( 1 , row [ 0 ] ) ;
83+ Assert . Equal ( "Note 3" , row [ 1 ] ) ;
84+ Assert . Equal ( 3 , ( ( DateTime ) row [ 2 ] ) . Day ) ;
85+ } , row =>
86+ {
87+ Assert . Equal ( 1 , row [ 0 ] ) ;
88+ Assert . Equal ( "Note 4" , row [ 1 ] ) ;
89+ Assert . Equal ( 4 , ( ( DateTime ) row [ 2 ] ) . Day ) ;
90+ } ) ;
4191 }
42-
92+
93+ [ Fact ]
94+ public async Task CopiesLatestRowsByBinary ( )
95+ {
96+ var sourceTable = "[dbo].[test_copying_latest_rows_by_binary]" ;
97+ var targetTable = sourceTable ;
98+ var keyColumn = "[version_control]" ;
99+ var rowCount = await _sqlBulkCopyCautiouslyService . CopyLatest ( sourceTable , targetTable , keyColumn ) ;
100+ Assert . Equal ( 2 , rowCount ) ;
101+
102+ var targetRows = await TestUtils . QueryTable ( _dockerFixture . TargetSqlDbConnectionString ,
103+ $ "SELECT [id], [notes], [timestamp], [version_control] FROM { targetTable } ") ;
104+ Assert . Collection ( targetRows , row =>
105+ {
106+ Assert . Equal ( 1 , row [ 0 ] ) ;
107+ Assert . Equal ( "Note 1" , row [ 1 ] ) ;
108+ Assert . Equal ( 1 , ( ( DateTime ) row [ 2 ] ) . Day ) ;
109+ Assert . Equal ( 1 , ( ( byte [ ] ) row [ 3 ] ) [ 3 ] ) ;
110+ } , row =>
111+ {
112+ Assert . Equal ( 1 , row [ 0 ] ) ;
113+ Assert . Equal ( "Note 2" , row [ 1 ] ) ;
114+ Assert . Equal ( 1 , ( ( DateTime ) row [ 2 ] ) . Day ) ;
115+ Assert . Equal ( 2 , ( ( byte [ ] ) row [ 3 ] ) [ 3 ] ) ;
116+ } , row =>
117+ {
118+ Assert . Equal ( 1 , row [ 0 ] ) ;
119+ Assert . Equal ( "Note 3" , row [ 1 ] ) ;
120+ Assert . Equal ( 1 , ( ( DateTime ) row [ 2 ] ) . Day ) ;
121+ Assert . Equal ( 3 , ( ( byte [ ] ) row [ 3 ] ) [ 3 ] ) ;
122+ } , row =>
123+ {
124+ Assert . Equal ( 1 , row [ 0 ] ) ;
125+ Assert . Equal ( "Note 4" , row [ 1 ] ) ;
126+ Assert . Equal ( 1 , ( ( DateTime ) row [ 2 ] ) . Day ) ;
127+ Assert . Equal ( 4 , ( ( byte [ ] ) row [ 3 ] ) [ 3 ] ) ;
128+ } ) ;
129+ }
130+
43131 [ Fact ]
44132 public async Task CopiesLatestRowsFromView ( )
45133 {
0 commit comments