jgrouper 0.0.5 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
-