Skip to content

Commit d3b6ee1

Browse files
committed
refactor
1 parent 9ee8c87 commit d3b6ee1

File tree

2 files changed

+136
-143
lines changed

2 files changed

+136
-143
lines changed

tests/test_yookassa_api.pas

Lines changed: 31 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,16 @@ interface
1414

1515
TTestableCreatePayment = class(TYookassaCreatePaymentRequest)
1616
public
17-
function BuildRequestJSON: String; override;
1817
procedure TestToJSON;
1918
end;
2019

21-
{ TTestableCreateReceiptRequest }
22-
23-
TTestableCreateReceiptRequest = class(TYookassaCreateReceiptRequest)
24-
public
25-
function BuildRequestJSON: String; override;
26-
end;
27-
2820
{ TTestableGetPaymentRequest }
2921

3022
TTestableGetPaymentRequest = class(TYookassaGetPaymentRequest)
3123
private
3224
class var FTestRaw: TJSONObject;
3325
protected
3426
function DoExecute: String; override;
35-
function BuildRequestJSON: string; override;
3627
function CreateResponse(aRaw: TJSONObject): TYookassaResponse; override;
3728
class property TestRaw: TJSONObject read FTestRaw write FTestRaw;
3829
end;
@@ -88,21 +79,9 @@ implementation
8879

8980
{ TTestableCreatePayment }
9081

91-
function TTestableCreatePayment.BuildRequestJSON: String;
92-
begin
93-
Result:=inherited BuildRequestJSON;
94-
end;
95-
9682
procedure TTestableCreatePayment.TestToJSON;
9783
begin
98-
BuildRequestJSON;
99-
end;
100-
101-
{ TTestableCreateReceiptRequest }
102-
103-
function TTestableCreateReceiptRequest.BuildRequestJSON: String;
104-
begin
105-
Result:=inherited BuildRequestJSON;
84+
ToJSON.Free;
10685
end;
10786

10887
{ TTestableGetPaymentRequest }
@@ -114,11 +93,6 @@ function TTestableGetPaymentRequest.DoExecute: String;
11493
Result:=FTestRaw.AsJSON;
11594
end;
11695

117-
function TTestableGetPaymentRequest.BuildRequestJSON: string;
118-
begin
119-
Result:=inherited BuildRequestJSON;
120-
end;
121-
12296
function TTestableGetPaymentRequest.CreateResponse(aRaw: TJSONObject): TYookassaResponse;
12397
begin
12498
Result:=inherited CreateResponse(aRaw);
@@ -186,10 +160,16 @@ procedure TTestYooKassa.TearDown;
186160

187161
procedure TTestYooKassa.TestBuildRequestData;
188162
var
189-
aJSON: String;
163+
o: TJSONObject;
164+
aJSON: TJSONStringType;
190165
begin
191166
FillPaymentData(FPaymentRequest);
192-
aJSON := FPaymentRequest.BuildRequestJSON;
167+
o := FPaymentRequest.ToJSON;
168+
try
169+
aJSON:=o.AsJSON;
170+
finally
171+
o.Free;
172+
end;
193173
AssertTrue(Pos('"amount"', aJSON) > 0);
194174
AssertTrue(Pos('"value" : "123.45"', aJSON) > 0);
195175
end;
@@ -202,10 +182,16 @@ procedure TTestYooKassa.TestCreatePaymentStatic;
202182
procedure TTestYooKassa.TestGetPaymentRequest_BuildRequestJSON;
203183
var
204184
aReq: TTestableGetPaymentRequest;
185+
o: TJSONObject;
205186
begin
206187
aReq := TTestableGetPaymentRequest.Create;
207188
try
208-
AssertEquals('GET request should have no body', '', aReq.BuildRequestJSON);
189+
o:=aReq.ToJSON;
190+
try
191+
AssertNull('GET request should have no body', o);
192+
finally
193+
o.Free;
194+
end;
209195
finally
210196
aReq.Free;
211197
end;
@@ -435,43 +421,39 @@ procedure TTestYooKassa.TestReceiptWithTaxSystemCodeToJSON;
435421

436422
procedure TTestYooKassa.TestReceiptRequestBuildJSON;
437423
var
438-
aJSON: String;
439-
aParsedJSON: TJSONObject;
424+
aJSON: TJSONObject;
440425
begin
441426
AddProductToReceipt(FReceiptRequest.Receipt, 'Тестовый товар', 1);
442427

