Commit 249151c

mokha <mokha@cisco.com>
2019-01-08 18:29:34
start to define scim kit configuration object.
1 parent 6b7102e
Changed files (3)
lib/scim/kit/v2/configuration.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+module Scim
+  module Kit
+    module V2
+      class Configuration
+        class Builder
+          def service_provider_configuration(location:)
+            @sp_config = ServiceProviderConfiguration.new(location: location)
+            yield @sp_config
+          end
+
+          def apply_to(configuration)
+            configuration.service_provider_configuration = @sp_config
+          end
+        end
+
+        attr_accessor :service_provider_configuration
+
+        def initialize
+          builder = Builder.new
+          yield builder
+          builder.apply_to(self)
+        end
+      end
+    end
+  end
+end
lib/scim/kit/v2.rb
@@ -4,6 +4,7 @@ require 'scim/kit/v2/attributable'
 require 'scim/kit/v2/attribute'
 require 'scim/kit/v2/attribute_type'
 require 'scim/kit/v2/authentication_scheme'
+require 'scim/kit/v2/configuration'
 require 'scim/kit/v2/messages'
 require 'scim/kit/v2/meta'
 require 'scim/kit/v2/mutability'
spec/scim/kit/v2/configuration_spec.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+RSpec.describe Scim::Kit::V2::Configuration do
+  subject do
+    described_class.new do |x|
+      x.service_provider_configuration(location: sp_location) do |y|
+        y.add_authentication(:oauthbearertoken)
+        y.change_password.supported = true
+      end
+    end
+  end
+
+  let(:sp_location) { FFaker::Internet.uri('https') }
+
+  specify { expect(subject.service_provider_configuration.meta.location).to eql(sp_location) }
+  specify { expect(subject.service_provider_configuration.authentication_schemes[0].type).to be(:oauthbearertoken) }
+  specify { expect(subject.service_provider_configuration.change_password.supported).to be(true) }
+end