Commit 5ad0494
Changed files (5)
lib
scim
spec
scim
kit
lib/scim/kit/resource.rb
@@ -0,0 +1,15 @@
+module Scim
+ module Kit
+ class Resource
+ def to_json
+ JSON.generate(to_h)
+ end
+
+ def to_h
+ {
+ schemas: [Schema::RESOURCE_TYPE]
+ }
+ end
+ end
+ end
+end
lib/scim/kit/schema.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+module Scim
+ module Kit
+ module Schema
+ ERROR = 'urn:ietf:params:scim:api:messages:2.0:Error'
+ GROUP = 'urn:ietf:params:scim:schemas:core:2.0:Group'
+ RESOURCE_TYPE = 'urn:ietf:params:scim:schemas:core:2.0:ResourceType'
+ USER = 'urn:ietf:params:scim:schemas:core:2.0:User'
+ end
+ end
+end
lib/scim/kit.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
require 'scim/kit/version'
+require 'scim/kit/schema'
+require 'scim/kit/resource'
module Scim
module Kit
spec/scim/kit/resource_spec.rb
@@ -0,0 +1,17 @@
+RSpec.describe Scim::Kit::Resource do
+ subject { described_class.new }
+
+ before do
+ #subject.id = "Group"
+ #subject.meta.location = "https://www.example.org/scim/v2/resource_types/Group"
+ #subject.description = "Group"
+ #subject.endpoint = "https://www.example.org/scim/v2/groups"
+ #subject.name = "Group"
+ #subject.schema Scim::Kit::Schema::Group
+ #subject.schema_extensions = []
+ end
+
+ let(:hash) { JSON.parse(subject.to_json, symbolize_names: true) }
+
+ specify { expect(hash[:schemas]).to match_array([Scim::Kit::Schema::RESOURCE_TYPE]) }
+end
spec/spec_helper.rb
@@ -2,6 +2,7 @@
require 'bundler/setup'
require 'scim/kit'
+require 'json'
RSpec.configure do |config|
# Enable flags like --only-failures and --next-failure