443428
FReceiptRequest.ReceiptType := 'payment';
444429
FReceiptRequest.Send := True;
445430

446-
aJSON := FReceiptRequest.BuildRequestJSON;
447-
aParsedJSON := TJSONObject(GetJSON(aJSON));
431+
aJSON := FReceiptRequest.ToJSON;
448432
try
449-
AssertEquals('payment', aParsedJSON.Strings['type']);
450-
AssertEquals(True, aParsedJSON.Booleans['send']);
433+
AssertEquals('payment', aJSON.Strings['type']);
434+
AssertEquals(True, aJSON.Booleans['send']);
451435
finally
452-
aParsedJSON.Free;
436+
aJSON.Free;
453437
end;
454438
end;
455439

456440
procedure TTestYooKassa.TestReceiptRequestBuildRefundJSON;
457441
var
458-
aJSON: String;
459-
aParsedJSON: TJSONObject;
442+
aJSON: TJSONObject;
460443
begin
461444
AddProductToReceipt(FReceiptRequest.Receipt, 'Возврат товара', 2);
462445

463446
FReceiptRequest.ReceiptType := 'refund';
464447
FReceiptRequest.PaymentId := 'payment_123456';
465448
FReceiptRequest.Send := False;
466449

467-
aJSON := FReceiptRequest.BuildRequestJSON;
468-
aParsedJSON := TJSONObject(GetJSON(aJSON));
450+
aJSON := FReceiptRequest.ToJSON;
469451
try
470-
AssertEquals('refund', aParsedJSON.Strings['type']);
471-
AssertEquals(False, aParsedJSON.Booleans['send']);
472-
AssertEquals('payment_123456', aParsedJSON.Strings['payment_id']);
452+
AssertEquals('refund', aJSON.Strings['type']);
453+
AssertEquals(False, aJSON.Booleans['send']);
454+
AssertEquals('payment_123456', aJSON.Strings['payment_id']);
473455
finally
474-
aParsedJSON.Free;
456+
aJSON.Free;
475457
end;
476458
end;
477459

@@ -528,7 +510,7 @@ procedure TTestYooKassa.TestReceiver_BankAccount_ToJSON;
528510
aPayment.Receiver.AccountNumber := '12345678901234567890';
529511
aPayment.Receiver.Bic := '044525225';
530512

531-
aJSON := TJSONObject(GetJSON(aPayment.BuildRequestJSON));
513+
aJSON := aPayment.ToJSON;
532514
try
533515
AssertTrue('receiver must be in JSON', Assigned(aJSON.Find('receiver')));
534516
aReceiver := aJSON.Objects['receiver'];
@@ -554,7 +536,7 @@ procedure TTestYooKassa.TestReceiver_MobileBalance_ToJSON;
554536
aPayment.Receiver.ReceiverType := rtMobileBalance;
555537
aPayment.Receiver.Phone := '79001234567';
556538

557-
aJSON := TJSONObject(GetJSON(aPayment.BuildRequestJSON));
539+
aJSON := aPayment.ToJSON;
558540
try
559541
AssertTrue('receiver must be in JSON', Assigned(aJSON.Find('receiver')));
560542
aReceiver := aJSON.Objects['receiver'];
@@ -581,7 +563,7 @@ procedure TTestYooKassa.TestReceiver_DigitalWallet_ToJSON;
581563
aPayment.Receiver.ReceiverType := rtDigitalWallet;
582564
aPayment.Receiver.AccountNumber := 'W1234567890';
583565

584-
aJSON := TJSONObject(GetJSON(aPayment.BuildRequestJSON));
566+
aJSON := aPayment.ToJSON;
585567
try
586568
AssertTrue('receiver must be in JSON', Assigned(aJSON.Find('receiver')));
587569
aReceiver := aJSON.Objects['receiver'];
@@ -645,7 +627,7 @@ procedure TTestYooKassa.TestSettlements_ToJSON;
645627

646628
AddProductToReceipt(aReceiptReq.Receipt, 'Некий продукт');
647629

648-
aJSON := TJSONObject(GetJSON(aReceiptReq.BuildRequestJSON));
630+
aJSON := aReceiptReq.ToJSON;
649631
try
650632
AssertTrue('Settlements array must be in JSON', Assigned(aJSON.Find('settlements')));
651633
aSettlementsArray := aJSON.Arrays['settlements'];

0 commit comments

Comments
 (0)