@@ -53,9 +53,61 @@ public async Task TransferFundsAsync_Returns200Ok_WithCorrectVerbAndPath()
5353 var response = await transfersService . TransferFundsAsync ( transferInfo ) ;
5454
5555 // Assert - response
56- Assert . IsTrue ( response . IsOk ) ;
56+ Assert . IsTrue ( response . TryDeserializeOkResponse ( out var transfer ) ) ;
5757 Assert . IsFalse ( response . IsAccepted ) ;
58- var transfer = response . Ok ( ) ;
58+ Assert . IsNotNull ( transfer ) ;
59+ Assert . AreEqual ( "1W1UG35U8A9J5ZLG" , transfer . Id ) ;
60+ Assert . AreEqual ( Transfer . StatusEnum . Authorised , transfer . Status ) ;
61+ Assert . AreEqual ( Transfer . CategoryEnum . Bank , transfer . Category ) ;
62+
63+ // Assert - HTTP verb and path
64+ Assert . IsNotNull ( capturedRequest ) ;
65+ Assert . AreEqual ( HttpMethod . Post , capturedRequest . Method ) ;
66+ Assert . IsNotNull ( capturedRequest . RequestUri ) ;
67+ Assert . AreEqual ( "/btl/v4/transfers" , capturedRequest . RequestUri . AbsolutePath ) ;
68+ }
69+
70+ [ TestMethod ]
71+ public async Task TransferFundsAsync_Returns202Accepted_WithCorrectVerbAndPath ( )
72+ {
73+ // Arrange
74+ string json = TestUtilities . GetTestFileContent ( "mocks/transfers/transfer-funds.json" ) ;
75+
76+ HttpRequestMessage ? capturedRequest = null ;
77+ var mockHandler = new MockDelegatingHandler ( request =>
78+ {
79+ capturedRequest = request ;
80+ return new HttpResponseMessage ( HttpStatusCode . Accepted )
81+ {
82+ Content = new StringContent ( json , Encoding . UTF8 , "application/json" )
83+ } ;
84+ } ) ;
85+
86+ IHost testHost = Host . CreateDefaultBuilder ( )
87+ . ConfigureTransfers ( ( context , services , config ) =>
88+ {
89+ config . ConfigureAdyenOptions ( options => { options . Environment = AdyenEnvironment . Test ; } ) ;
90+ services . AddTransfersService ( httpClientBuilderOptions : builder =>
91+ {
92+ builder . AddHttpMessageHandler ( ( ) => mockHandler ) ;
93+ } ) ;
94+ } )
95+ . Build ( ) ;
96+
97+ var transfersService = testHost . Services . GetRequiredService < ITransfersService > ( ) ;
98+ var transferInfo = new TransferInfo
99+ {
100+ Amount = new Amount { Currency = "EUR" , Value = 110000 } ,
101+ Category = TransferInfo . CategoryEnum . Bank ,
102+ Counterparty = new CounterpartyInfoV3 ( )
103+ } ;
104+
105+ // Act
106+ var response = await transfersService . TransferFundsAsync ( transferInfo ) ;
107+
108+ // Assert - response
109+ Assert . IsFalse ( response . IsOk ) ;
110+ Assert . IsTrue ( response . TryDeserializeAcceptedResponse ( out var transfer ) ) ;
59111 Assert . IsNotNull ( transfer ) ;
60112 Assert . AreEqual ( "1W1UG35U8A9J5ZLG" , transfer . Id ) ;
61113 Assert . AreEqual ( Transfer . StatusEnum . Authorised , transfer . Status ) ;
0 commit comments