Commit 0ccff0a

mo <mo@mokhan.ca>
2017-11-30 16:30:10
move .build class method to sp metadata.
1 parent 3db30f4
lib/saml/kit/builders/service_provider_metadata.rb
@@ -66,12 +66,6 @@ module Saml
           Saml::Kit::ServiceProviderMetadata.new(to_xml)
         end
 
-        def self.build
-          builder = new
-          yield builder
-          builder.build
-        end
-
         private
 
         def entity_descriptor_options
lib/saml/kit/service_provider_metadata.rb
@@ -17,6 +17,13 @@ module Saml
         attribute = document.find_by("/md:EntityDescriptor/md:#{name}").attribute("WantAssertionsSigned")
         attribute.text.downcase == "true"
       end
+
+      def self.build
+        builder = Saml::Kit::Builders::ServiceProviderMetadata.new
+        yield builder
+        builder.build
+      end
+
     end
   end
 end
spec/saml/builders/service_provider_metadata_spec.rb
@@ -36,17 +36,4 @@ RSpec.describe Saml::Kit::Builders::ServiceProviderMetadata do
       Saml::Kit.configuration.stripped_encryption_certificate,
     ])
   end
-
-  describe ".build" do
-    it 'provides a nice API for building metadata' do
-      result = described_class.build do |builder|
-        builder.entity_id = entity_id
-        builder.add_assertion_consumer_service(acs_url, binding: :http_post)
-      end
-
-      expect(result).to be_instance_of(Saml::Kit::ServiceProviderMetadata)
-      expect(result.entity_id).to eql(entity_id)
-      expect(result.assertion_consumer_service_for(binding: :http_post).location).to eql(acs_url)
-    end
-  end
 end
spec/saml/service_provider_metadata_spec.rb
@@ -127,4 +127,19 @@ RSpec.describe Saml::Kit::ServiceProviderMetadata do
       expect(subject.matches?(fingerprint)).to be_falsey
     end
   end
+
+  describe ".build" do
+    let(:acs_url) { FFaker::Internet.uri("https") }
+
+    it 'provides a nice API for building metadata' do
+      result = described_class.build do |builder|
+        builder.entity_id = entity_id
+        builder.add_assertion_consumer_service(acs_url, binding: :http_post)
+      end
+
+      expect(result).to be_instance_of(Saml::Kit::ServiceProviderMetadata)
+      expect(result.entity_id).to eql(entity_id)
+      expect(result.assertion_consumer_service_for(binding: :http_post).location).to eql(acs_url)
+    end
+  end
 end