-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPaypalEventHandlerTest.apxc
More file actions
61 lines (49 loc) · 2.85 KB
/
PaypalEventHandlerTest.apxc
File metadata and controls
61 lines (49 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
@isTest
private class PaypalEventHandlerTest {
// https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNandPDTVariables/
static testMethod void shouldParseDateTimeFromUtcIso() {
RestRequest restRequest = createRequest();
restRequest.params.put('payment_date', '2019-10-27T15:59:30.00Z');
DateTime parsedDate = DateTime.newInstanceGmt(2019, 10, 27, 15, 59, 30);
PaypalEventHandler.handle();
Paypal_Transaction__c createdTransaction = [SELECT Date_Time__c FROM Paypal_Transaction__c
WHERE Transaction_Id__c=:'unique_test_object'];
System.assertEquals(parsedDate, createdTransaction.Date_Time__c);
}
static testMethod void shouldSetNetAmountToGrossAmountMinusFees() {
RestRequest restRequest = createRequest();
restRequest.params.put('mc_gross', '12.34');
restRequest.params.put('mc_fee', '1.23');
PaypalEventHandler.handle();
Paypal_Transaction__c createdTransaction = [SELECT Net_Amount__c, Gross_Amount__c, Fee_Amount__c FROM Paypal_Transaction__c
WHERE Transaction_Id__c=:'unique_test_object'];
System.assertEquals(11.11, createdTransaction.Net_Amount__c);
System.assertEquals(12.34, createdTransaction.Gross_Amount__c);
System.assertEquals(1.23, createdTransaction.Fee_Amount__c);
}
static testMethod void shouldSetNullInvoiceWhenNotProvidedInRequest() {
RestRequest restRequest = createRequest();
PaypalEventHandler.handle();
Paypal_Transaction__c createdTransaction = [SELECT Invoice_Id__c FROM Paypal_Transaction__c
WHERE Transaction_Id__c=:'unique_test_object'];
System.assertEquals(null, createdTransaction.Invoice_Id__c);
}
static testMethod void shouldSetNameUsingLastAndFirst() {
RestRequest restRequest = createRequest();
restRequest.addParameter('first_name', 'Tim');
restRequest.addParameter('last_name', 'AlsoTim');
PaypalEventHandler.handle();
Paypal_Transaction__c createdTransaction = [SELECT Name__c FROM Paypal_Transaction__c
WHERE Transaction_Id__c=:'unique_test_object'];
System.assertEquals('AlsoTim, Tim', createdTransaction.Name__c);
}
private static RestRequest createRequest() {
RestRequest restRequest = new RestRequest();
restRequest.params.put('txn_id', 'unique_test_object');
restRequest.params.put('payment_date', '2019-10-27T15:59:30.00Z');
restRequest.params.put('mc_gross', '1.23');
restRequest.params.put('mc_fee', '0.23');
RestContext.request = restRequest;
return restRequest;
}
}