defra_ruby_mocks 1.4.1 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|