Commit ca7df42

mo <mo@mokhan.ca>
2018-03-16 17:07:43
check for nil.
1 parent 6fa774e
lib/saml/kit/default_registry.rb
@@ -74,7 +74,7 @@ module Saml
 
       def ensure_valid_metadata(metadata)
         error = ArgumentError.new('Cannot register invalid metadata')
-        raise error if metadata.invalid? || !metadata.respond_to?(:entity_id)
+        raise error if metadata.nil? || !metadata.respond_to?(:entity_id) || metadata.invalid?
       end
 
       # This class is responsible for
spec/saml/kit/default_registry_spec.rb
@@ -104,6 +104,12 @@ RSpec.describe Saml::Kit::DefaultRegistry do
         subject.register(authn_request)
       end.to raise_error(/Cannot register invalid metadata/)
     end
+
+    it 'raises an error when the document is nil' do
+      expect do
+        subject.register(nil)
+      end.to raise_error(/Cannot register invalid metadata/)
+    end
   end
 
   describe '#each' do
.reek
@@ -1,125 +0,0 @@
----
-Attribute:
-  exclude:
-  - Saml::Kit::Assertion#occurred_at
-  - Saml::Kit::Builders::AuthenticationRequest#assertion_consumer_service_url
-  - Saml::Kit::Builders::AuthenticationRequest#destination
-  - Saml::Kit::Builders::AuthenticationRequest#id
-  - Saml::Kit::Builders::AuthenticationRequest#issuer
-  - Saml::Kit::Builders::AuthenticationRequest#name_id_format
-  - Saml::Kit::Builders::AuthenticationRequest#now
-  - Saml::Kit::Builders::AuthenticationRequest#version
-  - Saml::Kit::Builders::IdentityProviderMetadata#attributes
-  - Saml::Kit::Builders::IdentityProviderMetadata#name_id_formats
-  - Saml::Kit::Builders::IdentityProviderMetadata#want_authn_requests_signed
-  - Saml::Kit::Builders::LogoutRequest#destination
-  - Saml::Kit::Builders::LogoutRequest#id
-  - Saml::Kit::Builders::LogoutRequest#issuer
-  - Saml::Kit::Builders::LogoutRequest#name_id_format
-  - Saml::Kit::Builders::LogoutRequest#now
-  - Saml::Kit::Builders::LogoutRequest#version
-  - Saml::Kit::Builders::LogoutResponse#destination
-  - Saml::Kit::Builders::LogoutResponse#id
-  - Saml::Kit::Builders::LogoutResponse#issuer
-  - Saml::Kit::Builders::LogoutResponse#now
-  - Saml::Kit::Builders::LogoutResponse#status_code
-  - Saml::Kit::Builders::LogoutResponse#version
-  - Saml::Kit::Builders::Metadata#contact_email
-  - Saml::Kit::Builders::Metadata#entity_id
-  - Saml::Kit::Builders::Metadata#id
-  - Saml::Kit::Builders::Metadata#identity_provider
-  - Saml::Kit::Builders::Metadata#organization_name
-  - Saml::Kit::Builders::Metadata#organization_url
-  - Saml::Kit::Builders::Metadata#service_provider
-  - Saml::Kit::Builders::Response#destination
-  - Saml::Kit::Builders::Response#id
-  - Saml::Kit::Builders::Response#issuer
-  - Saml::Kit::Builders::Response#now
-  - Saml::Kit::Builders::Response#reference_id
-  - Saml::Kit::Builders::Response#status_code
-  - Saml::Kit::Builders::Response#status_message
-  - Saml::Kit::Builders::Response#version
-  - Saml::Kit::Builders::ServiceProviderMetadata#acs_urls
-  - Saml::Kit::Builders::ServiceProviderMetadata#logout_urls
-  - Saml::Kit::Builders::ServiceProviderMetadata#name_id_formats
-  - Saml::Kit::Builders::ServiceProviderMetadata#want_assertions_signed
-  - Saml::Kit::Configuration#clock_drift
-  - Saml::Kit::Configuration#digest_method
-  - Saml::Kit::Configuration#entity_id
-  - Saml::Kit::Configuration#logger
-  - Saml::Kit::Configuration#registry
-  - Saml::Kit::Configuration#session_timeout
-  - Saml::Kit::Configuration#signature_method
-  - Saml::Kit::Document#registry
-BooleanParameter:
-  exclude:
-  - Saml::Kit::DefaultRegistry#register_url
-  - Saml::Kit::DefaultRegistry::HttpApi#initialize
-ControlParameter:
-  exclude:
-  - Saml::Kit::Assertion#to_xml
-  - Saml::Kit::Bindings::HttpRedirect#algorithm_for
-  - Saml::Kit::Document#to_xml
-  - Saml::Kit::Metadata#to_xml
-  - Saml::Kit::Signature#to_xml
-TooManyInstanceVariables:
-  max_instance_variables: 15
-TooManyMethods:
-  max_methods: 30
-TooManyStatements:
-  max_statements: 10
-UtilityFunction:
-  exclude:
-  - Saml::Kit::Assertion#parse_date
-  - Saml::Kit::Bindings::HttpRedirect#algorithm_for
-  - Saml::Kit::Bindings::HttpRedirect#canonicalize
-  - Saml::Kit::Bindings::HttpRedirect#normalize
-  - Saml::Kit::Bindings::HttpRedirect#params_to_hash
-  - Saml::Kit::NullAssertion#expired_at
-  - Saml::Kit::NullAssertion#started_at
-  - uri_for
-  - xml_document
-  - Saml::Kit::Serializable#decode
-  - Saml::Kit::Serializable#deflate
-  - Saml::Kit::Serializable#encode
-  - Saml::Kit::Serializable#escape
-  - Saml::Kit::Serializable#inflate
-  - Saml::Kit::Serializable#unescape
-LongParameterList:
-  max_params: 4
-DuplicateMethodCall:
-  exclude:
-  - Saml::Kit::Bindings::Binding#saml_param_from
-  - Saml::Kit::Builders::Response#initialize
-  - Saml::Kit::XmlTemplatable#sign?
-FeatureEnvy:
-  exclude:
-  - Saml::Kit::Bindings::Binding#saml_param_from
-  - Saml::Kit::Bindings::HttpRedirect#serialize
-  - Saml::Kit::DefaultRegistry#register
-  - Saml::Kit::Metadata#matches?
-  - Saml::Kit::Signature#expected_digest_value
-  - Saml::Kit::Signature#trusted?
-NilCheck:
-  exclude:
-  - Saml::Kit::Bindings::HttpRedirect#ensure_valid_signature
-  - Saml::Kit::IdentityProviderMetadata#want_authn_requests_signed
-  - Saml::Kit::LogoutRequest#single_logout_service
-  - Saml::Kit::Respondable#must_match_request_id
-  - Saml::Kit::Response#assertion
-  - Saml::Kit::ServiceProviderMetadata#want_assertions_signed
-  - Saml::Kit::Signature#certificate
-  - Saml::Kit::Signature#trusted?
-  - Saml::Kit::Signature#validate_signature
-  - Saml::Kit::XmlTemplatable#sign?
-ManualDispatch:
-  exclude:
-  - Saml::Kit::Builders::Assertion#assertion_attributes
-  - Saml::Kit::CompositeMetadata#method_missing
-  - Saml::Kit::CompositeMetadata#respond_to_missing?
-UnusedParameters:
-  exclude:
-  - Saml::Kit::InvalidDocument#initialize
-TooManyConstants:
-  exclude:
-  - Saml::Kit::Namespaces
Rakefile
@@ -2,16 +2,12 @@
 
 require 'bundler/audit/task'
 require 'bundler/gem_tasks'
-require 'reek/rake/task'
 require 'rspec/core/rake_task'
 require 'rubocop/rake_task'
 
 RSpec::Core::RakeTask.new(:spec)
 RuboCop::RakeTask.new(:rubocop)
 Bundler::Audit::Task.new
-Reek::Rake::Task.new(:reek) do |task|
-  task.config_file = '.reek'
-end
 
-task lint: [:rubocop, :reek, 'bundle:audit']
+task lint: [:rubocop, 'bundle:audit']
 task default: :spec
saml-kit.gemspec
@@ -34,7 +34,6 @@ Gem::Specification.new do |spec|
   spec.add_development_dependency 'bundler-audit', '~> 0.6'
   spec.add_development_dependency 'ffaker', '~> 2.7'
   spec.add_development_dependency 'rake', '~> 10.0'
-  spec.add_development_dependency 'reek', '~> 4.8'
   spec.add_development_dependency 'rspec', '~> 3.0'
   spec.add_development_dependency 'rspec-benchmark', '~> 0.3'
   spec.add_development_dependency 'rubocop', '~> 0.52'