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.
@@ -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.02254 seconds |
4
- ./spec/defra_ruby_mocks_spec.rb[1:2:1:1] | passed | 0.00022 seconds |
5
- ./spec/defra_ruby_mocks_spec.rb[1:2:2:1] | passed | 0.00565 seconds |
6
- ./spec/lib/configuration_spec.rb[1:1:1:1] | passed | 0.00008 seconds |
7
- ./spec/lib/configuration_spec.rb[1:1:2:1] | passed | 0.00008 seconds |
8
- ./spec/lib/configuration_spec.rb[1:1:3:1] | passed | 0.00008 seconds |
9
- ./spec/lib/configuration_spec.rb[1:1:4:1] | passed | 0.00009 seconds |
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.00009 seconds |
12
- ./spec/lib/configuration_spec.rb[1:2:3:1] | passed | 0.00011 seconds |
13
- ./spec/lib/configuration_spec.rb[1:2:4:1] | passed | 0.00236 seconds |
14
- ./spec/requests/company_spec.rb[1:1:1:1] | passed | 0.01096 seconds |
15
- ./spec/requests/company_spec.rb[1:1:2:1] | passed | 0.04303 seconds |
16
- ./spec/requests/company_spec.rb[1:1:3:1:1] | passed | 0.00435 seconds |
17
- ./spec/requests/company_spec.rb[1:1:3:2:1] | passed | 0.00458 seconds |
18
- ./spec/requests/company_spec.rb[1:2:1] | passed | 0.00311 seconds |
19
- ./spec/requests/worldpay_spec.rb[1:1:1:1:1:1] | passed | 0.02388 seconds |
20
- ./spec/requests/worldpay_spec.rb[1:1:1:1:2:1] | passed | 0.00636 seconds |
21
- ./spec/requests/worldpay_spec.rb[1:1:1:2:1:1] | passed | 0.01838 seconds |
22
- ./spec/requests/worldpay_spec.rb[1:1:2:1:1:1] | passed | 0.03425 seconds |
23
- ./spec/requests/worldpay_spec.rb[1:1:2:1:2:1] | passed | 0.04753 seconds |
24
- ./spec/requests/worldpay_spec.rb[1:1:2:2:1:1] | passed | 0.00465 seconds |
25
- ./spec/requests/worldpay_spec.rb[1:2:1:1] | passed | 0.0037 seconds |
26
- ./spec/requests/worldpay_spec.rb[1:2:2:1] | passed | 0.01137 seconds |
27
- ./spec/services/companies_house_service_spec.rb[1:1:1:1] | passed | 0.00017 seconds |
28
- ./spec/services/companies_house_service_spec.rb[1:1:2:1:1] | passed | 0.00011 seconds |
29
- ./spec/services/companies_house_service_spec.rb[1:1:2:2:1] | passed | 0.0001 seconds |
30
- ./spec/services/companies_house_service_spec.rb[1:1:2:3:1] | passed | 0.00012 seconds |
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.00009 seconds |
33
- ./spec/services/companies_house_service_spec.rb[1:1:2:6:1] | passed | 0.0001 seconds |
34
- ./spec/services/companies_house_service_spec.rb[1:1:2:7:1] | passed | 0.0001 seconds |
35
- ./spec/services/companies_house_service_spec.rb[1:1:2:8:1] | passed | 0.00009 seconds |
36
- ./spec/services/companies_house_service_spec.rb[1:1:2:9:1] | passed | 0.0001 seconds |
37
- ./spec/services/companies_house_service_spec.rb[1:1:3:1:1] | passed | 0.00009 seconds |
38
- ./spec/services/companies_house_service_spec.rb[1:1:3:2:1] | passed | 0.00012 seconds |
39
- ./spec/services/worldpay_payment_service_spec.rb[1:1:1:1] | passed | 0.00019 seconds |
40
- ./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:1] | passed | 0.002 seconds |
41
- ./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:2] | passed | 0.00135 seconds |
42
- ./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:3] | passed | 0.00059 seconds |
43
- ./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:4] | passed | 0.00101 seconds |
44
- ./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:5:1] | passed | 0.00086 seconds |
45
- ./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:5:2] | passed | 0.01732 seconds |
46
- ./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:5:3] | passed | 0.00079 seconds |
47
- ./spec/services/worldpay_payment_service_spec.rb[1:1:2:1:6:1] | passed | 0.00094 seconds |
48
- ./spec/services/worldpay_payment_service_spec.rb[1:1:3:1] | passed | 0.00208 seconds |
49
- ./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:1] | passed | 0.00063 seconds |
50
- ./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:2] | passed | 0.00065 seconds |
51
- ./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:3] | passed | 0.0006 seconds |
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.00218 seconds |
54
- ./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:6] | passed | 0.00064 seconds |
55
- ./spec/services/worldpay_refund_service_spec.rb[1:1:1:1:7] | passed | 0.00061 seconds |
56
- ./spec/services/worldpay_refund_service_spec.rb[1:1:2:1] | passed | 0.01948 seconds |
57
- ./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:1:1] | passed | 0.00125 seconds |
58
- ./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:1:2] | passed | 0.00146 seconds |
59
- ./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:2:1] | passed | 0.00086 seconds |
60
- ./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:2:2] | passed | 0.00077 seconds |
61
- ./spec/services/worldpay_request_handler_service_spec.rb[1:1:1:3:1] | passed | 0.00141 seconds |
62
- ./spec/services/worldpay_resource_service_spec.rb[1:1:1:1] | passed | 0.00068 seconds |
63
- ./spec/services/worldpay_resource_service_spec.rb[1:1:1:2] | passed | 0.00062 seconds |
64
- ./spec/services/worldpay_resource_service_spec.rb[1:1:1:3] | passed | 0.00065 seconds |
65
- ./spec/services/worldpay_resource_service_spec.rb[1:1:1:4] | passed | 0.00056 seconds |
66
- ./spec/services/worldpay_resource_service_spec.rb[1:1:2:1] | passed | 0.00075 seconds |
67
- ./spec/services/worldpay_resource_service_spec.rb[1:1:2:2] | passed | 0.00067 seconds |
68
- ./spec/services/worldpay_resource_service_spec.rb[1:1:2:3] | passed | 0.00067 seconds |
69
- ./spec/services/worldpay_resource_service_spec.rb[1:1:2:4] | passed | 0.00064 seconds |
70
- ./spec/services/worldpay_resource_service_spec.rb[1:1:3:1] | passed | 0.05549 seconds |
71
- ./spec/services/worldpay_resource_service_spec.rb[1:1:4:1] | passed | 0.00428 seconds |
72
- ./spec/services/worldpay_response_service_spec.rb[1:1:1:1:1] | passed | 0.00066 seconds |
73
- ./spec/services/worldpay_response_service_spec.rb[1:1:1:1:2] | passed | 0.00055 seconds |
74
- ./spec/services/worldpay_response_service_spec.rb[1:1:1:1:3] | passed | 0.00058 seconds |
75
- ./spec/services/worldpay_response_service_spec.rb[1:1:1:1:4:1] | passed | 0.00059 seconds |
76
- ./spec/services/worldpay_response_service_spec.rb[1:1:1:1:5:1] | passed | 0.0006 seconds |
77
- ./spec/services/worldpay_response_service_spec.rb[1:1:1:1:6:1] | passed | 0.00057 seconds |
78
- ./spec/services/worldpay_response_service_spec.rb[1:1:2:1:1] | passed | 0.00061 seconds |
79
- ./spec/services/worldpay_response_service_spec.rb[1:1:2:1:2] | passed | 0.00059 seconds |
80
- ./spec/services/worldpay_response_service_spec.rb[1:1:2:1:3] | passed | 0.00059 seconds |
81
- ./spec/services/worldpay_response_service_spec.rb[1:1:2:1:4:1] | passed | 0.00072 seconds |
82
- ./spec/services/worldpay_response_service_spec.rb[1:1:2:1:5:1] | passed | 0.00291 seconds |
83
- ./spec/services/worldpay_response_service_spec.rb[1:1:2:1:6:1] | passed | 0.00091 seconds |
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) { "/defra_ruby_mocks/worldpay/dispatcher?successURL=#{CGI.escape(success_url)}" }
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) { allow(WorldpayResponseService).to receive(:run) { service_response } }
80
-
81
- let(:success_url) { "http://example.com/fo/12345/worldpay/success" }
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) do
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) { { success_url: success_url, failure_url: failure_url } }
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