Module: GdsApi::TestHelpers::AssetManager

Defined in:
lib/gds_api/test_helpers/asset_manager.rb

Constant Summary collapse

ASSET_MANAGER_ENDPOINT =
Plek.find("asset-manager")

Instance Method Summary collapse

Instance Method Details

#stub_any_asset_manager_callObject



6
7
8
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 6

def stub_any_asset_manager_call
  stub_request(:any, %r{\A#{ASSET_MANAGER_ENDPOINT}}).to_return(status: 200)
end

#stub_asset_manager_create_asset(response_url = {}, response_body = {}) ⇒ Object

This can take a string of an exact url or a hash of options

with a string: stub_asset_manager_create_asset("https://asset-manager/media/619ce797-b415-42e5-b2b1-2ffa0df52302/file.jpg")

with a hash: stub_asset_manager_create_asset(id: "20d04259-e3ae-4f71-8157-e6c843096e96", filename: "file.jpg") which would return a file url of "https://asset-manager/media/20d04259-e3ae-4f71-8157-e6c843096e96/file.jpg"

with no argument

stub_asset_manager_create_asset which would return a file url of "https://asset-manager/media/0053adbf-0737-4923-9d8a-8180f2c723af/0d19136c4a94f07"



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 72

def stub_asset_manager_create_asset(response_url = {}, response_body = {})
  stub_request(:post, "#{ASSET_MANAGER_ENDPOINT}/assets").to_return do
    if response_url.is_a?(String)
      file_url = response_url
    else
      options = {
        id: SecureRandom.uuid,
        filename: SecureRandom.hex(8),
      }.merge(response_url)

      file_url = "#{ASSET_MANAGER_ENDPOINT}/media/#{options[:id]}/#{options[:filename]}"
    end
    { body: response_body.merge(file_url:).to_json, status: 200 }
  end
end

#stub_asset_manager_create_asset_too_largeObject



98
99
100
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 98

def stub_asset_manager_create_asset_too_large
  stub_request(:post, "#{ASSET_MANAGER_ENDPOINT}/assets").to_return(status: 413)
end

#stub_asset_manager_create_asset_unprocessable(body = "") ⇒ Object



102
103
104
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 102

def stub_asset_manager_create_asset_unprocessable(body = "")
  stub_request(:post, "#{ASSET_MANAGER_ENDPOINT}/assets").to_return(body:, status: 422)
end

#stub_asset_manager_delete_asset(asset_id, body = {}) ⇒ Object



135
136
137
138
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 135

def stub_asset_manager_delete_asset(asset_id, body = {})
  stub_request(:delete, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}")
    .to_return(body: body.to_json, status: 200)
end

#stub_asset_manager_delete_asset_failure(asset_id) ⇒ Object



150
151
152
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 150

def stub_asset_manager_delete_asset_failure(asset_id)
  stub_request(:delete, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}").to_return(status: 500)
end

#stub_asset_manager_delete_asset_forbidden(asset_id) ⇒ Object



140
141
142
143
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 140

def stub_asset_manager_delete_asset_forbidden(asset_id)
  stub_request(:delete, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}")
    .to_return(status: 403)
end

#stub_asset_manager_delete_asset_missing(asset_id) ⇒ Object



145
146
147
148
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 145

def stub_asset_manager_delete_asset_missing(asset_id)
  stub_request(:delete, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}")
    .to_return(status: 404)
end

#stub_asset_manager_deletes_any_asset(body = {}) ⇒ Object



19
20
21
22
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 19

def stub_asset_manager_deletes_any_asset(body = {})
  stub_request(:delete, %r{\A#{ASSET_MANAGER_ENDPOINT}/assets})
    .to_return(body: body.to_json, status: 200)
end

#stub_asset_manager_does_not_have_an_asset(id) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 46

def stub_asset_manager_does_not_have_an_asset(id)
  response = {
    "_response_info" => { "status" => "not found" },
  }

  stub_request(:any, "#{ASSET_MANAGER_ENDPOINT}/assets/#{id}")
    .to_return(body: response.to_json, status: 404)
end

#stub_asset_manager_get_asset_forbidden(id) ⇒ Object



55
56
57
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 55

def stub_asset_manager_get_asset_forbidden(id)
  stub_request(:get, "#{ASSET_MANAGER_ENDPOINT}/assets/#{id}").to_return(status: 403)
end

#stub_asset_manager_has_a_whitehall_media_asset(legacy_url_path, content) ⇒ Object



41
42
43
44
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 41

def stub_asset_manager_has_a_whitehall_media_asset(legacy_url_path, content)
  stub_request(:get, "#{ASSET_MANAGER_ENDPOINT}/#{legacy_url_path}")
    .to_return(body: content, status: 200)
end

#stub_asset_manager_has_an_asset(id, atts, filename = "") ⇒ Object



24
25
26
27
28
29
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 24

def stub_asset_manager_has_an_asset(id, atts, filename = "")
  response = atts.merge("_response_info" => { "status" => "ok" })

  stub_asset_manager_request_to_get_asset(id, response)
  stub_asset_manager_request_to_asset_media(id, filename)
end

#stub_asset_manager_isnt_availableObject



10
11
12
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 10

def stub_asset_manager_isnt_available
  stub_request(:any, %r{\A#{ASSET_MANAGER_ENDPOINT}}).to_return(status: 503)
end

#stub_asset_manager_receives_an_asset(response_url = {}) ⇒ Object



88
89
90
91
92
93
94
95
96
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 88

def stub_asset_manager_receives_an_asset(response_url = {})
  warn <<~WARNING
    stub_asset_manager_receives_an_asset is deprecated and will be removed
    in a future version of gds-api-adapters. Replace calls to this method with
    stub_asset_manager_create_asset.
  WARNING

  stub_asset_manager_create_asset(response_url)
end

#stub_asset_manager_request_to_asset_media(id, filename) ⇒ Object



36
37
38
39
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 36

def stub_asset_manager_request_to_asset_media(id, filename)
  stub_request(:get, "#{ASSET_MANAGER_ENDPOINT}/media/#{id}/#{filename}")
    .to_return(body: "Some file content", status: 200)
end

#stub_asset_manager_request_to_get_asset(id, response) ⇒ Object



31
32
33
34
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 31

def stub_asset_manager_request_to_get_asset(id, response)
  stub_request(:get, "#{ASSET_MANAGER_ENDPOINT}/assets/#{id}")
    .to_return(body: response.to_json, status: 200)
end

#stub_asset_manager_restore_asset(asset_id, body = {}) ⇒ Object



154
155
156
157
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 154

def stub_asset_manager_restore_asset(asset_id, body = {})
  stub_request(:post, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}/restore")
    .to_return(body: body.to_json, status: 200)
end

#stub_asset_manager_restore_asset_failure(asset_id) ⇒ Object



169
170
171
172
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 169

def stub_asset_manager_restore_asset_failure(asset_id)
  stub_request(:post, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}/restore")
    .to_return(status: 500)
end

#stub_asset_manager_restore_asset_forbidden(asset_id) ⇒ Object



159
160
161
162
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 159

def stub_asset_manager_restore_asset_forbidden(asset_id)
  stub_request(:post, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}/restore")
    .to_return(status: 403)
end

#stub_asset_manager_restore_asset_not_found(asset_id) ⇒ Object



164
165
166
167
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 164

def stub_asset_manager_restore_asset_not_found(asset_id)
  stub_request(:post, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}/restore")
    .to_return(status: 404)
end

#stub_asset_manager_update_asset(asset_id, body = {}) ⇒ Object



110
111
112
113
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 110

def stub_asset_manager_update_asset(asset_id, body = {})
  stub_request(:put, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}")
    .to_return(body: body.to_json, status: 200)
end

#stub_asset_manager_update_asset_failure(asset_id) ⇒ Object



131
132
133
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 131

def stub_asset_manager_update_asset_failure(asset_id)
  stub_request(:put, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}").to_return(status: 500)
end

#stub_asset_manager_update_asset_forbidden(asset_id) ⇒ Object



115
116
117
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 115

def stub_asset_manager_update_asset_forbidden(asset_id)
  stub_request(:put, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}").to_return(status: 403)
end

#stub_asset_manager_update_asset_not_found(asset_id) ⇒ Object



119
120
121
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 119

def stub_asset_manager_update_asset_not_found(asset_id)
  stub_request(:put, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}").to_return(status: 404)
end

#stub_asset_manager_update_asset_too_large(asset_id) ⇒ Object



123
124
125
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 123

def stub_asset_manager_update_asset_too_large(asset_id)
  stub_request(:put, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}").to_return(status: 413)
end

#stub_asset_manager_update_asset_unprocessable(asset_id, body = "") ⇒ Object



127
128
129
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 127

def stub_asset_manager_update_asset_unprocessable(asset_id, body = "")
  stub_request(:put, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}").to_return(body:, status: 422)
end

#stub_asset_manager_updates_any_asset(body = {}) ⇒ Object



14
15
16
17
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 14

def stub_asset_manager_updates_any_asset(body = {})
  stub_request(:put, %r{\A#{ASSET_MANAGER_ENDPOINT}/assets})
    .to_return(body: body.to_json, status: 200)
end

#stub_asset_manager_upload_failureObject



106
107
108
# File 'lib/gds_api/test_helpers/asset_manager.rb', line 106

def stub_asset_manager_upload_failure
  stub_request(:post, "#{ASSET_MANAGER_ENDPOINT}/assets").to_return(status: 500)
end