Commit eaf478a

mo <mo.khan@gmail.com>
2018-01-13 18:56:42
generate minimal user as per RFC 7643
1 parent e530ba0
Changed files (2)
lib
spec
lib/scim/shady.rb
@@ -5,27 +5,17 @@ module Scim
   module Shady
     class User
       attr_accessor :id
-      attr_accessor :external_id
+      attr_accessor :username
       attr_accessor :created_at
       attr_accessor :updated_at
       attr_accessor :location
       attr_accessor :version
-      attr_accessor :username
-      attr_accessor :full_name
-
-      def initialize
-        @emails = []
-      end
-
-      def add_email(email)
-        @emails << email
-      end
 
       def to_h
         {
           'schemas' => [Schemas::USER],
           'id' => id,
-          'externalId' => external_id,
+          'userName' => username,
           'meta' => {
             'resourceType' => 'User',
             'created' => created_at.utc.iso8601,
@@ -33,14 +23,6 @@ module Scim
             'location' => location,
             'version' => version,
           },
-          'name' => {
-            'formatted' => full_name,
-          },
-          'userName' => username,
-          'phoneNumbers' => [],
-          'emails' => @emails.each_with_index.map do |x, i|
-            { 'value' => x, 'type' => 'work', 'primary' => i == 0 }
-          end
         }
       end
 
spec/scim/user_spec.rb
@@ -2,44 +2,30 @@ RSpec.describe Scim::Shady::User do
   describe ".build" do
     subject { described_class }
     let(:id) { SecureRandom.uuid }
-    let(:email) { FFaker::Internet.email }
-    let(:other_email) { FFaker::Internet.email }
     let(:created_at) { Time.now }
     let(:updated_at) { Time.now }
     let(:user_url) { FFaker::Internet.uri("https") }
     let(:user_version) { SecureRandom.uuid }
     let(:username) { FFaker::Internet.user_name }
-    let(:full_name) { FFaker::Name.name_with_prefix }
 
     it 'builds a scim user' do
       result = subject.build do |builder|
         builder.id = id
-        builder.external_id = email
+        builder.username = username
         builder.created_at = created_at
         builder.updated_at = updated_at
         builder.location = user_url
         builder.version = user_version
-        builder.full_name = full_name
-
-        builder.username = username
-        builder.add_email(email)
-        builder.add_email(other_email)
       end.to_h
 
       expect(result['schemas']).to match_array([Scim::Shady::Schemas::USER])
       expect(result['id']).to eql(id)
-      expect(result['externalId']).to eql(email)
+      expect(result['userName']).to eql(username)
       expect(result['meta']['resourceType']).to eql('User')
       expect(result['meta']['created']).to eql(created_at.utc.iso8601)
       expect(result['meta']['lastModified']).to eql(updated_at.utc.iso8601)
       expect(result['meta']['location']).to eql(user_url)
       expect(result['meta']['version']).to eql(user_version)
-      expect(result['name']['formatted']).to eql(full_name)
-      expect(result['userName']).to eql(username)
-      expect(result['emails']).to match_array([
-        { 'value' => email, 'type' => 'work', 'primary' => true },
-        { 'value' => other_email, 'type' => 'work', 'primary' => false }
-      ])
     end
   end
 end