gems/aws-sdk-ssmguiconnect/spec/endpoint_provider_spec.rb (299 lines of code) (raw):
# frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
require_relative 'spec_helper'
module Aws::SSMGuiConnect
describe EndpointProvider do
subject { Aws::SSMGuiConnect::EndpointProvider.new }
context "For region us-east-1 with FIPS enabled and DualStack enabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect-fips.us-east-1.api.aws"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-east-1", use_fips: true, use_dual_stack: true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region us-east-1 with FIPS enabled and DualStack disabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect-fips.us-east-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-east-1", use_fips: true, use_dual_stack: false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region us-east-1 with FIPS disabled and DualStack enabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect.us-east-1.api.aws"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-east-1", use_fips: false, use_dual_stack: true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region us-east-1 with FIPS disabled and DualStack disabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect.us-east-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-east-1", use_fips: false, use_dual_stack: false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region cn-north-1 with FIPS enabled and DualStack enabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect-fips.cn-north-1.api.amazonwebservices.com.cn"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "cn-north-1", use_fips: true, use_dual_stack: true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region cn-north-1 with FIPS enabled and DualStack disabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect-fips.cn-north-1.amazonaws.com.cn"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "cn-north-1", use_fips: true, use_dual_stack: false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region cn-north-1 with FIPS disabled and DualStack enabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect.cn-north-1.api.amazonwebservices.com.cn"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "cn-north-1", use_fips: false, use_dual_stack: true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region cn-north-1 with FIPS disabled and DualStack disabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect.cn-north-1.amazonaws.com.cn"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "cn-north-1", use_fips: false, use_dual_stack: false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region us-gov-east-1 with FIPS enabled and DualStack enabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect-fips.us-gov-east-1.api.aws"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-gov-east-1", use_fips: true, use_dual_stack: true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region us-gov-east-1 with FIPS enabled and DualStack disabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect-fips.us-gov-east-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-gov-east-1", use_fips: true, use_dual_stack: false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region us-gov-east-1 with FIPS disabled and DualStack enabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect.us-gov-east-1.api.aws"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-gov-east-1", use_fips: false, use_dual_stack: true})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region us-gov-east-1 with FIPS disabled and DualStack disabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect.us-gov-east-1.amazonaws.com"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-gov-east-1", use_fips: false, use_dual_stack: false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region us-iso-east-1 with FIPS enabled and DualStack enabled" do
let(:expected) do
{"error" => "FIPS and DualStack are enabled, but this partition does not support one or both"}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-iso-east-1", use_fips: true, use_dual_stack: true})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
end
end
context "For region us-iso-east-1 with FIPS enabled and DualStack disabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect-fips.us-iso-east-1.c2s.ic.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-iso-east-1", use_fips: true, use_dual_stack: false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region us-iso-east-1 with FIPS disabled and DualStack enabled" do
let(:expected) do
{"error" => "DualStack is enabled but this partition does not support DualStack"}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-iso-east-1", use_fips: false, use_dual_stack: true})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
end
end
context "For region us-iso-east-1 with FIPS disabled and DualStack disabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect.us-iso-east-1.c2s.ic.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-iso-east-1", use_fips: false, use_dual_stack: false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region us-isob-east-1 with FIPS enabled and DualStack enabled" do
let(:expected) do
{"error" => "FIPS and DualStack are enabled, but this partition does not support one or both"}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-isob-east-1", use_fips: true, use_dual_stack: true})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
end
end
context "For region us-isob-east-1 with FIPS enabled and DualStack disabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect-fips.us-isob-east-1.sc2s.sgov.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-isob-east-1", use_fips: true, use_dual_stack: false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For region us-isob-east-1 with FIPS disabled and DualStack enabled" do
let(:expected) do
{"error" => "DualStack is enabled but this partition does not support DualStack"}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-isob-east-1", use_fips: false, use_dual_stack: true})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
end
end
context "For region us-isob-east-1 with FIPS disabled and DualStack disabled" do
let(:expected) do
{"endpoint" => {"url" => "https://ssm-guiconnect.us-isob-east-1.sc2s.sgov.gov"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-isob-east-1", use_fips: false, use_dual_stack: false})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For custom endpoint with region set and fips disabled and dualstack disabled" do
let(:expected) do
{"endpoint" => {"url" => "https://example.com"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-east-1", use_fips: false, use_dual_stack: false, endpoint: "https://example.com"})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For custom endpoint with region not set and fips disabled and dualstack disabled" do
let(:expected) do
{"endpoint" => {"url" => "https://example.com"}}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{use_fips: false, use_dual_stack: false, endpoint: "https://example.com"})
endpoint = subject.resolve_endpoint(params)
expect(endpoint.url).to eq(expected['endpoint']['url'])
expect(endpoint.headers).to eq(expected['endpoint']['headers'] || {})
expect(endpoint.properties).to eq(expected['endpoint']['properties'] || {})
end
end
context "For custom endpoint with fips enabled and dualstack disabled" do
let(:expected) do
{"error" => "Invalid Configuration: FIPS and custom endpoint are not supported"}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-east-1", use_fips: true, use_dual_stack: false, endpoint: "https://example.com"})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
end
end
context "For custom endpoint with fips disabled and dualstack enabled" do
let(:expected) do
{"error" => "Invalid Configuration: Dualstack and custom endpoint are not supported"}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{region: "us-east-1", use_fips: false, use_dual_stack: true, endpoint: "https://example.com"})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
end
end
context "Missing region" do
let(:expected) do
{"error" => "Invalid Configuration: Missing Region"}
end
it 'produces the expected output from the EndpointProvider' do
params = EndpointParameters.new(**{})
expect do
subject.resolve_endpoint(params)
end.to raise_error(ArgumentError, expected['error'])
end
end
end
end