jgrouper 0.0.5 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,129 +0,0 @@
1
- module JGrouper # :nodoc:
2
- #
3
- # = JGrouper::GroupType - A Grouper group type
4
- #
5
- class GroupType
6
-
7
- attr_accessor :name, :uuid
8
- attr_reader :error
9
-
10
- def initialize
11
- @grouper_group_type = nil
12
- yield self if block_given?
13
- self
14
- end
15
-
16
- #
17
- # Find all group types.
18
- #
19
- # group_types = JGrouper::GroupType.all do |group_type|
20
- # ...
21
- # end
22
- #
23
- def self.all
24
- group_types = Java::EduInternet2MiddlewareGrouper::GroupTypeFinder.findAll.collect { |gt| from_grouper gt }
25
- group_types.each { |_| yield _ } if block_given?
26
- group_types
27
- end
28
-
29
- #
30
- # Create group type.
31
- #
32
- # group_type = JGrouper::GroupType.create name
33
- #
34
- def self.create(name)
35
- group_type = from_grouper Java::EduInternet2MiddlewareGrouper::GroupType.createType( GrouperSession.startRootSession, name )
36
- yield group_type if block_given?
37
- group_type
38
- end
39
-
40
- #
41
- # Delete group type. Returns +false+ on failure.
42
- #
43
- # JGrouper::GroupType.delete(name)
44
- #
45
- def self.delete(name)
46
- group_type = find(name)
47
- return false if group_type.nil?
48
- group_type.delete
49
- end
50
-
51
- #
52
- # Delete group type. Sets +error+ and returns +false+ on failure.
53
- #
54
- # group_type.delete
55
- #
56
- def delete
57
- begin
58
- @grouper_group_type.delete GrouperSession.startRootSession # XXX How to handle sessions?
59
- return true
60
- rescue Exception => e
61
- @error = e
62
- end
63
- false
64
- end
65
-
66
- #
67
- # Find a group type by name.
68
- #
69
- # group_type = JGrouper::GroupType.find(name)
70
- #
71
- def self.find(name)
72
- group_type = from_grouper Java::EduInternet2MiddlewareGrouper::GroupTypeFinder.find(name, false)
73
- yield group_type if block_given?
74
- group_type
75
- end
76
-
77
- #
78
- # Generate JGrouper::GroupType instance from JSON by calling +JSON.parse(json_string)+
79
- #
80
- def self.json_create(json)
81
- new do |group_type|
82
- group_type.name = json['name']
83
- group_type.uuid = json['uuid']
84
- end
85
- end
86
-
87
- def method_missing(meth, *args, &block)
88
- begin
89
- block.call @grouper_group_type.send(meth, *args) if block
90
- @grouper_group_type.send(meth, *args)
91
- rescue NoMethodError
92
- super
93
- end
94
- end
95
-
96
- #
97
- # Return JSON representation of JGrouper::GroupType instance.
98
- #
99
- def to_json
100
- {
101
- :json_class => self.class.name,
102
- :name => self.name,
103
- :uuid => self.uuid
104
- }.to_json
105
- end
106
-
107
- #
108
- # Return String representation of JGrouper::GroupType instance.
109
- #
110
- def to_s
111
- %w( name uuid ).collect { |k| "#{k}=#{ self.send(k) }" }.join(' | ')
112
- end
113
-
114
-
115
- private
116
-
117
- def self.from_grouper(grouper)
118
- return nil if grouper.nil?
119
- new do |group_type|
120
- group_type.instance_variable_set :@grouper_group_type, grouper # XXX Is this even needed?
121
-
122
- group_type.name = grouper.getName
123
- group_type.uuid = grouper.getUuid
124
- end
125
- end
126
-
127
- end
128
- end
129
-
@@ -1,33 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'test/unit'
4
- require 'factory_girl'
5
-
6
-
7
- class JGrouper # :nodoc:
8
- #
9
- # = JGrouper::Stem::TestCase - For testing JGrouper::Stem
10
- #
11
- class Stem::TestCase < Test::Unit::TestCase
12
-
13
- def grouper_root_stem
14
- FactoryGirl.build :grouper_root_stem
15
- end
16
-
17
- def grouper_stem(name)
18
- case name.to_sym
19
- when :foo
20
- FactoryGirl.build :grouper_stem_foo
21
- when :"foo:bar"
22
- FactoryGirl.build :grouper_stem_foo_bar
23
- end
24
- raise ArgumentError, "invalid name: #{name}"
25
- end
26
-
27
- def root_stem_as_json
28
- FactoryGirl.attributes_for(:root_stem).to_json
29
- end
30
-
31
- end
32
- end
33
-
@@ -1,23 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'test/unit'
4
- require 'factory_girl'
5
-
6
-
7
- class JGrouper #: :nodoc:
8
- #
9
- # = JGrouper::Subject::TestCase - For testing JGrouper::Subject
10
- #
11
- class Subject::TestCase < Test::Unit::TestCase
12
-
13
- def grouper_root_subject
14
- FactoryGirl.build :grouper_root_subject
15
- end
16
-
17
- def root_subject_as_json
18
- FactoryGirl.attributes_for(:root_subject).to_json
19
- end
20
-
21
- end
22
- end
23
-
@@ -1,83 +0,0 @@
1
- module JGrouper #: :nodoc:
2
- #
3
- # = JGrouper::Subject - A Grouper subject.
4
- #
5
- class Subject
6
-
7
- attr_accessor :id, :name, :source, :type
8
-
9
- def initialize
10
- @grouper_subject = nil
11
- yield self if block_given?
12
- self
13
- end
14
-
15
- #
16
- # Generate JGrouper::Subject instance from JSON by calling +JSON.parse(json_string)+
17
- #
18
- def self.json_create(json)
19
- new do |subject|
20
- subject.id = json['id']
21
- subject.name = json['name']
22
- subject.source = json['source']
23
- subject.type = json['type']
24
- end
25
- end
26
-
27
- def method_missing(meth, *args, &block)
28
- begin
29
- block.call @grouper_subject.send(meth, *args) if block
30
- @grouper_subject.send(meth, *args)
31
- rescue NoMethodError
32
- super
33
- end
34
- end
35
-
36
- #
37
- # Return root subject.
38
- #
39
- # root_subject = JGrouper::Subject.root
40
- #
41
- def self.root
42
- subject = from_grouper SubjectFinder.findRootSubject
43
- yield subject if block_given?
44
- subject
45
- end
46
-
47
- #
48
- # Return JSON representation of JGrouper::Subject instance.
49
- #
50
- def to_json
51
- {
52
- :json_class => self.class.name,
53
- :id => self.id,
54
- :name => self.name,
55
- :source => self.source,
56
- :type => self.type
57
- }.to_json
58
- end
59
-
60
- #
61
- # Return String representation of JGrouper::Subject instance.
62
- #
63
- def to_s
64
- %w( id name type source ).collect { |k| "#{k}=#{ self.send(k) }" }.join(' | ')
65
- end
66
-
67
-
68
- private
69
-
70
- def self.from_grouper(grouper)
71
- new do |subject|
72
- subject.instance_variable_set :@grouper_subject, grouper # XXX Is this even needed?
73
-
74
- subject.id = grouper.getId
75
- subject.name = grouper.getName
76
- subject.source = grouper.sourceId
77
- subject.type = grouper.typeName
78
- end
79
- end
80
-
81
- end
82
- end
83
-
data/test/factories.rb DELETED
@@ -1,85 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'factory_girl'
4
-
5
-
6
- FactoryGirl.define do
7
- # Groups
8
- factory :grouper_wheel_group, class: OpenStruct do
9
- getDisplayExtension 'Wheel'
10
- getDisplayName 'Etc:Wheel'
11
- getExtension 'wheel'
12
- getName 'etc:wheel'
13
- getTypes [ 'base'] # FIXME
14
- getUuid 'etc-wheel-group'
15
- end
16
-
17
- factory :wheel_group, class: OpenStruct do
18
- json_class JGrouper::Group
19
- display_extension 'Wheel'
20
- display_name 'Etc:Wheel'
21
- extension 'wheel'
22
- name 'etc:wheel'
23
- types [ 'base' ]
24
- uuid 'etc-wheel-group'
25
- end
26
-
27
-
28
- # Group Types
29
- factory :jgrouper_type, class: OpenStruct do
30
- json_class JGrouper::GroupType
31
- name 'jgrouper'
32
- uuid 'some-fake-uuid'
33
- end
34
-
35
- factory :jgrouper_grouper_type, class: OpenStruct do
36
- getName 'jgrouper'
37
- getUuid 'some-fake-uuid'
38
- end
39
-
40
-
41
- # Stems
42
- factory :grouper_root_stem, class: OpenStruct do
43
- getDisplayName ''
44
- getName ''
45
- getUuid 'some-fake-uuid'
46
- end
47
-
48
- factory :grouper_stem_foo, class: OpenStruct do
49
- getDisplayName 'foo'
50
- getName 'foo'
51
- getUuid 'stem-foo'
52
- end
53
-
54
- factory :grouper_stem_foo_bar, class: OpenStruct do
55
- getDisplayName 'foo:Bar'
56
- getName 'foo:bar'
57
- getUuid 'stem-foo-bar'
58
- end
59
-
60
- factory :root_stem, class: OpenStruct do
61
- json_class JGrouper::Stem
62
- display_name ''
63
- name ''
64
- uuid 'some-fake-uuid'
65
- end
66
-
67
-
68
- # Subjects
69
- factory :grouper_root_subject, class: OpenStruct do
70
- getId 'GrouperSystem'
71
- getName 'GrouperSysAdmin'
72
- sourceId 'g:isa'
73
- typeName 'application'
74
- end
75
-
76
- factory :root_subject, class: OpenStruct do
77
- json_class JGrouper::Subject
78
- id 'GrouperSystem'
79
- name 'GrouperSysAdmin'
80
- source 'g:isa'
81
- type 'application'
82
- end
83
-
84
- end
85
-
data/test/helper.rb DELETED
@@ -1,17 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # TODO JGrouper::TestCase
4
-
5
- require 'test/unit'
6
- require 'mocha'
7
- require 'ostruct'
8
-
9
- require_relative '../lib/jgrouper'
10
- require_relative 'factories'
11
-
12
- require 'simplecov'
13
- SimpleCov.start
14
-
15
- raise RuntimeError, "ENV[GROUPER_HOME'] must be set!" unless ENV['GROUPER_HOME']
16
- JGrouper.home ENV['GROUPER_HOME']
17
-
data/test/test_group.rb DELETED
@@ -1,60 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require_relative 'helper'
4
- require_relative '../lib/jgrouper/group/test_case'
5
-
6
-
7
- class JGrouper::Group::TestCase < Test::Unit::TestCase
8
-
9
- def test_mocked_find_wheel
10
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
11
- Java::EduInternet2MiddlewareGrouper::GroupFinder.expects(:findByName).returns grouper_wheel_group
12
-
13
- JGrouper::Group.find('etc:wheel') do |group|
14
- assert_not_nil group
15
- assert group.kind_of? JGrouper::Group
16
- assert_equal 'Wheel', group.display_extension
17
- assert_equal 'Etc:Wheel', group.display_name
18
- assert_equal 'wheel', group.extension
19
- assert_equal 'etc:wheel', group.name
20
- assert_equal [ 'base' ], group.types # FIXME
21
- assert_equal 'etc-wheel-group', group.uuid
22
- end
23
- end
24
-
25
- def test_mocked_group_to_json
26
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
27
- Java::EduInternet2MiddlewareGrouper::GroupFinder.expects(:findByName).returns grouper_wheel_group
28
-
29
- assert_equal wheel_group_as_json, JGrouper::Group.find('etc:wheel').to_json
30
- end
31
-
32
- def test_group_from_json
33
- group = JSON.parse wheel_group_as_json
34
- assert_not_nil group
35
- assert group.kind_of? JGrouper::Group
36
- assert_equal 'Wheel', group.display_extension
37
- assert_equal 'Etc:Wheel', group.display_name
38
- assert_equal 'wheel', group.extension
39
- assert_equal 'etc:wheel', group.name
40
- assert_equal [ 'base' ], group.types
41
- assert_equal 'etc-wheel-group', group.uuid
42
- end
43
-
44
- def test_group_types
45
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
46
- Java::EduInternet2MiddlewareGrouper::GroupFinder.expects(:findByName).returns grouper_wheel_group
47
-
48
- JGrouper::Group.find('etc:wheel') do |group|
49
- assert_equal true, group.add_type('base') # Add already present type
50
- # TODO Add type
51
- assert_equal false, group.add_type('foo') # Add invalid group type
52
-
53
- # TODO Delete unassigned type
54
- # TODO Delete type
55
- assert_equal false, group.delete_type('foo') # Delete invalid group type
56
- end
57
- end
58
-
59
- end
60
-
@@ -1,106 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require_relative 'helper'
4
-
5
-
6
- class JGrouper::GroupType::TestCase
7
-
8
- def test_mocked_create_group_type
9
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
10
- Java::EduInternet2MiddlewareGrouper::GroupType.expects(:createType).returns grouper_type
11
- JGrouper::GroupType.create('jgrouper') do |group_type|
12
- assert_not_nil group_type
13
- assert group_type.kind_of? JGrouper::GroupType
14
- assert_equal 'jgrouper', group_type.name
15
- assert_equal 'some-fake-uuid', group_type.uuid
16
- end
17
- end
18
-
19
- def test_mocked_group_type_to_json
20
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
21
- Java::EduInternet2MiddlewareGrouper::GroupType.expects(:createType).returns grouper_type
22
- assert_equal jgrouper_type_as_json, JGrouper::GroupType.create('jgrouper').to_json
23
- end
24
-
25
- def test_group_type_from_json
26
- group_type = JSON.parse jgrouper_type_as_json
27
- assert_not_nil group_type
28
- assert group_type.kind_of? JGrouper::GroupType
29
- assert_equal 'jgrouper', group_type.name
30
- assert_equal 'some-fake-uuid', group_type.uuid
31
- end
32
-
33
- def test_mocked_find_all
34
- Java::EduInternet2MiddlewareGrouper::GroupTypeFinder.expects(:findAll).returns [ grouper_type ]
35
- group_types = JGrouper::GroupType.all do |group_type|
36
- assert_not_nil group_type
37
- assert group_type.kind_of? JGrouper::GroupType
38
- assert_equal 'jgrouper', group_type.name
39
- assert_equal 'some-fake-uuid', group_type.uuid
40
- end
41
- assert_not_nil group_types
42
- assert_not_nil group_types.first
43
- assert group_types.first.kind_of? JGrouper::GroupType
44
- assert_equal 'jgrouper', group_types.first.name
45
- assert_equal 'some-fake-uuid', group_types.first.uuid
46
- end
47
-
48
- def test_mocked_find_by_name
49
- Java::EduInternet2MiddlewareGrouper::GroupTypeFinder.expects(:find).returns grouper_type
50
- JGrouper::GroupType.find('base') do |group_type|
51
- assert_not_nil group_type
52
- assert group_type.kind_of? JGrouper::GroupType
53
- assert_equal 'jgrouper', group_type.name
54
- assert_equal 'some-fake-uuid', group_type.uuid
55
- end
56
- end
57
-
58
- def test_mocked_find_by_name_failure
59
- Java::EduInternet2MiddlewareGrouper::GroupTypeFinder.expects(:find).returns nil
60
- assert_nil JGrouper::GroupType.find('jgrouper')
61
- end
62
-
63
- def test_mocked_instance_delete
64
- type = grouper_type
65
-
66
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
67
- Java::EduInternet2MiddlewareGrouper::GroupTypeFinder.expects(:find).returns type
68
- type.expects(:delete).returns(nil)
69
-
70
- assert JGrouper::GroupType.find('jgrouper').delete
71
- end
72
-
73
- def test_mocked_instance_delete_failure
74
- type = grouper_type
75
-
76
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
77
- Java::EduInternet2MiddlewareGrouper::GroupTypeFinder.expects(:find).returns type
78
- type.expects(:delete).raises(Exception, 'Mocked Exception')
79
-
80
- group_type = JGrouper::GroupType.find('jgrouper')
81
- assert_equal false, group_type.delete
82
- assert_equal 'Mocked Exception', group_type.error.to_s
83
- end
84
-
85
- def test_mocked_class_delete
86
- type = grouper_type
87
-
88
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
89
- Java::EduInternet2MiddlewareGrouper::GroupTypeFinder.expects(:find).returns type
90
- type.expects(:delete).returns(nil)
91
-
92
- assert JGrouper::GroupType.delete('jgrouper')
93
- end
94
-
95
- def test_mocked_class_delete_failure
96
- type = grouper_type
97
-
98
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
99
- Java::EduInternet2MiddlewareGrouper::GroupTypeFinder.expects(:find).returns type
100
- type.expects(:delete).raises(Exception, 'Mocked Exception')
101
-
102
- assert_equal false, JGrouper::GroupType.delete('jgrouper')
103
- end
104
-
105
- end
106
-
data/test/test_stem.rb DELETED
@@ -1,90 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require_relative 'helper'
4
-
5
-
6
- class JGrouper::Stem::TestCase
7
-
8
- def test_mocked_find_root_stem
9
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
10
- Java::EduInternet2MiddlewareGrouper::StemFinder.expects(:findRootStem).returns grouper_root_stem
11
-
12
- JGrouper::Stem.root do |stem|
13
- assert_not_nil stem
14
- assert stem.kind_of? JGrouper::Stem
15
- assert_equal '', stem.display_name
16
- assert_equal '', stem.name
17
- assert_equal 'some-fake-uuid', stem.uuid
18
- end
19
- end
20
-
21
- def test_mocked_stem_to_json
22
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
23
- Java::EduInternet2MiddlewareGrouper::StemFinder.expects(:findRootStem).returns grouper_root_stem
24
-
25
- assert_equal root_stem_as_json, JGrouper::Stem.root.to_json
26
- end
27
-
28
- def test_stem_from_json
29
- stem = JSON.parse root_stem_as_json
30
- assert_not_nil stem
31
- assert stem.kind_of? JGrouper::Stem
32
- assert_equal '', stem.display_name
33
- assert_equal '', stem.name
34
- assert_equal 'some-fake-uuid', stem.uuid
35
- end
36
-
37
- def test_mocked_find_by_name
38
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
39
- Java::EduInternet2MiddlewareGrouper::StemFinder.expects(:findByName).returns grouper_stem('foo:bar')
40
-
41
- JGrouper::Stem.find('foo:bar') do |stem|
42
- assert_not_nil stem
43
- assert stem.kind_of? JGrouper::Stem
44
- assert_equal 'foo', stem.display_name
45
- assert_equal 'foo', stem.name
46
- assert_equal 'stem-foo', stem.uuid
47
- end
48
- end
49
-
50
- def test_mocked_find_by_name_failure
51
- Java::EduInternet2MiddlewareGrouper::GrouperSession.expects(:startRootSession).returns true
52
- Java::EduInternet2MiddlewareGrouper::StemFinder.expects(:findByName).returns nil
53
-
54
- assert_nil JGrouper::Stem.find('foo:bar')
55
- end
56
-
57
- def test_mocked_create_stem_without_display_name_and_without_intermediaries
58
- root_stem = grouper_root_stem
59
-
60
- JGrouper::Stem.expects(:root).returns root_stem
61
- root_stem.expects(:add_stem).returns JGrouper::Stem.send( :from_grouper, grouper_stem(:foo) )
62
-
63
- JGrouper::Stem.create('foo') do |stem|
64
- assert_not_nil stem
65
- assert stem.kind_of? JGrouper::Stem
66
- assert_equal 'foo', stem.display_name
67
- assert_equal 'foo', stem.name
68
- assert_not_nil stem.uuid
69
- end
70
- end
71
-
72
- def test_mocked_create_stem_with_display_name_and_with_intermediaries
73
- root_stem = grouper_root_stem
74
- stem_foo = grouper_stem :foo
75
-
76
- JGrouper::Stem.expects(:root).returns root_stem
77
- root_stem.expects(:add_stem).returns stem
78
- stem.expects(:add_stem).returns JGrouper::Stem.send( :from_grouper, grouper_stem('foo:bar') )
79
-
80
- JGrouper::Stem.create('foo:bar', 'foo:Bar') do |stem|
81
- assert_not_nil stem
82
- assert stem.kind_of? JGrouper::Stem
83
- assert_equal 'foo:Bar', stem.display_name
84
- assert_equal 'foo:bar', stem.name
85
- assert_not_nil stem.uuid
86
- end
87
- end
88
-
89
- end
90
-
data/test/test_subject.rb DELETED
@@ -1,36 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require_relative 'helper'
4
-
5
-
6
- class JGrouper::Subject::TestCase
7
-
8
- def test_mocked_find_root_subject
9
- Java::EduInternet2MiddlewareGrouper::SubjectFinder.expects(:findRootSubject).returns grouper_root_subject
10
- JGrouper::Subject.root do |subject|
11
- assert_not_nil subject
12
- assert subject.kind_of? JGrouper::Subject
13
- assert_equal 'GrouperSystem', subject.id
14
- assert_equal 'GrouperSysAdmin', subject.name
15
- assert_equal 'g:isa', subject.source
16
- assert_equal 'application', subject.type
17
- end
18
- end
19
-
20
- def test_mocked_subject_to_json
21
- Java::EduInternet2MiddlewareGrouper::SubjectFinder.expects(:findRootSubject).returns grouper_root_subject
22
- assert_equal root_subject_as_json, JGrouper::Subject.root.to_json
23
- end
24
-
25
- def test_subject_from_json
26
- subject = JSON.parse root_subject_as_json
27
- assert_not_nil subject
28
- assert subject.kind_of? JGrouper::Subject
29
- assert_equal 'GrouperSystem', subject.id
30
- assert_equal 'GrouperSysAdmin', subject.name
31
- assert_equal 'g:isa', subject.source
32
- assert_equal 'application', subject.type
33
- end
34
-
35
- end
36
-