Skip to content

Commit ee27bd2

Browse files
committed
test: add TransferFundsAsync 202 response test and use TryDeserialize methods
1 parent 4235009 commit ee27bd2

1 file changed

Lines changed: 54 additions & 2 deletions

File tree

Adyen.Test/Transfers/TransfersServiceTest.cs

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)