uaeds 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 360c26e4e040f658fcb0bdc374c0a75aa231e571
4
- data.tar.gz: 77b9e3273861c6eba3765e8492394151b9c4fb1c
3
+ metadata.gz: 907aacaa9c34bac89def7ce8bed17e01de91c23b
4
+ data.tar.gz: 984fe8b2eb8d1d5961cde7edc9b934eb460309a0
5
5
  SHA512:
6
- metadata.gz: faa6d09b2927831efcb6c39cc27d3ec4247fdb26280314dbff86d7091a547793894570aae2b808dcf29800f373e429c084fd975e51aa33833678478bd0e85ade
7
- data.tar.gz: 5053b713ee6cce2ee4949841064aad2aa0a1cf706e5cbfbd786bb960206b7175ff0b6d66219e0960abf9e4699cdb6e893f8c36f8cdb03fa347cf46e6b9f71233
6
+ metadata.gz: 95457717f6e416447c9a8ca814eb7dbb8a1982ed000eedb69f040906c8240746c3392b2bd5bc12ad353cca67cdac82c54f48a0eb859a6eafbecd3a5d6ef0cff1
7
+ data.tar.gz: 64bc13bf634d303ebed6126d84b90fd989131f7df28a4baf02561df4f9eb4611a5442fecadb37fba3ea1140bb6d011989dd8c883c595de91675a794f8f280162
@@ -10,7 +10,9 @@ module Uaeds
10
10
 
11
11
  def get_value(prop_name)
12
12
  data = get_xml_attr(prop_name)
13
- if data.length == 0
13
+ if data.is_a? String
14
+ return data
15
+ elsif data.length == 0
14
16
  return nil
15
17
  elsif data.length == 1
16
18
  return data[0].content
@@ -52,6 +52,18 @@ module Uaeds
52
52
  lookup_value(:emplId)
53
53
  end
54
54
 
55
+ def surname
56
+ lookup_value(:sn)
57
+ end
58
+
59
+ def given_name
60
+ lookup_value(:givenName)
61
+ end
62
+
63
+ def first_name
64
+ given_name
65
+ end
66
+
55
67
  def name
56
68
  cn
57
69
  end
@@ -64,6 +76,14 @@ module Uaeds
64
76
  lookup_value(:cn)
65
77
  end
66
78
 
79
+ def email
80
+ mail
81
+ end
82
+
83
+ def mail
84
+ lookup_value(:mail)
85
+ end
86
+
67
87
  def person_type
68
88
  edu_person_primary_affiliation
69
89
  end
