@@ -59,4 +59,35 @@ public async Task Submit_With_EffectTime_Should_Succeed_Later()
5959 status = await ITTestHelper . GetTranStatus ( gid ) ;
6060 Assert . Equal ( "succeed" , status ) ;
6161 }
62+
63+ [ Fact ]
64+ public async Task Submit_With_NextCronTime_Should_Succeed_Later ( )
65+ {
66+ var provider = ITTestHelper . AddDtmHttp ( ) ;
67+ var transFactory = provider . GetRequiredService < Dtmcli . IDtmTransFactory > ( ) ;
68+
69+ var gid = "msgTestGid" + Guid . NewGuid ( ) . ToString ( ) ;
70+ DateTime effectTime = DateTime . Now . AddSeconds ( 10 ) ;
71+ var msg = transFactory . NewMsg ( gid , effectTime ) ;
72+ var req = ITTestHelper . GenBusiReq ( false , false ) ;
73+ var busiUrl = ITTestHelper . BuisHttpUrl ;
74+ msg . Add ( busiUrl + "/busi.Busi/TransOut" , req )
75+ . Add ( busiUrl + "/busi.Busi/TransIn" , req ) ;
76+
77+ await msg . Prepare ( busiUrl + "/busi.Busi/QueryPrepared_404" ) ;
78+ await msg . Submit ( ) ;
79+
80+ // Since the downstream execution is delayed by 10 seconds, it will be 'submitted' after 2 seconds and 'succeed' after 15 seconds
81+ await Task . Delay ( TimeSpan . FromSeconds ( 0 ) ) ;
82+ var status = await ITTestHelper . GetTranStatus ( gid ) ;
83+ Assert . Equal ( "submitted" , status ) ;
84+
85+ await Task . Delay ( TimeSpan . FromSeconds ( 2 ) ) ;
86+ status = await ITTestHelper . GetTranStatus ( gid ) ;
87+ Assert . Equal ( "submitted" , status ) ;
88+
89+ await Task . Delay ( TimeSpan . FromSeconds ( 13 ) ) ;
90+ status = await ITTestHelper . GetTranStatus ( gid ) ;
91+ Assert . Equal ( "succeed" , status ) ;
92+ }
6293}
0 commit comments