Commit 74d1577

mo <mo.khan@gmail.com>
2018-02-17 05:17:51
add rspec benchmark to start to profile xml generation.
1 parent f36a4e7
Changed files (3)
spec/saml/kit/metadata_spec.rb
@@ -3,15 +3,28 @@ RSpec.describe Saml::Kit::Metadata do
     subject { described_class }
 
     it 'returns an identity provider metadata' do
-      xml = Saml::Kit::IdentityProviderMetadata.build.to_xml
+      xml = described_class.build_xml do |x|
+        x.build_identity_provider
+      end
       expect(subject.from(xml)).to be_instance_of(Saml::Kit::IdentityProviderMetadata)
     end
 
     it 'returns a service provider metadata' do
-      xml = Saml::Kit::ServiceProviderMetadata.build.to_xml
+      xml = described_class.build_xml do |x|
+        x.build_service_provider
+      end
       expect(subject.from(xml)).to be_instance_of(Saml::Kit::ServiceProviderMetadata)
     end
 
+    it 'generates a full metadata in a reasonable amount of time' do
+      expect do
+        described_class.build_xml do |x|
+          x.build_identity_provider
+          x.build_service_provider
+        end
+      end.to perform_under(10).ms
+    end
+
     it 'returns a composite' do
       xml = <<-XML.strip_heredoc
         <EntityDescriptor xmlns="#{Saml::Kit::Namespaces::METADATA}" ID="#{Xml::Kit::Id.generate}" entityID="#{FFaker::Internet.uri('https')}">
spec/support/rspec_benchmark.rb
@@ -0,0 +1,5 @@
+require 'rspec-benchmark'
+
+RSpec.configure do |config|
+  config.include RSpec::Benchmark::Matchers
+end
saml-kit.gemspec
@@ -33,4 +33,5 @@ Gem::Specification.new do |spec|
   spec.add_development_dependency 'rubocop-rspec', '~> 1.22'
   spec.add_development_dependency 'simplecov', '~> 0.15'
   spec.add_development_dependency 'webmock', '~> 3.1'
+  spec.add_development_dependency 'rspec-benchmark', '~> 0.3'
 end