Commit 87b24ad

mokha <mokha@cisco.com>
2019-01-18 17:32:28
raise unknown attribute error when an unknown attribute is provided.
1 parent 97cbc87
Changed files (3)
lib
spec
scim
lib/scim/kit/v2/attributable.rb
@@ -41,7 +41,10 @@ module Scim
           if value.is_a?(Hash)
             attribute_for(name)&.assign_attributes(value)
           else
-            attribute_for(name)&._value = value
+            attribute = attribute_for(name)
+            raise Scim::Kit::UnknownAttributeError, name unless attribute
+
+            attribute._value = value
           end
         end
 
lib/scim/kit.rb
@@ -14,5 +14,6 @@ require 'scim/kit/version'
 module Scim
   module Kit
     class Error < StandardError; end
+    class UnknownAttributeError < Error; end
   end
 end
spec/scim/kit/v2/resource_spec.rb
@@ -469,10 +469,16 @@ RSpec.describe Scim::Kit::V2::Resource do
       specify { expect(subject.name.family_name).to eql('Garrett') }
       specify { expect(subject.emails[0][:value]).to eql(email) }
       specify { expect(subject.emails[0][:primary]).to be(true) }
+      specify do
+        attributes = { schemas: schemas.map(&:id), unknown: 'unknown' }
+        expect do
+          described_class.new(schemas: schemas, attributes: attributes)
+        end.to raise_error(Scim::Kit::UnknownAttributeError)
+      end
     end
   end
 
-  describe 'Errors' do
+  describe Scim::Kit::V2::Messages::ERROR do
     subject { described_class.new(schemas: schemas) }
 
     let(:schemas) { [Scim::Kit::V2::Error.default_schema] }