defra_ruby_mocks 2.3.3 → 2.4.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 +32 -75
- data/app/controllers/defra_ruby_mocks/govpay_controller.rb +23 -0
- data/app/services/defra_ruby_mocks/govpay_refund_details_service.rb +43 -0
- data/app/services/defra_ruby_mocks/govpay_request_refund_service.rb +27 -0
- data/config/routes.rb +10 -10
- data/lib/defra_ruby_mocks/configuration.rb +1 -1
- data/lib/defra_ruby_mocks/engine.rb +0 -1
- data/lib/defra_ruby_mocks/version.rb +1 -1
- data/spec/dummy/log/test.log +1117 -2298
- data/spec/examples.txt +68 -130
- data/spec/requests/govpay_spec.rb +44 -1
- data/spec/services/govpay_refund_details_service_spec.rb +58 -0
- data/spec/services/govpay_request_refund_service_spec.rb +31 -0
- metadata +8 -48
- data/app/controllers/defra_ruby_mocks/worldpay_controller.rb +0 -57
- data/app/services/defra_ruby_mocks/worldpay_payment_service.rb +0 -47
- data/app/services/defra_ruby_mocks/worldpay_refund_service.rb +0 -37
- data/app/services/defra_ruby_mocks/worldpay_request_handler_service.rb +0 -40
- data/app/services/defra_ruby_mocks/worldpay_resource_service.rb +0 -55
- data/app/services/defra_ruby_mocks/worldpay_response_service.rb +0 -119
- data/app/views/defra_ruby_mocks/worldpay/payment_request.xml.erb +0 -4
- data/app/views/defra_ruby_mocks/worldpay/refund_request.xml.erb +0 -4
- data/app/views/defra_ruby_mocks/worldpay/stuck.html.erb +0 -37
- data/lib/defra_ruby_mocks/unrecognised_worldpay_request_error.rb +0 -5
- data/spec/fixtures/files/worldpay/payment_request_invalid.xml +0 -6
- data/spec/fixtures/files/worldpay/payment_request_valid.xml +0 -30
- data/spec/fixtures/files/worldpay/refund_request_invalid.xml +0 -6
- data/spec/fixtures/files/worldpay/refund_request_valid.xml +0 -11
- data/spec/fixtures/files/worldpay/unrecognised_request.xml +0 -6
- data/spec/requests/worldpay_spec.rb +0 -163
- data/spec/services/worldpay_payment_service_spec.rb +0 -95
- data/spec/services/worldpay_refund_service_spec.rb +0 -68
- data/spec/services/worldpay_request_handler_service_spec.rb +0 -79
- data/spec/services/worldpay_resource_service_spec.rb +0 -120
- data/spec/services/worldpay_response_service_spec.rb +0 -280
data/spec/examples.txt
CHANGED
|
@@ -1,130 +1,68 @@
|
|
|
1
|
-
example_id
|
|
2
|
-
|
|
3
|
-
./spec/defra_ruby_mocks_spec.rb[1:1:1]
|
|
4
|
-
./spec/defra_ruby_mocks_spec.rb[1:2:1:1]
|
|
5
|
-
./spec/defra_ruby_mocks_spec.rb[1:2:2:1]
|
|
6
|
-
./spec/lib/configuration_spec.rb[1:1:1:1]
|
|
7
|
-
./spec/lib/configuration_spec.rb[1:1:2:1]
|
|
8
|
-
./spec/lib/configuration_spec.rb[1:1:3:1]
|
|
9
|
-
./spec/lib/configuration_spec.rb[1:1:4:1]
|
|
10
|
-
./spec/lib/configuration_spec.rb[1:2:1:1]
|
|
11
|
-
./spec/lib/configuration_spec.rb[1:2:2:1]
|
|
12
|
-
./spec/lib/configuration_spec.rb[1:2:3:1]
|
|
13
|
-
./spec/lib/configuration_spec.rb[1:2:4:1]
|
|
14
|
-
./spec/requests/company_spec.rb[1:1:1:1]
|
|
15
|
-
./spec/requests/company_spec.rb[1:1:2:1]
|
|
16
|
-
./spec/requests/company_spec.rb[1:1:3:1:1]
|
|
17
|
-
./spec/requests/company_spec.rb[1:1:3:2:1]
|
|
18
|
-
./spec/requests/company_spec.rb[1:2:1]
|
|
19
|
-
./spec/requests/govpay_spec.rb[1:1:1:1:1]
|
|
20
|
-
./spec/requests/govpay_spec.rb[1:1:1:1:2]
|
|
21
|
-
./spec/requests/govpay_spec.rb[1:1:1:2:1]
|
|
22
|
-
./spec/requests/govpay_spec.rb[1:1:2:1:1]
|
|
23
|
-
./spec/requests/govpay_spec.rb[1:1:2:2:1]
|
|
24
|
-
./spec/requests/govpay_spec.rb[1:
|
|
25
|
-
./spec/requests/govpay_spec.rb[1:
|
|
26
|
-
./spec/requests/govpay_spec.rb[1:
|
|
27
|
-
./spec/requests/
|
|
28
|
-
./spec/requests/
|
|
29
|
-
./spec/requests/
|
|
30
|
-
./spec/requests/
|
|
31
|
-
./spec/requests/
|
|
32
|
-
./spec/
|
|
33
|
-
./spec/
|
|
34
|
-
./spec/
|
|
35
|
-
./spec/
|
|
36
|
-
./spec/
|
|
37
|
-
./spec/services/companies_house_service_spec.rb[1:1:
|
|
38
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:
|
|
39
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:1
|
|
40
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:2
|
|
41
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:
|
|
42
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:
|
|
43
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:
|
|
44
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:
|
|
45
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:
|
|
46
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:
|
|
47
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:
|
|
48
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:
|
|
49
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:
|
|
50
|
-
./spec/services/companies_house_service_spec.rb[1:1:2:
|
|
51
|
-
./spec/services/companies_house_service_spec.rb[1:1:
|
|
52
|
-
./spec/services/companies_house_service_spec.rb[1:1:2
|
|
53
|
-
./spec/services/companies_house_service_spec.rb[1:1:
|
|
54
|
-
./spec/services/companies_house_service_spec.rb[1:1:
|
|
55
|
-
./spec/services/companies_house_service_spec.rb[1:1:
|
|
56
|
-
./spec/services/companies_house_service_spec.rb[1:1:
|
|
57
|
-
./spec/services/
|
|
58
|
-
./spec/services/
|
|
59
|
-
./spec/services/
|
|
60
|
-
./spec/services/
|
|
61
|
-
./spec/services/
|
|
62
|
-
./spec/services/
|
|
63
|
-
./spec/services/
|
|
64
|
-
./spec/services/
|
|
65
|
-
./spec/services/
|
|
66
|
-
./spec/services/
|
|
67
|
-
./spec/services/
|
|
68
|
-
./spec/services/
|
|
69
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:1] | passed | 0.00034 seconds |
|
|
70
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:2] | passed | 0.00032 seconds |
|
|
71
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:3] | passed | 0.00034 seconds |
|
|
72
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:4] | passed | 0.00045 seconds |
|
|
73
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:5:1] | passed | 0.0003 seconds |
|
|
74
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:5:2] | passed | 0.00031 seconds |
|
|
75
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:5:3] | passed | 0.0004 seconds |
|
|
76
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:6:1] | passed | 0.00034 seconds |
|
|
77
|
-
./spec/services/worldpay_payment_service_spec.rb[1:1:3:1] | passed | 0.00027 seconds |
|
|
78
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:1] | passed | 0.00122 seconds |
|
|
79
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:2] | passed | 0.00069 seconds |
|
|
80
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:3] | passed | 0.00029 seconds |
|
|
81
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:4] | passed | 0.00032 seconds |
|
|
82
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:5] | passed | 0.00038 seconds |
|
|
83
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:6] | passed | 0.00028 seconds |
|
|
84
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:7] | passed | 0.00028 seconds |
|
|
85
|
-
./spec/services/worldpay_refund_service_spec.rb[1:1:2:1] | passed | 0.00304 seconds |
|
|
86
|
-
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:1:1] | passed | 0.0006 seconds |
|
|
87
|
-
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:1:2] | passed | 0.00094 seconds |
|
|
88
|
-
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:2:1] | passed | 0.00047 seconds |
|
|
89
|
-
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:2:2] | passed | 0.00057 seconds |
|
|
90
|
-
./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:3:1] | passed | 0.00052 seconds |
|
|
91
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:1:1] | passed | 0.00056 seconds |
|
|
92
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:1:2] | passed | 0.00049 seconds |
|
|
93
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:1:3] | passed | 0.00047 seconds |
|
|
94
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:1:4] | passed | 0.00047 seconds |
|
|
95
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:1:5:1] | passed | 0.00052 seconds |
|
|
96
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:2:1] | passed | 0.00061 seconds |
|
|
97
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:2:2] | passed | 0.00058 seconds |
|
|
98
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:2:3] | passed | 0.00059 seconds |
|
|
99
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:2:4] | passed | 0.00056 seconds |
|
|
100
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:3:1] | passed | 0.002 seconds |
|
|
101
|
-
./spec/services/worldpay_resource_service_spec.rb[1:1:4:1] | passed | 0.00051 seconds |
|
|
102
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:1] | passed | 0.00048 seconds |
|
|
103
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:2] | passed | 0.0005 seconds |
|
|
104
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:3:1] | passed | 0.00045 seconds |
|
|
105
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:3:2] | passed | 0.00051 seconds |
|
|
106
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:3:3:1] | passed | 0.00045 seconds |
|
|
107
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:4:1] | passed | 0.00047 seconds |
|
|
108
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:4:2] | passed | 0.00048 seconds |
|
|
109
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:5:1] | passed | 0.00047 seconds |
|
|
110
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:5:2] | passed | 0.00045 seconds |
|
|
111
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:6:1] | passed | 0.00048 seconds |
|
|
112
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:6:2] | passed | 0.0005 seconds |
|
|
113
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:7:1] | passed | 0.00047 seconds |
|
|
114
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:7:2] | passed | 0.00052 seconds |
|
|
115
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:8:1] | passed | 0.00047 seconds |
|
|
116
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:1:1:8:2] | passed | 0.00051 seconds |
|
|
117
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:1] | passed | 0.00047 seconds |
|
|
118
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:2] | passed | 0.01025 seconds |
|
|
119
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:3:1] | passed | 0.0005 seconds |
|
|
120
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:3:2] | passed | 0.00049 seconds |
|
|
121
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:4:1] | passed | 0.00047 seconds |
|
|
122
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:4:2] | passed | 0.00048 seconds |
|
|
123
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:5:1] | passed | 0.00046 seconds |
|
|
124
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:5:2] | passed | 0.0006 seconds |
|
|
125
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:6:1] | passed | 0.0005 seconds |
|
|
126
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:6:2] | passed | 0.00047 seconds |
|
|
127
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:7:1] | passed | 0.00051 seconds |
|
|
128
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:7:2] | passed | 0.00053 seconds |
|
|
129
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:8:1] | passed | 0.00049 seconds |
|
|
130
|
-
./spec/services/worldpay_response_service_spec.rb[1:1:2:1:8:2] | passed | 0.00051 seconds |
|
|
1
|
+
example_id | status | run_time |
|
|
2
|
+
---------------------------------------------------------------- | ------ | --------------- |
|
|
3
|
+
./spec/defra_ruby_mocks_spec.rb[1:1:1] | passed | 0.00285 seconds |
|
|
4
|
+
./spec/defra_ruby_mocks_spec.rb[1:2:1:1] | passed | 0.00139 seconds |
|
|
5
|
+
./spec/defra_ruby_mocks_spec.rb[1:2:2:1] | passed | 0.00014 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.00011 seconds |
|
|
8
|
+
./spec/lib/configuration_spec.rb[1:1:3:1] | passed | 0.00542 seconds |
|
|
9
|
+
./spec/lib/configuration_spec.rb[1:1:4:1] | passed | 0.0001 seconds |
|
|
10
|
+
./spec/lib/configuration_spec.rb[1:2:1:1] | passed | 0.00013 seconds |
|
|
11
|
+
./spec/lib/configuration_spec.rb[1:2:2:1] | passed | 0.0001 seconds |
|
|
12
|
+
./spec/lib/configuration_spec.rb[1:2:3:1] | passed | 0.0001 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.03183 seconds |
|
|
15
|
+
./spec/requests/company_spec.rb[1:1:2:1] | passed | 0.00373 seconds |
|
|
16
|
+
./spec/requests/company_spec.rb[1:1:3:1:1] | passed | 0.00642 seconds |
|
|
17
|
+
./spec/requests/company_spec.rb[1:1:3:2:1] | passed | 0.00371 seconds |
|
|
18
|
+
./spec/requests/company_spec.rb[1:2:1] | passed | 0.1818 seconds |
|
|
19
|
+
./spec/requests/govpay_spec.rb[1:1:1:1:1] | passed | 0.00531 seconds |
|
|
20
|
+
./spec/requests/govpay_spec.rb[1:1:1:1:2] | passed | 0.0086 seconds |
|
|
21
|
+
./spec/requests/govpay_spec.rb[1:1:1:2:1] | passed | 0.00328 seconds |
|
|
22
|
+
./spec/requests/govpay_spec.rb[1:1:2:1:1] | passed | 0.00809 seconds |
|
|
23
|
+
./spec/requests/govpay_spec.rb[1:1:2:2:1] | passed | 0.00472 seconds |
|
|
24
|
+
./spec/requests/govpay_spec.rb[1:1:3:1:1] | passed | 0.00308 seconds |
|
|
25
|
+
./spec/requests/govpay_spec.rb[1:1:3:2:1] | passed | 0.00362 seconds |
|
|
26
|
+
./spec/requests/govpay_spec.rb[1:1:4:1:1] | passed | 0.00454 seconds |
|
|
27
|
+
./spec/requests/govpay_spec.rb[1:2:1:1] | passed | 0.00158 seconds |
|
|
28
|
+
./spec/requests/govpay_spec.rb[1:2:2:1] | passed | 0.00622 seconds |
|
|
29
|
+
./spec/requests/govpay_spec.rb[1:2:3:1] | passed | 0.01293 seconds |
|
|
30
|
+
./spec/requests/officers_spec.rb[1:1:1] | passed | 0.00639 seconds |
|
|
31
|
+
./spec/requests/officers_spec.rb[1:2:1] | passed | 0.00178 seconds |
|
|
32
|
+
./spec/services/companies_house_service_spec.rb[1:1:1:1] | passed | 0.00012 seconds |
|
|
33
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:1:1] | passed | 0.0001 seconds |
|
|
34
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:1:2] | passed | 0.00013 seconds |
|
|
35
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:2:1] | passed | 0.00011 seconds |
|
|
36
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:2:2] | passed | 0.0001 seconds |
|
|
37
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:3:1] | passed | 0.0001 seconds |
|
|
38
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:3:2] | passed | 0.00014 seconds |
|
|
39
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:4:1] | passed | 0.00011 seconds |
|
|
40
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:4:2] | passed | 0.00012 seconds |
|
|
41
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:5:1] | passed | 0.00012 seconds |
|
|
42
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:5:2] | passed | 0.00015 seconds |
|
|
43
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:6:1] | passed | 0.00012 seconds |
|
|
44
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:6:2] | passed | 0.00011 seconds |
|
|
45
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:7:1] | passed | 0.00011 seconds |
|
|
46
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:7:2] | passed | 0.00013 seconds |
|
|
47
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:8:1] | passed | 0.00012 seconds |
|
|
48
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:8:2] | passed | 0.00013 seconds |
|
|
49
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:9:1] | passed | 0.00011 seconds |
|
|
50
|
+
./spec/services/companies_house_service_spec.rb[1:1:2:9:2] | passed | 0.00015 seconds |
|
|
51
|
+
./spec/services/companies_house_service_spec.rb[1:1:3:1] | passed | 0.00009 seconds |
|
|
52
|
+
./spec/services/companies_house_service_spec.rb[1:1:3:2] | passed | 0.00016 seconds |
|
|
53
|
+
./spec/services/companies_house_service_spec.rb[1:1:3:3] | passed | 0.0001 seconds |
|
|
54
|
+
./spec/services/companies_house_service_spec.rb[1:1:3:4] | passed | 0.00011 seconds |
|
|
55
|
+
./spec/services/companies_house_service_spec.rb[1:1:4:1:1] | passed | 0.00017 seconds |
|
|
56
|
+
./spec/services/companies_house_service_spec.rb[1:1:4:2:1] | passed | 0.00016 seconds |
|
|
57
|
+
./spec/services/govpay_create_payment_service_spec.rb[1:1:1:1] | passed | 0.00452 seconds |
|
|
58
|
+
./spec/services/govpay_create_payment_service_spec.rb[1:1:1:2] | passed | 0.00528 seconds |
|
|
59
|
+
./spec/services/govpay_create_payment_service_spec.rb[1:1:1:3] | passed | 0.00464 seconds |
|
|
60
|
+
./spec/services/govpay_create_payment_service_spec.rb[1:1:1:4] | passed | 2.48 seconds |
|
|
61
|
+
./spec/services/govpay_get_payment_service_spec.rb[1:1:1:1] | passed | 0.00168 seconds |
|
|
62
|
+
./spec/services/govpay_get_payment_service_spec.rb[1:1:1:2] | passed | 0.00151 seconds |
|
|
63
|
+
./spec/services/govpay_refund_details_service_spec.rb[1:1:1:1] | passed | 0.03042 seconds |
|
|
64
|
+
./spec/services/govpay_refund_details_service_spec.rb[1:1:2:1:1] | passed | 0.00249 seconds |
|
|
65
|
+
./spec/services/govpay_refund_details_service_spec.rb[1:1:2:2:1] | passed | 0.00236 seconds |
|
|
66
|
+
./spec/services/govpay_refund_details_service_spec.rb[1:1:2:3:1] | passed | 0.0041 seconds |
|
|
67
|
+
./spec/services/govpay_request_refund_service_spec.rb[1:1:1:1] | passed | 0.00074 seconds |
|
|
68
|
+
./spec/services/govpay_request_refund_service_spec.rb[1:1:1:2] | passed | 0.0006 seconds |
|
|
@@ -50,7 +50,7 @@ module DefraRubyMocks
|
|
|
50
50
|
context "when the request is missing a mandatory parameter" do
|
|
51
51
|
before { payment_request[:amount] = nil }
|
|
52
52
|
|
|
53
|
-
it "returns a HTTP 500
|
|
53
|
+
it "returns a HTTP 500 response" do
|
|
54
54
|
post path, params: payment_request.as_json
|
|
55
55
|
|
|
56
56
|
expect(response.code).to eq "500"
|
|
@@ -93,6 +93,49 @@ module DefraRubyMocks
|
|
|
93
93
|
end
|
|
94
94
|
end
|
|
95
95
|
end
|
|
96
|
+
|
|
97
|
+
describe "#create_refund" do
|
|
98
|
+
let(:payment_id) { "12345678901234567890123456" }
|
|
99
|
+
let(:path) { "/defra_ruby_mocks/govpay/v1/payments/#{payment_id}/refunds" }
|
|
100
|
+
let(:refund_request) do
|
|
101
|
+
{
|
|
102
|
+
"amount": 2000,
|
|
103
|
+
"refund_amount_available": 5000
|
|
104
|
+
}
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
context "when the request is missing a mandatory parameter" do
|
|
108
|
+
before { refund_request[:refund_amount_available] = nil }
|
|
109
|
+
|
|
110
|
+
it "returns a HTTP 500 response" do
|
|
111
|
+
post path, params: refund_request.as_json
|
|
112
|
+
|
|
113
|
+
expect(response.code).to eq "500"
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
context "with a valid request" do
|
|
118
|
+
it "returns a valid success response" do
|
|
119
|
+
post path, params: refund_request.as_json
|
|
120
|
+
|
|
121
|
+
expect(response.code).to eq "200"
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
describe "#refund_details" do
|
|
127
|
+
let(:payment_id) { "12345678901234567890123456" }
|
|
128
|
+
let(:refund_id) { "j6se0f2o427g28g8yg3u3i" }
|
|
129
|
+
let(:path) { "/defra_ruby_mocks/govpay/v1/payments/#{payment_id}/refunds/#{refund_id}" }
|
|
130
|
+
|
|
131
|
+
context "with a valid request" do
|
|
132
|
+
it "returns a valid success response" do
|
|
133
|
+
get path
|
|
134
|
+
|
|
135
|
+
expect(response.code).to eq "200"
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
end
|
|
96
139
|
end
|
|
97
140
|
|
|
98
141
|
context "when mocks are disabled" do
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "rails_helper"
|
|
4
|
+
|
|
5
|
+
module DefraRubyMocks
|
|
6
|
+
|
|
7
|
+
RSpec.describe GovpayRefundDetailsService do
|
|
8
|
+
let(:payment_id) { SecureRandom.hex(26) }
|
|
9
|
+
let(:refund_id) { SecureRandom.hex(22) }
|
|
10
|
+
|
|
11
|
+
before { Helpers::Configuration.prep_for_tests }
|
|
12
|
+
|
|
13
|
+
# Note that the service currently supports only success responses.
|
|
14
|
+
describe ".run" do
|
|
15
|
+
let(:create_request_time) { Time.zone.now }
|
|
16
|
+
let(:submitted_success_lag) { "10" }
|
|
17
|
+
|
|
18
|
+
subject { described_class.run(payment_id: payment_id, refund_id: refund_id).deep_symbolize_keys }
|
|
19
|
+
|
|
20
|
+
# the service shoud return "submitted" for up to GOVPAY_REFUND_SUBMITTED_SUCCESS_LAG seconds, "success" thereafter
|
|
21
|
+
before do
|
|
22
|
+
Timecop.freeze(create_request_time)
|
|
23
|
+
allow(ENV).to receive(:fetch).with("GOVPAY_REFUND_SUBMITTED_SUCCESS_LAG", any_args).and_return(submitted_success_lag)
|
|
24
|
+
FileUtils.rm_rf("#{Dir.tmpdir}/govpay_request_refund_service_last_run_time")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
context "when no refund timestamp file exists" do
|
|
28
|
+
it { expect(subject[:status]).to eq "success" }
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
context "when a refund has been requested" do
|
|
32
|
+
before do
|
|
33
|
+
GovpayRequestRefundService.run(payment_id: payment_id, amount: 100, refund_amount_available: 100).deep_symbolize_keys
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
context "when less than 10 seconds has elapsed since the last create request" do
|
|
37
|
+
before { Timecop.freeze(create_request_time + (submitted_success_lag.to_i - 8).seconds) }
|
|
38
|
+
|
|
39
|
+
it { expect(subject[:status]).to eq "submitted" }
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
context "when 10 seconds has elapsed since the last create request" do
|
|
43
|
+
before { Timecop.freeze(create_request_time + (submitted_success_lag.to_i + 8).seconds) }
|
|
44
|
+
|
|
45
|
+
it { expect(subject[:status]).to eq "success" }
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
context "when GOVPAY_REFUND_SUBMITTED_SUCCESS_LAG is not set" do
|
|
49
|
+
let(:submitted_success_lag) { nil }
|
|
50
|
+
|
|
51
|
+
before { Timecop.freeze(create_request_time + 1.hour) }
|
|
52
|
+
|
|
53
|
+
it { expect(subject[:status]).to eq "success" }
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "rails_helper"
|
|
4
|
+
|
|
5
|
+
module DefraRubyMocks
|
|
6
|
+
|
|
7
|
+
RSpec.describe GovpayRequestRefundService do
|
|
8
|
+
let(:payment_id) { SecureRandom.hex(26) }
|
|
9
|
+
let(:amount) { 2000 }
|
|
10
|
+
let(:refund_amount_available) { amount }
|
|
11
|
+
|
|
12
|
+
before { Helpers::Configuration.prep_for_tests }
|
|
13
|
+
|
|
14
|
+
# Note that the service currently supports only "submitted" responses.
|
|
15
|
+
describe ".run" do
|
|
16
|
+
|
|
17
|
+
subject { described_class.run(payment_id: payment_id, amount: amount, refund_amount_available: refund_amount_available).deep_symbolize_keys }
|
|
18
|
+
|
|
19
|
+
context "when the refund has been successfully submitted" do
|
|
20
|
+
|
|
21
|
+
it "returns a response with the expected status" do
|
|
22
|
+
expect(subject[:status]).to eq("submitted")
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "returns a response with the expected amount" do
|
|
26
|
+
expect(subject[:amount]).to eq(amount)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: defra_ruby_mocks
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Defra
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-05-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -38,20 +38,6 @@ dependencies:
|
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: 3.7.2
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: nokogiri
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">="
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0'
|
|
48
|
-
type: :runtime
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - ">="
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0'
|
|
55
41
|
- !ruby/object:Gem::Dependency
|
|
56
42
|
name: github_changelog_generator
|
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -150,31 +136,23 @@ files:
|
|
|
150
136
|
- app/controllers/defra_ruby_mocks/application_controller.rb
|
|
151
137
|
- app/controllers/defra_ruby_mocks/company_controller.rb
|
|
152
138
|
- app/controllers/defra_ruby_mocks/govpay_controller.rb
|
|
153
|
-
- app/controllers/defra_ruby_mocks/worldpay_controller.rb
|
|
154
139
|
- app/jobs/defra_ruby_mocks/application_job.rb
|
|
155
140
|
- app/jobs/defra_ruby_mocks/govpay_payment_callback_job.rb
|
|
156
141
|
- app/services/defra_ruby_mocks/base_service.rb
|
|
157
142
|
- app/services/defra_ruby_mocks/companies_house_service.rb
|
|
158
143
|
- app/services/defra_ruby_mocks/govpay_create_payment_service.rb
|
|
159
144
|
- app/services/defra_ruby_mocks/govpay_get_payment_service.rb
|
|
160
|
-
- app/services/defra_ruby_mocks/
|
|
161
|
-
- app/services/defra_ruby_mocks/
|
|
162
|
-
- app/services/defra_ruby_mocks/worldpay_request_handler_service.rb
|
|
163
|
-
- app/services/defra_ruby_mocks/worldpay_resource_service.rb
|
|
164
|
-
- app/services/defra_ruby_mocks/worldpay_response_service.rb
|
|
145
|
+
- app/services/defra_ruby_mocks/govpay_refund_details_service.rb
|
|
146
|
+
- app/services/defra_ruby_mocks/govpay_request_refund_service.rb
|
|
165
147
|
- app/views/defra_ruby_mocks/company/not_found.json.erb
|
|
166
148
|
- app/views/defra_ruby_mocks/company/officers.json.erb
|
|
167
149
|
- app/views/defra_ruby_mocks/company/show.json.erb
|
|
168
|
-
- app/views/defra_ruby_mocks/worldpay/payment_request.xml.erb
|
|
169
|
-
- app/views/defra_ruby_mocks/worldpay/refund_request.xml.erb
|
|
170
|
-
- app/views/defra_ruby_mocks/worldpay/stuck.html.erb
|
|
171
150
|
- config/routes.rb
|
|
172
151
|
- lib/defra_ruby_mocks.rb
|
|
173
152
|
- lib/defra_ruby_mocks/configuration.rb
|
|
174
153
|
- lib/defra_ruby_mocks/engine.rb
|
|
175
154
|
- lib/defra_ruby_mocks/invalid_config_error.rb
|
|
176
155
|
- lib/defra_ruby_mocks/missing_resource_error.rb
|
|
177
|
-
- lib/defra_ruby_mocks/unrecognised_worldpay_request_error.rb
|
|
178
156
|
- lib/defra_ruby_mocks/version.rb
|
|
179
157
|
- lib/tasks/changelog.rake
|
|
180
158
|
- lib/tasks/defra_ruby_mocks_tasks.rake
|
|
@@ -224,25 +202,16 @@ files:
|
|
|
224
202
|
- spec/fixtures/files/govpay/get_payment_response_not_found.json
|
|
225
203
|
- spec/fixtures/files/govpay/get_payment_response_submitted.json
|
|
226
204
|
- spec/fixtures/files/govpay/get_payment_response_success.json
|
|
227
|
-
- spec/fixtures/files/worldpay/payment_request_invalid.xml
|
|
228
|
-
- spec/fixtures/files/worldpay/payment_request_valid.xml
|
|
229
|
-
- spec/fixtures/files/worldpay/refund_request_invalid.xml
|
|
230
|
-
- spec/fixtures/files/worldpay/refund_request_valid.xml
|
|
231
|
-
- spec/fixtures/files/worldpay/unrecognised_request.xml
|
|
232
205
|
- spec/lib/configuration_spec.rb
|
|
233
206
|
- spec/rails_helper.rb
|
|
234
207
|
- spec/requests/company_spec.rb
|
|
235
208
|
- spec/requests/govpay_spec.rb
|
|
236
209
|
- spec/requests/officers_spec.rb
|
|
237
|
-
- spec/requests/worldpay_spec.rb
|
|
238
210
|
- spec/services/companies_house_service_spec.rb
|
|
239
211
|
- spec/services/govpay_create_payment_service_spec.rb
|
|
240
212
|
- spec/services/govpay_get_payment_service_spec.rb
|
|
241
|
-
- spec/services/
|
|
242
|
-
- spec/services/
|
|
243
|
-
- spec/services/worldpay_request_handler_service_spec.rb
|
|
244
|
-
- spec/services/worldpay_resource_service_spec.rb
|
|
245
|
-
- spec/services/worldpay_response_service_spec.rb
|
|
213
|
+
- spec/services/govpay_refund_details_service_spec.rb
|
|
214
|
+
- spec/services/govpay_request_refund_service_spec.rb
|
|
246
215
|
- spec/spec_helper.rb
|
|
247
216
|
- spec/support/helpers/configuration.rb
|
|
248
217
|
- spec/support/helpers/helpers.rb
|
|
@@ -314,7 +283,6 @@ test_files:
|
|
|
314
283
|
- spec/defra_ruby_mocks_spec.rb
|
|
315
284
|
- spec/requests/govpay_spec.rb
|
|
316
285
|
- spec/requests/company_spec.rb
|
|
317
|
-
- spec/requests/worldpay_spec.rb
|
|
318
286
|
- spec/requests/officers_spec.rb
|
|
319
287
|
- spec/support/simplecov.rb
|
|
320
288
|
- spec/support/pry.rb
|
|
@@ -323,11 +291,6 @@ test_files:
|
|
|
323
291
|
- spec/support/helpers/configuration.rb
|
|
324
292
|
- spec/support/helpers/waste_carriers_engine.rb
|
|
325
293
|
- spec/lib/configuration_spec.rb
|
|
326
|
-
- spec/fixtures/files/worldpay/unrecognised_request.xml
|
|
327
|
-
- spec/fixtures/files/worldpay/payment_request_invalid.xml
|
|
328
|
-
- spec/fixtures/files/worldpay/refund_request_valid.xml
|
|
329
|
-
- spec/fixtures/files/worldpay/payment_request_valid.xml
|
|
330
|
-
- spec/fixtures/files/worldpay/refund_request_invalid.xml
|
|
331
294
|
- spec/fixtures/files/govpay/get_payment_response_submitted.json
|
|
332
295
|
- spec/fixtures/files/govpay/get_payment_response_not_found.json
|
|
333
296
|
- spec/fixtures/files/govpay/create_payment_created_response.json
|
|
@@ -339,10 +302,7 @@ test_files:
|
|
|
339
302
|
- spec/fixtures/files/govpay/get_payment_response_error.json
|
|
340
303
|
- spec/rails_helper.rb
|
|
341
304
|
- spec/services/govpay_get_payment_service_spec.rb
|
|
342
|
-
- spec/services/
|
|
343
|
-
- spec/services/worldpay_resource_service_spec.rb
|
|
305
|
+
- spec/services/govpay_request_refund_service_spec.rb
|
|
344
306
|
- spec/services/companies_house_service_spec.rb
|
|
345
|
-
- spec/services/
|
|
346
|
-
- spec/services/worldpay_refund_service_spec.rb
|
|
347
|
-
- spec/services/worldpay_request_handler_service_spec.rb
|
|
307
|
+
- spec/services/govpay_refund_details_service_spec.rb
|
|
348
308
|
- spec/services/govpay_create_payment_service_spec.rb
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module DefraRubyMocks
|
|
4
|
-
class WorldpayController < ::DefraRubyMocks::ApplicationController
|
|
5
|
-
protect_from_forgery with: :exception, except: [:payments_service]
|
|
6
|
-
|
|
7
|
-
before_action :set_default_response_format
|
|
8
|
-
|
|
9
|
-
def payments_service
|
|
10
|
-
@values = WorldpayRequestHandlerService.run(convert_request_body_to_xml)
|
|
11
|
-
|
|
12
|
-
render_payment_response if @values[:request_type] == :payment
|
|
13
|
-
render_refund_response if @values[:request_type] == :refund
|
|
14
|
-
rescue StandardError => e
|
|
15
|
-
Rails.logger.error("MOCKS: Worldpay payments service error: #{e.message}")
|
|
16
|
-
head 500
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def dispatcher
|
|
20
|
-
@response = WorldpayResponseService.run(
|
|
21
|
-
success_url: params[:successURL],
|
|
22
|
-
failure_url: params[:failureURL],
|
|
23
|
-
pending_url: params[:pendingURL],
|
|
24
|
-
cancel_url: params[:cancelURL],
|
|
25
|
-
error_url: params[:errorURL]
|
|
26
|
-
)
|
|
27
|
-
|
|
28
|
-
if @response.status == :STUCK
|
|
29
|
-
render formats: :html, action: "stuck", layout: false
|
|
30
|
-
else
|
|
31
|
-
redirect_to @response.url
|
|
32
|
-
end
|
|
33
|
-
rescue StandardError => e
|
|
34
|
-
Rails.logger.error("MOCKS: Worldpay dispatcher error: #{e.message}")
|
|
35
|
-
head 500
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
private
|
|
39
|
-
|
|
40
|
-
def set_default_response_format
|
|
41
|
-
request.format = :xml
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def convert_request_body_to_xml
|
|
45
|
-
Nokogiri::XML(request.body.read)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def render_payment_response
|
|
49
|
-
render "defra_ruby_mocks/worldpay/payment_request"
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def render_refund_response
|
|
53
|
-
render "defra_ruby_mocks/worldpay/refund_request"
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
end
|
|
57
|
-
end
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module DefraRubyMocks
|
|
4
|
-
class WorldpayPaymentService < BaseService
|
|
5
|
-
def run(merchant_code:, xml:)
|
|
6
|
-
check_config
|
|
7
|
-
|
|
8
|
-
@merchant_code = merchant_code
|
|
9
|
-
@order_code = extract_order_code(xml)
|
|
10
|
-
|
|
11
|
-
{
|
|
12
|
-
merchant_code: @merchant_code,
|
|
13
|
-
order_code: @order_code,
|
|
14
|
-
id: generate_id,
|
|
15
|
-
url: generate_url
|
|
16
|
-
}
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
private
|
|
20
|
-
|
|
21
|
-
def check_config
|
|
22
|
-
domain = DefraRubyMocks.configuration.worldpay_domain
|
|
23
|
-
|
|
24
|
-
raise InvalidConfigError, :worldpay_domain if domain.blank?
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def extract_order_code(xml)
|
|
28
|
-
order = xml.at_xpath("//order")
|
|
29
|
-
order.attribute("orderCode").text
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def generate_id
|
|
33
|
-
# Worldpay seems to generate 10 digit numbers for all its ID's. So we
|
|
34
|
-
# replicate that here with this.
|
|
35
|
-
# https://stackoverflow.com/a/31043825
|
|
36
|
-
rand(1e9...1e10).to_i.to_s
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def generate_url
|
|
40
|
-
"#{base_url}?OrderKey=#{@merchant_code}%5E#{@order_code}"
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def base_url
|
|
44
|
-
File.join(DefraRubyMocks.configuration.worldpay_domain, "/worldpay/dispatcher")
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module DefraRubyMocks
|
|
4
|
-
class WorldpayRefundService < BaseService
|
|
5
|
-
def run(merchant_code:, xml:)
|
|
6
|
-
{
|
|
7
|
-
merchant_code: merchant_code,
|
|
8
|
-
order_code: extract_order_code(xml),
|
|
9
|
-
refund_value: extract_refund_value(xml),
|
|
10
|
-
currency_code: extract_currency_code(xml),
|
|
11
|
-
exponent: extract_exponent(xml)
|
|
12
|
-
}
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
private
|
|
16
|
-
|
|
17
|
-
def extract_order_code(xml)
|
|
18
|
-
order_modification = xml.at_xpath("//orderModification")
|
|
19
|
-
order_modification.attribute("orderCode").text
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def extract_refund_value(xml)
|
|
23
|
-
amount = xml.at_xpath("//amount")
|
|
24
|
-
amount.attribute("value").text
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def extract_currency_code(xml)
|
|
28
|
-
amount = xml.at_xpath("//amount")
|
|
29
|
-
amount.attribute("currencyCode").text
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def extract_exponent(xml)
|
|
33
|
-
amount = xml.at_xpath("//amount")
|
|
34
|
-
amount.attribute("exponent").text
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|