@@ -0,0 +1,65 @@
1
+ require 'date'
2
+ require 'uaeds/eds'
3
+ require 'uaeds/eds_dsml'
4
+ require 'uaeds/dsml'
5
+ require 'uaeds/dsml_person'
6
+
7
+ # Provided to ease testing of applications using DSML
8
+ module Uaeds
9
+ class MockEdsDSML < EdsDSML
10
+
11
+
12
+ def initialize
13
+ @mock_overrides = {}
14
+ end
15
+
16
+ def self.eds_endpoint=(endpoint=nil)
17
+ end
18
+
19
+ def self.eds_endpoint
20
+ end
21
+
22
+ def set_mock_overrides(dict)
23
+ @mock_overrides = dict
24
+ end
25
+
26
+ private
27
+
28
+ def open_person(identifier)
29
+ MockDSMLPerson.new(generate_attributes(identifier))
30
+ end
31
+
32
+ def generate_attributes(identifier)
33
+ # I'm sure there's a more elegant way to write this, but it's already written.
34
+ return {
35
+ :uid => @mock_overrides[:uid] || "mockuser#{identifier}", # netid
36
+ :uaId => @mock_overrides[:uaId] || ('%012i' % identifier), # 12 digits
37
+ :isoNumber => @mock_overrides[:isoNumber] || ('%016i' % identifier), # cat card, 16 digits
38
+ :emplId => @mock_overrides[:emplid] || ('%08i' % identifier), # also SID, 8 digit
39
+ :cn => @mock_overrides[:cn] || "mock user #{identifier}", # complete name
40
+ :givenName => @mock_overrides[:givenName] || "mock", # First + initial
41
+ :sn => @mock_overrides[:sn] || "user #{identifier}", # surname/last name
42
+ :mail => @mock_overrides[:mail] || "mockuser#{identifier}@example.com", # email
43
+ :eduPersonPrimaryAffiliation => @mock_overrides[:eduPersonPrimaryAffiliation] || "staff", # staff, student, member, etc.
44
+ :employeeTitle => @mock_overrides[:employeeTitle] || "Test Robot",
45
+ :employeePrimaryDept => @mock_overrides[:employeePrimaryDept] || "0000",
46
+ :employeePrimaryDeptName => @mock_overrides[:employeePrimaryDeptName] || "Robot Wing"
47
+ }
48
+ end
49
+
50
+ end
51
+
52
+ class MockDSMLPerson < DSMLPerson
53
+
54
+ def initialize(data={})
55
+ @xml = data
56
+ @value_h = {}
57
+ end
58
+
59
+ def get_xml_attr(attr)
60
+ return @xml[attr]
61
+ end
62
+ end
63
+
64
+ end
65
+
@@ -1,3 +1,3 @@
1
1
  module Uaeds
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,46 @@
1
+ require 'uaeds/mock_eds'
2
+
3
+
4
+ module Uaeds
5
+
6
+ describe MockEdsDSML, MockDSMLPerson do
7
+
8
+ describe 'MockEdsDSML' do
9
+ let(:eds){ MockEdsDSML.instance }
10
+
11
+ it 'provides an mock instance' do
12
+ expect(eds).to be_an_instance_of MockEdsDSML
13
+ end
14
+ end
15
+
16
+ describe 'MockEdsDSML can retrieve a mock person' do
17
+ before{
18
+ @test_id = 1
19
+ }
20
+ let(:person){ MockEdsDSML.instance.person_by_uaid(@test_id) }
21
+
22
+ it 'provides a mock person' do
23
+ expect(person).to be_an_instance_of MockDSMLPerson
24
+ expect(person.uaid).to eq('%012i' % @test_id)
25
+ expect(person.first_name).to eq('mock')
26
+ end
27
+ end
28
+
29
+ describe 'can override default mock values' do
30
+ before{
31
+ @test_id = 1
32
+ MockEdsDSML.instance.set_mock_overrides({:givenName => 'Larry'})
33
+ }
34
+ let(:person){ MockEdsDSML.instance.person_by_uaid(@test_id) }
35
+
36
+ it 'overrode property' do
37
+ expect(person).to be_an_instance_of MockDSMLPerson
38
+ expect(person.uaid).to eq('%012i' % @test_id)
39
+ expect(person.first_name).to eq('Larry')
40
+ end
41
+ end
42
+
43
+ end
44
+ end
45
+
46
+
@@ -19,10 +19,10 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency 'bundler', "~> 1.3"
22
- spec.add_development_dependency 'rake'
22
+ spec.add_development_dependency 'rake', "~> 10.1"
23
23
  spec.add_development_dependency 'rspec', "~> 2.6"
24
- spec.add_development_dependency 'highline'
25
- spec.add_runtime_dependency 'nokogiri'
26
- spec.add_runtime_dependency 'json'
24
+ spec.add_development_dependency 'highline', "~> 1.6"
25
+ spec.add_runtime_dependency 'nokogiri', "~> 1.6"
26
+ spec.add_runtime_dependency 'json', "~> 1.8"
27
27
 
28
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uaeds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - dgsan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-14 00:00:00.000000000 Z
11
+ date: 2014-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '10.1'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '10.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -56,44 +56,44 @@ dependencies:
56
56
  name: highline
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '1.6'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '1.6'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: nokogiri
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '1.6'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '1.6'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: json
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ~>
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '1.8'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ~>
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '1.8'
97
97
  description: Tool for working with UA's 'Enterprise Directory Service,' an XML-based
98
98
  (DSML) (or JSON-based) lookup service.
99
99
  email:
@@ -115,7 +115,9 @@ files:
115
115
  - lib/uaeds/eds_dsml.rb
116
116
  - lib/uaeds/eds_json.rb
117
117
  - lib/uaeds/json_person.rb
118
+ - lib/uaeds/mock_eds.rb
118
119
  - lib/uaeds/version.rb
120
+ - spec/mock_uaeds_spec.rb
119
121
  - spec/spec_helper.rb
120
122
  - spec/uaeds_spec.rb
121
123
  - uaeds.gemspec
@@ -144,5 +146,6 @@ signing_key:
144
146
  specification_version: 4
145
147
  summary: Tool for working with UA EDS
146
148
  test_files:
149
+ - spec/mock_uaeds_spec.rb
147
150
  - spec/spec_helper.rb
148
151
  - spec/uaeds_spec.rb