defra_ruby_mocks 1.4.1 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +24 -0
- data/app/controllers/defra_ruby_mocks/worldpay_controller.rb +8 -3
- data/app/services/defra_ruby_mocks/worldpay_response_service.rb +33 -8
- data/lib/defra_ruby_mocks/version.rb +1 -1
- data/spec/dummy/log/test.log +716 -0
- data/spec/examples.txt +94 -78
- data/spec/requests/worldpay_spec.rb +25 -4
- data/spec/services/worldpay_response_service_spec.rb +137 -20
- metadata +2 -2
data/spec/examples.txt
CHANGED
@@ -1,83 +1,99 @@
|
|
1
1
|
example_id | status | run_time |
|
2
2
|
------------------------------------------------------------------- | ------ | --------------- |
|
3
|
-
./spec/defra_ruby_mocks_spec.rb[1:1:1] | passed | 0.
|
4
|
-
./spec/defra_ruby_mocks_spec.rb[1:2:1:1] | passed | 0.
|
5
|
-
./spec/defra_ruby_mocks_spec.rb[1:2:2:1] | passed | 0.
|
6
|
-
./spec/lib/configuration_spec.rb[1:1:1:1] | passed | 0.
|
7
|
-
./spec/lib/configuration_spec.rb[1:1:2:1] | passed | 0.
|
8
|
-
./spec/lib/configuration_spec.rb[1:1:3:1] | passed | 0.
|
9
|
-
./spec/lib/configuration_spec.rb[1:1:4:1] | passed | 0.
|
3
|
+
./spec/defra_ruby_mocks_spec.rb[1:1:1] | passed | 0.00949 seconds |
|
4
|
+
./spec/defra_ruby_mocks_spec.rb[1:2:1:1] | passed | 0.00016 seconds |
|
5
|
+
./spec/defra_ruby_mocks_spec.rb[1:2:2:1] | passed | 0.00015 seconds |
|
6
|
+
./spec/lib/configuration_spec.rb[1:1:1:1] | passed | 0.0001 seconds |
|
7
|
+
./spec/lib/configuration_spec.rb[1:1:2:1] | passed | 0.0001 seconds |
|
8
|
+
./spec/lib/configuration_spec.rb[1:1:3:1] | passed | 0.00009 seconds |
|
9
|
+
./spec/lib/configuration_spec.rb[1:1:4:1] | passed | 0.0001 seconds |
|
10
10
|
./spec/lib/configuration_spec.rb[1:2:1:1] | passed | 0.00009 seconds |
|
11
|
-
./spec/lib/configuration_spec.rb[1:2:2:1] | passed | 0.
|
12
|
-
./spec/lib/configuration_spec.rb[1:2:3:1] | passed | 0.
|
13
|
-
./spec/lib/configuration_spec.rb[1:2:4:1] | passed | 0.
|
14
|
-
./spec/requests/company_spec.rb[1:1:1:1] | passed | 0.
|
15
|
-
./spec/requests/company_spec.rb[1:1:2:1] | passed | 0.
|
16
|
-
./spec/requests/company_spec.rb[1:1:3:1:1] | passed | 0.
|
17
|
-
./spec/requests/company_spec.rb[1:1:3:2:1] | passed | 0.
|
18
|
-
./spec/requests/company_spec.rb[1:2:1] | passed | 0.
|
19
|
-
./spec/requests/worldpay_spec.rb[1:1:1:1:1:1] | passed | 0.
|
20
|
-
./spec/requests/worldpay_spec.rb[1:1:1:1:2:1] | passed | 0.
|
21
|
-
./spec/requests/worldpay_spec.rb[1:1:1:2:1:1] | passed | 0.
|
22
|
-
./spec/requests/worldpay_spec.rb[1:1:2:1:1:1] | passed | 0.
|
23
|
-
./spec/requests/worldpay_spec.rb[1:1:2:1:2:1] | passed | 0.
|
24
|
-
./spec/requests/worldpay_spec.rb[1:1:2:2:1:1] | passed | 0.
|
25
|
-
./spec/requests/worldpay_spec.rb[1:2:1:1] | passed | 0.
|
26
|
-
./spec/requests/worldpay_spec.rb[1:2:2:1] | passed | 0.
|
27
|
-
./spec/services/companies_house_service_spec.rb[1:1:1:1] | passed | 0.
|
28
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:1:1] | passed | 0.
|
29
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:2:1] | passed | 0.
|
30
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:3:1] | passed | 0.
|
11
|
+
./spec/lib/configuration_spec.rb[1:2:2:1] | passed | 0.00115 seconds |
|
12
|
+
./spec/lib/configuration_spec.rb[1:2:3:1] | passed | 0.00009 seconds |
|
13
|
+
./spec/lib/configuration_spec.rb[1:2:4:1] | passed | 0.0001 seconds |
|
14
|
+
./spec/requests/company_spec.rb[1:1:1:1] | passed | 0.04773 seconds |
|
15
|
+
./spec/requests/company_spec.rb[1:1:2:1] | passed | 0.00765 seconds |
|
16
|
+
./spec/requests/company_spec.rb[1:1:3:1:1] | passed | 0.00364 seconds |
|
17
|
+
./spec/requests/company_spec.rb[1:1:3:2:1] | passed | 0.00421 seconds |
|
18
|
+
./spec/requests/company_spec.rb[1:2:1] | passed | 0.00804 seconds |
|
19
|
+
./spec/requests/worldpay_spec.rb[1:1:1:1:1:1] | passed | 0.01734 seconds |
|
20
|
+
./spec/requests/worldpay_spec.rb[1:1:1:1:2:1] | passed | 0.00482 seconds |
|
21
|
+
./spec/requests/worldpay_spec.rb[1:1:1:2:1:1] | passed | 0.0217 seconds |
|
22
|
+
./spec/requests/worldpay_spec.rb[1:1:2:1:1:1] | passed | 0.00433 seconds |
|
23
|
+
./spec/requests/worldpay_spec.rb[1:1:2:1:2:1] | passed | 0.00844 seconds |
|
24
|
+
./spec/requests/worldpay_spec.rb[1:1:2:2:1:1] | passed | 0.00496 seconds |
|
25
|
+
./spec/requests/worldpay_spec.rb[1:2:1:1] | passed | 0.00303 seconds |
|
26
|
+
./spec/requests/worldpay_spec.rb[1:2:2:1] | passed | 0.00199 seconds |
|
27
|
+
./spec/services/companies_house_service_spec.rb[1:1:1:1] | passed | 0.00011 seconds |
|
28
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:1:1] | passed | 0.00009 seconds |
|
29
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:2:1] | passed | 0.00011 seconds |
|
30
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:3:1] | passed | 0.00013 seconds |
|
31
31
|
./spec/services/companies_house_service_spec.rb[1:1:2:4:1] | passed | 0.00009 seconds |
|
32
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:5:1] | passed | 0.
|
33
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:6:1] | passed | 0.
|
34
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:7:1] | passed | 0.
|
35
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:8:1] | passed | 0.
|
36
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:9:1] | passed | 0.
|
37
|
-
./spec/services/companies_house_service_spec.rb[1:1:3:1:1] | passed | 0.
|
38
|
-
./spec/services/companies_house_service_spec.rb[1:1:3:2:1] | passed | 0.
|
39
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:1:1] | passed | 0.
|
40
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:1] | passed | 0.
|
41
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:2] | passed | 0.
|
42
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:3] | passed | 0.
|
43
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:4] | passed | 0.
|
44
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:5:1] | passed | 0.
|
45
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:5:2] | passed | 0.
|
46
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:5:3] | passed | 0.
|
47
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:6:1] | passed | 0.
|
48
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:3:1] | passed | 0.
|
49
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:1] | passed | 0.
|
50
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:2] | passed | 0.
|
51
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:3] | passed | 0.
|
32
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:5:1] | passed | 0.00008 seconds |
|
33
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:6:1] | passed | 0.00008 seconds |
|
34
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:7:1] | passed | 0.00011 seconds |
|
35
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:8:1] | passed | 0.00012 seconds |
|
36
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:9:1] | passed | 0.00009 seconds |
|
37
|
+
./spec/services/companies_house_service_spec.rb[1:1:3:1:1] | passed | 0.0001 seconds |
|
38
|
+
./spec/services/companies_house_service_spec.rb[1:1:3:2:1] | passed | 0.00015 seconds |
|
39
|
+
./spec/services/worldpay_payment_service_spec.rb[1:1:1:1] | passed | 0.00014 seconds |
|
40
|
+
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:1] | passed | 0.00123 seconds |
|
41
|
+
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:2] | passed | 0.00171 seconds |
|
42
|
+
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:3] | passed | 0.00041 seconds |
|
43
|
+
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:4] | passed | 0.00052 seconds |
|
44
|
+
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:5:1] | passed | 0.00039 seconds |
|
45
|
+
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:5:2] | passed | 0.00051 seconds |
|
46
|
+
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:5:3] | passed | 0.00046 seconds |
|
47
|
+
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:6:1] | passed | 0.0005 seconds |
|
48
|
+
./spec/services/worldpay_payment_service_spec.rb[1:1:3:1] | passed | 0.00192 seconds |
|
49
|
+
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:1] | passed | 0.00072 seconds |
|
50
|
+
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:2] | passed | 0.00049 seconds |
|
51
|
+
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:3] | passed | 0.00047 seconds |
|
52
52
|
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:4] | passed | 0.00066 seconds |
|
53
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:5] | passed | 0.
|
54
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:6] | passed | 0.
|
55
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:7] | passed | 0.
|
56
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:2:1] | passed | 0.
|
57
|
-
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:1:1] | passed | 0.
|
58
|
-
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:1:2] | passed | 0.
|
59
|
-
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:2:1] | passed | 0.
|
60
|
-
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:2:2] | passed | 0.
|
61
|
-
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:3:1] | passed | 0.
|
62
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:1:1] | passed | 0.
|
63
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:1:2] | passed | 0.
|
64
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:1:3] | passed | 0.
|
65
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:1:4] | passed | 0.
|
66
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:2:1] | passed | 0.
|
67
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:2:2] | passed | 0.
|
68
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:2:3] | passed | 0.
|
69
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:2:4] | passed | 0.
|
70
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:3:1] | passed | 0.
|
71
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:4:1] | passed | 0.
|
72
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:1] | passed | 0.
|
73
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:2] | passed | 0.
|
74
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:3]
|
75
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:
|
76
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:
|
77
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:
|
78
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:
|
79
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:
|
80
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:
|
81
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:
|
82
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:
|
83
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:
|
53
|
+
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:5] | passed | 0.00065 seconds |
|
54
|
+
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:6] | passed | 0.00056 seconds |
|
55
|
+
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:7] | passed | 0.00066 seconds |
|
56
|
+
./spec/services/worldpay_refund_service_spec.rb[1:1:2:1] | passed | 0.00215 seconds |
|
57
|
+
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:1:1] | passed | 0.00095 seconds |
|
58
|
+
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:1:2] | passed | 0.00093 seconds |
|
59
|
+
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:2:1] | passed | 0.02227 seconds |
|
60
|
+
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:2:2] | passed | 0.00086 seconds |
|
61
|
+
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:3:1] | passed | 0.00052 seconds |
|
62
|
+
./spec/services/worldpay_resource_service_spec.rb[1:1:1:1] | passed | 0.00064 seconds |
|
63
|
+
./spec/services/worldpay_resource_service_spec.rb[1:1:1:2] | passed | 0.00057 seconds |
|
64
|
+
./spec/services/worldpay_resource_service_spec.rb[1:1:1:3] | passed | 0.00061 seconds |
|
65
|
+
./spec/services/worldpay_resource_service_spec.rb[1:1:1:4] | passed | 0.00064 seconds |
|
66
|
+
./spec/services/worldpay_resource_service_spec.rb[1:1:2:1] | passed | 0.0007 seconds |
|
67
|
+
./spec/services/worldpay_resource_service_spec.rb[1:1:2:2] | passed | 0.00063 seconds |
|
68
|
+
./spec/services/worldpay_resource_service_spec.rb[1:1:2:3] | passed | 0.0007 seconds |
|
69
|
+
./spec/services/worldpay_resource_service_spec.rb[1:1:2:4] | passed | 0.00066 seconds |
|
70
|
+
./spec/services/worldpay_resource_service_spec.rb[1:1:3:1] | passed | 0.0028 seconds |
|
71
|
+
./spec/services/worldpay_resource_service_spec.rb[1:1:4:1] | passed | 0.00066 seconds |
|
72
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:1] | passed | 0.0006 seconds |
|
73
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:2] | passed | 0.00056 seconds |
|
74
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:3:1] | passed | 0.00058 seconds |
|
75
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:3:2] | passed | 0.00052 seconds |
|
76
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:4:1] | passed | 0.00054 seconds |
|
77
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:4:2] | passed | 0.00057 seconds |
|
78
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:5:1] | passed | 0.00041 seconds |
|
79
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:5:2] | passed | 0.00046 seconds |
|
80
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:6:1] | passed | 0.0006 seconds |
|
81
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:6:2] | passed | 0.00063 seconds |
|
82
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:7:1] | passed | 0.00055 seconds |
|
83
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:7:2] | passed | 0.00062 seconds |
|
84
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:8:1] | passed | 0.00058 seconds |
|
85
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:8:2] | passed | 0.00064 seconds |
|
86
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:1] | passed | 0.00072 seconds |
|
87
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:2] | passed | 0.00056 seconds |
|
88
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:3:1] | passed | 0.00063 seconds |
|
89
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:3:2] | passed | 0.00059 seconds |
|
90
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:4:1] | passed | 0.00056 seconds |
|
91
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:4:2] | passed | 0.00056 seconds |
|
92
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:5:1] | passed | 0.00069 seconds |
|
93
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:5:2] | passed | 0.00055 seconds |
|
94
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:6:1] | passed | 0.00058 seconds |
|
95
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:6:2] | passed | 0.00074 seconds |
|
96
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:7:1] | passed | 0.00063 seconds |
|
97
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:7:2] | passed | 0.00058 seconds |
|
98
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:8:1] | passed | 0.00064 seconds |
|
99
|
+
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:8:2] | passed | 0.00063 seconds |
|
@@ -59,8 +59,22 @@ module DefraRubyMocks
|
|
59
59
|
end
|
60
60
|
|
61
61
|
context "#dispatcher" do
|
62
|
+
let(:success_url) { "http://example.com/fo/12345/worldpay/success" }
|
63
|
+
let(:failure_url) { "http://example.com/fo/12345/worldpay/failure" }
|
64
|
+
let(:pending_url) { "http://example.com/fo/12345/worldpay/pending" }
|
65
|
+
let(:cancel_url) { "http://example.com/fo/12345/worldpay/cancel" }
|
66
|
+
let(:error_url) { "http://example.com/fo/12345/worldpay/error" }
|
62
67
|
let(:response_url) { "#{success_url}?orderKey=admincode1^^987654&paymentStatus=#{status}&paymentAmount=10500&paymentCurrency=GBP&mac=0ba5271e1ed1b26f9bb428ef7fb536a4&source=WP" }
|
63
|
-
let(:path)
|
68
|
+
let(:path) do
|
69
|
+
root = "/defra_ruby_mocks/worldpay/dispatcher"
|
70
|
+
escaped_success = CGI.escape(success_url)
|
71
|
+
escaped_failure = CGI.escape(failure_url)
|
72
|
+
escaped_pending = CGI.escape(pending_url)
|
73
|
+
escaped_cancel = CGI.escape(cancel_url)
|
74
|
+
escaped_error = CGI.escape(error_url)
|
75
|
+
|
76
|
+
"#{root}?successURL=#{escaped_success}&failureURL=#{escaped_failure}&pendingURL=#{escaped_pending}&cancelURL=#{escaped_cancel}&errorURL=#{escaped_error}"
|
77
|
+
end
|
64
78
|
let(:service_response) do
|
65
79
|
double(
|
66
80
|
:response,
|
@@ -76,9 +90,16 @@ module DefraRubyMocks
|
|
76
90
|
end
|
77
91
|
|
78
92
|
context "and the request is valid" do
|
79
|
-
before(:each)
|
80
|
-
|
81
|
-
|
93
|
+
before(:each) do
|
94
|
+
allow(WorldpayResponseService).to receive(:run)
|
95
|
+
.with(
|
96
|
+
success_url: success_url,
|
97
|
+
failure_url: failure_url,
|
98
|
+
pending_url: pending_url,
|
99
|
+
cancel_url: cancel_url,
|
100
|
+
error_url: error_url
|
101
|
+
) { service_response }
|
102
|
+
end
|
82
103
|
|
83
104
|
context "and a response is expected" do
|
84
105
|
let(:status) { "AUTHORISED" }
|
@@ -30,17 +30,7 @@ module DefraRubyMocks
|
|
30
30
|
|
31
31
|
let(:order) { double(:order, order_code: order_code, total_amount: order_value) }
|
32
32
|
|
33
|
-
let(:mac)
|
34
|
-
data = [
|
35
|
-
order_key,
|
36
|
-
order_value,
|
37
|
-
"GBP",
|
38
|
-
payment_status,
|
39
|
-
mac_secret
|
40
|
-
]
|
41
|
-
|
42
|
-
Digest::MD5.hexdigest(data.join).to_s
|
43
|
-
end
|
33
|
+
let(:mac) { Digest::MD5.hexdigest(mac_data.join).to_s }
|
44
34
|
|
45
35
|
let(:query_string) do
|
46
36
|
[
|
@@ -53,15 +43,27 @@ module DefraRubyMocks
|
|
53
43
|
].join("&")
|
54
44
|
end
|
55
45
|
|
56
|
-
let(:args)
|
46
|
+
let(:args) do
|
47
|
+
{
|
48
|
+
success_url: success_url,
|
49
|
+
failure_url: failure_url,
|
50
|
+
pending_url: pending_url,
|
51
|
+
cancel_url: cancel_url,
|
52
|
+
error_url: error_url
|
53
|
+
}
|
54
|
+
end
|
57
55
|
|
58
56
|
describe ".run" do
|
59
57
|
context "when the request comes from the waste-carriers-front-office" do
|
60
58
|
let(:success_url) { "http://example.com/fo/#{reference}/worldpay/success" }
|
61
59
|
let(:failure_url) { "http://example.com/fo/#{reference}/worldpay/failure" }
|
60
|
+
let(:pending_url) { "http://example.com/fo/#{reference}/worldpay/pending" }
|
61
|
+
let(:cancel_url) { "http://example.com/fo/#{reference}/worldpay/cancel" }
|
62
|
+
let(:error_url) { "http://example.com/fo/#{reference}/worldpay/error" }
|
62
63
|
|
63
64
|
context "and is valid" do
|
64
65
|
let(:relation) { double(:relation, first: registration) }
|
66
|
+
let(:mac_data) { [order_key, order_value, "GBP", payment_status, mac_secret] }
|
65
67
|
|
66
68
|
it "can extract the reference from the `success_url`" do
|
67
69
|
expect(described_class.run(args).reference).to eq(reference)
|
@@ -71,11 +73,12 @@ module DefraRubyMocks
|
|
71
73
|
expect(described_class.run(args).order_key).to eq(order_key)
|
72
74
|
end
|
73
75
|
|
74
|
-
it "can generate a valid mac" do
|
75
|
-
expect(described_class.run(args).mac).to eq(mac)
|
76
|
-
end
|
77
|
-
|
78
76
|
context "and is for a successful payment" do
|
77
|
+
it "can generate a valid mac" do
|
78
|
+
puts "Test data #{mac_data.join}"
|
79
|
+
expect(described_class.run(args).mac).to eq(mac)
|
80
|
+
end
|
81
|
+
|
79
82
|
it "returns a url in the expected format" do
|
80
83
|
expected_response_url = "#{success_url}?#{query_string}"
|
81
84
|
|
@@ -87,6 +90,10 @@ module DefraRubyMocks
|
|
87
90
|
let(:payment_status) { :REFUSED }
|
88
91
|
let(:company_name) { "Reject for the thing" }
|
89
92
|
|
93
|
+
it "can generate a valid mac" do
|
94
|
+
expect(described_class.run(args).mac).to eq(mac)
|
95
|
+
end
|
96
|
+
|
90
97
|
it "returns a url in the expected format" do
|
91
98
|
expected_response_url = "#{failure_url}?#{query_string}"
|
92
99
|
|
@@ -95,21 +102,76 @@ module DefraRubyMocks
|
|
95
102
|
end
|
96
103
|
|
97
104
|
context "and is for a stuck payment" do
|
105
|
+
let(:payment_status) { :STUCK }
|
98
106
|
let(:company_name) { "Give me a stuck thing" }
|
99
107
|
|
108
|
+
it "can generate a valid mac" do
|
109
|
+
expect(described_class.run(args).mac).to eq(mac)
|
110
|
+
end
|
111
|
+
|
100
112
|
it "returns a status of :STUCK" do
|
101
113
|
expect(described_class.run(args).status).to eq(:STUCK)
|
102
114
|
end
|
103
115
|
end
|
116
|
+
|
117
|
+
context "and is for a pending payment" do
|
118
|
+
let(:payment_status) { :SENT_FOR_AUTHORISATION }
|
119
|
+
let(:company_name) { "Pending for the thing" }
|
120
|
+
|
121
|
+
it "can generate a valid mac" do
|
122
|
+
expect(described_class.run(args).mac).to eq(mac)
|
123
|
+
end
|
124
|
+
|
125
|
+
it "returns a url in the expected format" do
|
126
|
+
expected_response_url = "#{pending_url}?#{query_string}"
|
127
|
+
|
128
|
+
expect(described_class.run(args).url).to eq(expected_response_url)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
context "and is for a cancelled payment" do
|
133
|
+
let(:payment_status) { :CANCELLED }
|
134
|
+
let(:company_name) { "Cancel the thing" }
|
135
|
+
let(:mac_data) { [order_key, order_value, "GBP", mac_secret] }
|
136
|
+
|
137
|
+
it "can generate a valid mac" do
|
138
|
+
expect(described_class.run(args).mac).to eq(mac)
|
139
|
+
end
|
140
|
+
|
141
|
+
it "returns a url in the expected format" do
|
142
|
+
expected_response_url = "#{cancel_url}?#{query_string}"
|
143
|
+
|
144
|
+
expect(described_class.run(args).url).to eq(expected_response_url)
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
context "and is for an errored payment" do
|
149
|
+
let(:payment_status) { :ERROR }
|
150
|
+
let(:company_name) { "Error the thing" }
|
151
|
+
|
152
|
+
it "can generate a valid mac" do
|
153
|
+
expect(described_class.run(args).mac).to eq(mac)
|
154
|
+
end
|
155
|
+
|
156
|
+
it "returns a url in the expected format" do
|
157
|
+
expected_response_url = "#{error_url}?#{query_string}"
|
158
|
+
|
159
|
+
expect(described_class.run(args).url).to eq(expected_response_url)
|
160
|
+
end
|
161
|
+
end
|
104
162
|
end
|
105
163
|
end
|
106
164
|
|
107
165
|
context "when the request comes from the waste-carriers-frontend" do
|
108
166
|
let(:success_url) { "http://example.com/your-registration/#{reference}/worldpay/success/54321/NEWREG?locale=en" }
|
109
167
|
let(:failure_url) { "http://example.com/your-registration/#{reference}/worldpay/failure/54321/NEWREG?locale=en" }
|
168
|
+
let(:pending_url) { "http://example.com/your-registration/#{reference}/worldpay/pending/54321/NEWREG?locale=en" }
|
169
|
+
let(:cancel_url) { "http://example.com/your-registration/#{reference}/worldpay/cancel/54321/NEWREG?locale=en" }
|
170
|
+
let(:error_url) { "http://example.com/your-registration/#{reference}/worldpay/error/54321/NEWREG?locale=en" }
|
110
171
|
|
111
172
|
context "and is valid" do
|
112
173
|
let(:relation) { double(:relation, first: registration) }
|
174
|
+
let(:mac_data) { [order_key, order_value, "GBP", payment_status, mac_secret] }
|
113
175
|
|
114
176
|
it "can extract the reference from the `success_url`" do
|
115
177
|
expect(described_class.run(args).reference).to eq(reference)
|
@@ -119,11 +181,11 @@ module DefraRubyMocks
|
|
119
181
|
expect(described_class.run(args).order_key).to eq(order_key)
|
120
182
|
end
|
121
183
|
|
122
|
-
it "can generate a valid mac" do
|
123
|
-
expect(described_class.run(args).mac).to eq(mac)
|
124
|
-
end
|
125
|
-
|
126
184
|
context "and is for a successful payment" do
|
185
|
+
it "can generate a valid mac" do
|
186
|
+
expect(described_class.run(args).mac).to eq(mac)
|
187
|
+
end
|
188
|
+
|
127
189
|
it "returns a url in the expected format" do
|
128
190
|
expected_response_url = "#{success_url}&#{query_string}"
|
129
191
|
|
@@ -135,6 +197,10 @@ module DefraRubyMocks
|
|
135
197
|
let(:payment_status) { :REFUSED }
|
136
198
|
let(:company_name) { "Reject for the thing" }
|
137
199
|
|
200
|
+
it "can generate a valid mac" do
|
201
|
+
expect(described_class.run(args).mac).to eq(mac)
|
202
|
+
end
|
203
|
+
|
138
204
|
it "returns a url in the expected format" do
|
139
205
|
expected_response_url = "#{failure_url}&#{query_string}"
|
140
206
|
|
@@ -143,12 +209,63 @@ module DefraRubyMocks
|
|
143
209
|
end
|
144
210
|
|
145
211
|
context "and is for a stuck payment" do
|
212
|
+
let(:payment_status) { :STUCK }
|
146
213
|
let(:company_name) { "Give me a stuck thing" }
|
147
214
|
|
215
|
+
it "can generate a valid mac" do
|
216
|
+
expect(described_class.run(args).mac).to eq(mac)
|
217
|
+
end
|
218
|
+
|
148
219
|
it "returns a status of :STUCK" do
|
149
220
|
expect(described_class.run(args).status).to eq(:STUCK)
|
150
221
|
end
|
151
222
|
end
|
223
|
+
|
224
|
+
context "and is for a pending payment" do
|
225
|
+
let(:payment_status) { :SENT_FOR_AUTHORISATION }
|
226
|
+
let(:company_name) { "Pending for the thing" }
|
227
|
+
|
228
|
+
it "can generate a valid mac" do
|
229
|
+
expect(described_class.run(args).mac).to eq(mac)
|
230
|
+
end
|
231
|
+
|
232
|
+
it "returns a url in the expected format" do
|
233
|
+
expected_response_url = "#{pending_url}&#{query_string}"
|
234
|
+
|
235
|
+
expect(described_class.run(args).url).to eq(expected_response_url)
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
context "and is for a cancelled payment" do
|
240
|
+
let(:payment_status) { :CANCELLED }
|
241
|
+
let(:company_name) { "Cancel the thing" }
|
242
|
+
let(:mac_data) { [order_key, order_value, "GBP", mac_secret] }
|
243
|
+
|
244
|
+
it "can generate a valid mac" do
|
245
|
+
expect(described_class.run(args).mac).to eq(mac)
|
246
|
+
end
|
247
|
+
|
248
|
+
it "returns a url in the expected format" do
|
249
|
+
expected_response_url = "#{cancel_url}&#{query_string}"
|
250
|
+
|
251
|
+
expect(described_class.run(args).url).to eq(expected_response_url)
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
context "and is for an errored payment" do
|
256
|
+
let(:payment_status) { :ERROR }
|
257
|
+
let(:company_name) { "Error the thing" }
|
258
|
+
|
259
|
+
it "can generate a valid mac" do
|
260
|
+
expect(described_class.run(args).mac).to eq(mac)
|
261
|
+
end
|
262
|
+
|
263
|
+
it "returns a url in the expected format" do
|
264
|
+
expected_response_url = "#{error_url}&#{query_string}"
|
265
|
+
|
266
|
+
expect(described_class.run(args).url).to eq(expected_response_url)
|
267
|
+
end
|
268
|
+
end
|
152
269
|
end
|
153
270
|
end
|
154
271
|
end
|