Commit b7c0f81

mo <mo@mokhan.ca>
2017-11-30 16:06:28
move authentication request builder to new namespace.
1 parent b227074
lib/saml/kit/builders/authentication_request.rb
@@ -1,7 +1,7 @@
 module Saml
   module Kit
-    class AuthenticationRequest < Document
-      class Builder
+    module Builders
+      class AuthenticationRequest
         attr_accessor :id, :now, :issuer, :acs_url, :name_id_format, :sign, :destination
         attr_accessor :version
 
@@ -25,7 +25,7 @@ module Saml
         end
 
         def build
-          AuthenticationRequest.new(to_xml)
+          Saml::Kit::AuthenticationRequest.new(to_xml)
         end
 
         private
lib/saml/kit/builders.rb
@@ -4,3 +4,10 @@ require 'saml/kit/builders/logout_request'
 require 'saml/kit/builders/logout_response'
 require 'saml/kit/builders/response'
 require 'saml/kit/builders/service_provider_metadata'
+
+module Saml
+  module Kit
+    module Builders
+    end
+  end
+end
spec/saml/bindings/http_post_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe Saml::Kit::Bindings::HttpPost do
     let(:relay_state) { "ECHO" }
 
     it 'encodes the request using the HTTP-POST encoding for a AuthenticationRequest' do
-      builder = Saml::Kit::AuthenticationRequest::Builder.new
+      builder = Saml::Kit::Builders::AuthenticationRequest.new
       url, saml_params = subject.serialize(builder, relay_state: relay_state)
 
       expect(url).to eql(location)
@@ -50,7 +50,7 @@ RSpec.describe Saml::Kit::Bindings::HttpPost do
     end
 
     it 'excludes the RelayState when blank' do
-      builder = Saml::Kit::AuthenticationRequest::Builder.new
+      builder = Saml::Kit::Builders::AuthenticationRequest.new
       url, saml_params = subject.serialize(builder)
 
       expect(url).to eql(location)
@@ -60,7 +60,7 @@ RSpec.describe Saml::Kit::Bindings::HttpPost do
 
   describe "#deserialize" do
     it 'deserializes to an AuthnRequest' do
-      builder = Saml::Kit::AuthenticationRequest::Builder.new
+      builder = Saml::Kit::Builders::AuthenticationRequest.new
       _, params = subject.serialize(builder)
       result = subject.deserialize(params)
       expect(result).to be_instance_of(Saml::Kit::AuthenticationRequest)
spec/saml/bindings/http_redirect_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe Saml::Kit::Bindings::HttpRedirect do
     let(:relay_state) { "ECHO" }
 
     it 'encodes the request using the HTTP-Redirect encoding' do
-      builder = Saml::Kit::AuthenticationRequest::Builder.new
+      builder = Saml::Kit::Builders::AuthenticationRequest.new
       url, _ = subject.serialize(builder, relay_state: relay_state)
       expect(url).to start_with(location)
       expect(url).to have_query_param('SAMLRequest')
@@ -27,7 +27,7 @@ RSpec.describe Saml::Kit::Bindings::HttpRedirect do
     end
 
     it 'deserializes the SAMLRequest to an AuthnRequest' do
-      url, _ = subject.serialize(Saml::Kit::AuthenticationRequest::Builder.new)
+      url, _ = subject.serialize(Saml::Kit::Builders::AuthenticationRequest.new)
       result = subject.deserialize(query_params_from(url))
       expect(result).to be_instance_of(Saml::Kit::AuthenticationRequest)
     end
@@ -74,7 +74,7 @@ RSpec.describe Saml::Kit::Bindings::HttpRedirect do
     end
 
     it 'raises an error when the signature does not match' do
-      url, _ = subject.serialize(Saml::Kit::AuthenticationRequest::Builder.new)
+      url, _ = subject.serialize(Saml::Kit::Builders::AuthenticationRequest.new)
       query_params = query_params_from(url)
       query_params['Signature'] = 'invalid'
       expect do
@@ -88,7 +88,7 @@ RSpec.describe Saml::Kit::Bindings::HttpRedirect do
       provider = builder.build
       allow(Saml::Kit.configuration.registry).to receive(:metadata_for).with(issuer).and_return(provider)
 
-      url, _ = subject.serialize(Saml::Kit::AuthenticationRequest::Builder.new)
+      url, _ = subject.serialize(Saml::Kit::Builders::AuthenticationRequest.new)
       result = subject.deserialize(query_params_from(url))
       expect(result).to be_instance_of(Saml::Kit::AuthenticationRequest)
       expect(result).to be_valid
spec/saml/builders/authentication_request_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-RSpec.describe Saml::Kit::AuthenticationRequest::Builder do
+RSpec.describe Saml::Kit::Builders::AuthenticationRequest do
   subject { described_class.new(configuration: configuration) }
   let(:configuration) do
     config = Saml::Kit::Configuration.new
spec/saml/authentication_request_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe Saml::Kit::AuthenticationRequest do
   let(:destination) { FFaker::Internet.http_url }
   let(:name_id_format) { Saml::Kit::Namespaces::EMAIL_ADDRESS }
   let(:raw_xml) do
-    builder = described_class::Builder.new
+    builder = Saml::Kit::Builders::AuthenticationRequest.new
     builder.id = id
     builder.now = Time.now.utc
     builder.issuer = issuer
@@ -25,7 +25,7 @@ RSpec.describe Saml::Kit::AuthenticationRequest do
   it { expect(subject.destination).to eql(destination) }
 
   describe "#to_xml" do
-    subject { described_class::Builder.new(configuration: configuration) }
+    subject { Saml::Kit::Builders::AuthenticationRequest.new(configuration: configuration) }
     let(:configuration) do
       config = Saml::Kit::Configuration.new
       config.issuer = issuer
@@ -83,7 +83,7 @@ RSpec.describe Saml::Kit::AuthenticationRequest do
     end
 
     it 'is invalid when the fingerprint of the certificate does not match the registered fingerprint' do
-      builder = described_class::Builder.new
+      builder = Saml::Kit::Builders::AuthenticationRequest.new
       builder.issuer = issuer
       builder.acs_url = acs_url
       xml = builder.to_xml
@@ -96,7 +96,7 @@ RSpec.describe Saml::Kit::AuthenticationRequest do
 
     it 'is invalid when the service provider is not known' do
       allow(registry).to receive(:metadata_for).and_return(nil)
-      builder = described_class::Builder.new
+      builder = Saml::Kit::Builders::AuthenticationRequest.new
       subject = described_class.new(builder.to_xml)
       expect(subject).to be_invalid
       expect(subject.errors[:provider]).to be_present
@@ -133,16 +133,15 @@ XML
   describe "#acs_url" do
     let(:registry) { instance_double(Saml::Kit::DefaultRegistry) }
     let(:metadata) { instance_double(Saml::Kit::ServiceProviderMetadata) }
+    let(:builder) { Saml::Kit::Builders::AuthenticationRequest.new }
 
     it 'returns the ACS in the request' do
-      builder = described_class::Builder.new
       builder.acs_url = acs_url
       subject = builder.build
       expect(subject.acs_url).to eql(acs_url)
     end
 
     it 'returns nil' do
-      builder = described_class::Builder.new
       builder.issuer = issuer
       builder.acs_url = nil
       subject = builder.build
README.md
@@ -32,7 +32,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
 
 ## Contributing
 
-Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/saml-kit.
+Bug reports and pull requests are welcome on GitHub at https://github.com/mokhan/saml-kit.
 
 ## License