Commit 2b96a46
Changed files (4)
lib/scim/shady.rb
@@ -2,6 +2,29 @@ require "scim/shady/version"
module Scim
module Shady
- # Your code goes here...
+ class User
+ attr_accessor :id
+ attr_accessor :external_id
+
+ def to_h
+ {
+ 'schemas' => [Schemas::USER],
+ 'id' => id,
+ 'externalId' => external_id,
+ }
+ end
+
+ class << self
+ def build
+ user = new
+ yield user
+ user
+ end
+ end
+ end
+
+ class Schemas
+ USER = "urn:ietf:params:scim:schemas:core:2.0:User"
+ end
end
end
spec/scim/user_spec.rb
@@ -0,0 +1,19 @@
+RSpec.describe Scim::Shady::User do
+ describe ".build" do
+ subject { described_class }
+ let(:id) { SecureRandom.uuid }
+ let(:email) { FFaker::Internet.email }
+
+
+ it 'builds a scim user' do
+ result = subject.build do |builder|
+ builder.id = id
+ builder.external_id = 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)
+ end
+ end
+end
spec/spec_helper.rb
@@ -1,5 +1,7 @@
require "bundler/setup"
require "scim/shady"
+require "securerandom"
+require "ffaker"
RSpec.configure do |config|
# Enable flags like --only-failures and --next-failure
scim-shady.gemspec
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
spec.add_development_dependency "bundler", "~> 1.16"
spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "rspec", "~> 3.0"
+ spec.add_development_dependency "ffaker"
end