11using Apps72 . Dev . Data . DbMocker ;
2+ using Microsoft . Extensions . DependencyInjection ;
23using Moq ;
34using System ;
45using System . Collections . Generic ;
@@ -12,6 +13,18 @@ namespace Dtmcli.Tests
1213{
1314 public class MsgTests
1415 {
16+ private readonly IBranchBarrierFactory _branchBarrierFactory ;
17+
18+ private static readonly string busi = "http://localhost:8081/busisvc" ;
19+
20+ public MsgTests ( )
21+ {
22+ var provider = TestHelper . AddDtmCli ( ) ;
23+
24+ var factory = provider . GetRequiredService < IBranchBarrierFactory > ( ) ;
25+ _branchBarrierFactory = factory ;
26+ }
27+
1528 [ Fact ]
1629 public async void Submit_Should_Succeed ( )
1730 {
@@ -25,9 +38,7 @@ public async void Submit_Should_Succeed()
2538 var dtmClient = new DtmClient ( fakeFactory . Object , Microsoft . Extensions . Options . Options . Create ( dtmOptions ) ) ;
2639
2740 var gid = "TestMsgNormal" ;
28- var msg = new Msg ( dtmClient , gid ) ;
29-
30- var busi = "http://localhost:8081/api/busi" ;
41+ var msg = new Msg ( dtmClient , _branchBarrierFactory , gid ) ;
3142
3243 var req = new { Amount = 30 } ;
3344
@@ -53,12 +64,10 @@ public async void Submit_Should_Succeed()
5364 public async void DoAndSubmitDB_Should_Throw_Exception_When_Transbase_InValid ( )
5465 {
5566 var dtmClient = new Mock < IDtmClient > ( ) ;
56- MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_PREPARE , true ) ;
67+ TestHelper . MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_PREPARE , true ) ;
5768
5869 var gid = string . Empty ;
59- var msg = new Msg ( dtmClient . Object , gid ) ;
60-
61- var busi = "http://localhost:8081/api/busi" ;
70+ var msg = new Msg ( dtmClient . Object , _branchBarrierFactory , gid ) ;
6271
6372 var req = new { Amount = 30 } ;
6473
@@ -73,12 +82,10 @@ public async void DoAndSubmitDB_Should_Throw_Exception_When_Transbase_InValid()
7382 public async void DoAndSubmitDB_Should_Not_Call_Barrier_When_Prepare_Fail ( )
7483 {
7584 var dtmClient = new Mock < IDtmClient > ( ) ;
76- MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_PREPARE , false ) ;
85+ TestHelper . MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_PREPARE , false ) ;
7786
7887 var gid = "TestMsgNormal" ;
79- var msg = new Msg ( dtmClient . Object , gid ) ;
80-
81- var busi = "http://localhost:8081/api/busi" ;
88+ var msg = new Msg ( dtmClient . Object , _branchBarrierFactory , gid ) ;
8289
8390 var req = new { Amount = 30 } ;
8491
@@ -97,13 +104,11 @@ public async void DoAndSubmitDB_Should_Not_Call_Barrier_When_Prepare_Fail()
97104 public async void DoAndSubmitDB_Should_Succeed ( )
98105 {
99106 var dtmClient = new Mock < IDtmClient > ( ) ;
100- MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_PREPARE , true ) ;
101- MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_SUBMIT , true ) ;
107+ TestHelper . MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_PREPARE , true ) ;
108+ TestHelper . MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_SUBMIT , true ) ;
102109
103110 var gid = "TestMsgNormal" ;
104- var msg = new Msg ( dtmClient . Object , gid ) ;
105-
106- var busi = "http://localhost:8081/api/busi" ;
111+ var msg = new Msg ( dtmClient . Object , _branchBarrierFactory , gid ) ;
107112
108113 var req = new { Amount = 30 } ;
109114
@@ -126,13 +131,11 @@ public async void DoAndSubmitDB_Should_Succeed()
126131 public async void DoAndSubmitDB_Should_Abort_When_BusiCall_ThrowExeption_With_ResultFailure ( )
127132 {
128133 var dtmClient = new Mock < IDtmClient > ( ) ;
129- MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_PREPARE , true ) ;
130- MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_ABORT , true ) ;
134+ TestHelper . MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_PREPARE , true ) ;
135+ TestHelper . MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_ABORT , true ) ;
131136
132137 var gid = "TestMsgNormal" ;
133- var msg = new Msg ( dtmClient . Object , gid ) ;
134-
135- var busi = "http://localhost:8081/api/busi" ;
138+ var msg = new Msg ( dtmClient . Object , _branchBarrierFactory , gid ) ;
136139
137140 var req = new { Amount = 30 } ;
138141
@@ -155,15 +158,13 @@ public async void DoAndSubmitDB_Should_Abort_When_BusiCall_ThrowExeption_With_Re
155158 public async void DoAndSubmitDB_Should_QueryPrepared_When_BusiCall_ThrowExeption_Without_ResultFailure ( )
156159 {
157160 var dtmClient = new Mock < IDtmClient > ( ) ;
158- MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_PREPARE , true ) ;
159- MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_ABORT , true ) ;
160- MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_SUBMIT , true ) ;
161- MockTransRequestBranch ( dtmClient , System . Net . HttpStatusCode . OK ) ;
161+ TestHelper . MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_PREPARE , true ) ;
162+ TestHelper . MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_ABORT , true ) ;
163+ TestHelper . MockTransCallDtm ( dtmClient , Constant . Request . OPERATION_SUBMIT , true ) ;
164+ TestHelper . MockTransRequestBranch ( dtmClient , System . Net . HttpStatusCode . OK ) ;
162165
163166 var gid = "TestMsgNormal" ;
164- var msg = new Msg ( dtmClient . Object , gid ) ;
165-
166- var busi = "http://localhost:8081/api/busi" ;
167+ var msg = new Msg ( dtmClient . Object , _branchBarrierFactory , gid ) ;
167168
168169 var req = new { Amount = 30 } ;
169170
@@ -181,24 +182,7 @@ public async void DoAndSubmitDB_Should_QueryPrepared_When_BusiCall_ThrowExeption
181182 Assert . False ( res ) ;
182183 dtmClient . Verify ( x => x . TransRequestBranch ( It . IsAny < DtmImp . TransBase > ( ) , It . IsAny < HttpMethod > ( ) , It . IsAny < object > ( ) , It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < CancellationToken > ( ) ) , Times . Once ) ;
183184 }
184-
185- private void MockTransCallDtm ( Mock < IDtmClient > mock , string op , bool result )
186- {
187- mock
188- . Setup ( x => x . TransCallDtm ( It . IsAny < DtmImp . TransBase > ( ) , It . IsAny < object > ( ) , op , It . IsAny < CancellationToken > ( ) ) )
189- . Returns ( Task . FromResult ( result ) ) ;
190- }
191-
192- private void MockTransRequestBranch ( Mock < IDtmClient > mock , System . Net . HttpStatusCode statusCode )
193- {
194- var httpRspMsg = new HttpResponseMessage ( statusCode ) ;
195- httpRspMsg . Content = new StringContent ( "content" ) ;
196-
197- mock
198- . Setup ( x => x . TransRequestBranch ( It . IsAny < DtmImp . TransBase > ( ) , It . IsAny < HttpMethod > ( ) , It . IsAny < object > ( ) , It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < CancellationToken > ( ) ) )
199- . Returns ( Task . FromResult ( httpRspMsg ) ) ;
200- }
201-
185+
202186 public class MsgMockHttpMessageHandler : DelegatingHandler
203187 {
204188 public MsgMockHttpMessageHandler ( )
0 commit comments