cmis-ruby 0.3.8 → 0.3.9

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.
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ module CMIS
4
+ describe Relationship do
5
+ # No relevant tests here yet...
6
+ end
7
+ end
@@ -0,0 +1,143 @@
1
+ require 'spec_helper'
2
+
3
+ module CMIS
4
+ PRIMARY_BASE_TYPES = %w( cmis:document
5
+ cmis:folder
6
+ cmis:relationship
7
+ cmis:policy
8
+ cmis:item )
9
+
10
+ describe Repository do
11
+ it 'is supported by the library' do
12
+ expect(repository.cmis_version_supported).to eq('1.1')
13
+ end
14
+
15
+ it 'has the correct id' do
16
+ expect(repository.id).to eq(repository_id)
17
+ end
18
+
19
+ it 'has non null fields' do
20
+ expect(repository.id) .to_not be_nil
21
+ expect(repository.name) .to_not be_nil
22
+ expect(repository.product_version) .to_not be_nil
23
+ expect(repository.description) .to_not be_nil
24
+ expect(repository.root_folder_id) .to_not be_nil
25
+ expect(repository.capabilities) .to_not be_nil
26
+ expect(repository.url) .to_not be_nil
27
+ expect(repository.changes_on_type) .to_not be_nil
28
+ expect(repository.root_folder_url) .to_not be_nil
29
+ expect(repository.product_name) .to_not be_nil
30
+ expect(repository.product_version) .to_not be_nil
31
+ end
32
+
33
+ it 'has a root folder' do
34
+ root = repository.root
35
+ expect(root).to be_a(CMIS::Folder)
36
+
37
+ expect(root.cmis_object_id).to eq(repository.root_folder_id)
38
+ end
39
+
40
+ describe '#object' do
41
+ it 'returns the object' do
42
+ id = repository.root_folder_id
43
+ object = repository.object(id)
44
+ expect(object).to be_a(CMIS::Folder)
45
+ expect(object.cmis_object_id).to eq(id)
46
+ end
47
+ end
48
+
49
+ describe '#new_[document|folder|relationship|item|policy|type]' do
50
+ it 'returns the correct type' do
51
+ expect(repository.new_document) .to be_a Document
52
+ expect(repository.new_folder) .to be_a Folder
53
+ expect(repository.new_relationship) .to be_a Relationship
54
+ expect(repository.new_item) .to be_a Item
55
+ expect(repository.new_policy) .to be_a Policy
56
+ expect(repository.new_type) .to be_a Type
57
+ end
58
+ end
59
+
60
+ context 'type related method' do
61
+ before :all do
62
+ create_apple_type
63
+ end
64
+
65
+ after :all do
66
+ repository.type('apple').delete
67
+ end
68
+
69
+ describe '#type' do
70
+ it 'returns the type for primitive types' do
71
+ PRIMARY_BASE_TYPES.each do |t|
72
+ type = repository.type(t)
73
+ expect(type).to be_a(CMIS::Type)
74
+ expect(type.id).to eq(t)
75
+ end
76
+ end
77
+ end
78
+
79
+ describe '#type?' do
80
+ it 'returns true for a present type' do
81
+ expect(repository.type?('apple')).to be_true
82
+ end
83
+
84
+ it 'returns false for an absent type' do
85
+ expect(repository.type?('banana')).to be_false
86
+ end
87
+ end
88
+
89
+ describe '#types' do
90
+ it 'includes a present type' do
91
+ type_array = repository.types.map(&:id)
92
+ expect(type_array).to include('apple')
93
+ end
94
+
95
+ it 'does not include an absent type' do
96
+ type_array = repository.types.map(&:id)
97
+ expect(type_array).to_not include('banana')
98
+ end
99
+ end
100
+
101
+ describe '#type' do
102
+ it 'returns the type' do
103
+ apple = repository.type('apple')
104
+ expect(apple).to be_a CMIS::Type
105
+ expect(apple.id).to eq('apple')
106
+ end
107
+ end
108
+
109
+ def create_apple_type
110
+ type = repository.new_type
111
+ type.id = 'apple'
112
+ type.local_name = 'apple'
113
+ type.query_name = 'apple'
114
+ type.display_name = 'apple'
115
+ type.parent_id = 'cmis:document'
116
+ type.base_id = 'cmis:document'
117
+ type.description = 'appel'
118
+ type.creatable = true
119
+ type.fileable = true
120
+ type.queryable = true
121
+ type.controllable_policy = true
122
+ type.controllable_acl = true
123
+ type.fulltext_indexed = true
124
+ type.included_in_supertype_query = true
125
+ type.content_stream_allowed = 'allowed'
126
+ type.versionable = false
127
+ type.add_property_definition(id: 'color',
128
+ localName: 'color',
129
+ queryName: 'color',
130
+ displayName: 'color',
131
+ description: 'color',
132
+ propertyType: 'string',
133
+ cardinality: 'single',
134
+ updatability: 'readwrite',
135
+ inherited: false,
136
+ required: false,
137
+ queryable: true,
138
+ orderable: true)
139
+ type.create
140
+ end
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ module CMIS
4
+ describe Server do
5
+ describe '#repositories' do
6
+ it 'are all Repositories' do
7
+ server.repositories.each do |r|
8
+ expect(r).to be_a Repository
9
+ end
10
+ end
11
+
12
+ it 'contains the test repository' do
13
+ repo_array = server.repositories.map(&:id)
14
+ expect(repo_array).to include(repository_id)
15
+ end
16
+ end
17
+
18
+ describe '#repository' do
19
+ it 'is a Repository' do
20
+ expect(repository).to be_a Repository
21
+ end
22
+
23
+ it 'has the correct id' do
24
+ expect(repository.id).to eq(repository_id)
25
+ end
26
+ end
27
+
28
+ describe '#repository?' do
29
+ it 'returns true for a present repository' do
30
+ expect(server.repository?(repository_id)).to be_true
31
+ end
32
+
33
+ it 'returns false for an absent repository' do
34
+ absent_repository_id = SecureRandom.uuid
35
+ expect(server.repository?(absent_repository_id)).to be_false
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,17 @@
1
+ ---
2
+ local:
3
+ server:
4
+ service_url: http://33.33.33.100:8080/browser
5
+ repository: test
6
+ nuxeo:
7
+ server:
8
+ service_url: http://cmis.demo.nuxeo.com/nuxeo/json/cmis
9
+ username: Administrator
10
+ password: Administrator
11
+ repository: default
12
+ alfresco:
13
+ server:
14
+ service_url: http://cmis.alfresco.com/cmisbrowser
15
+ username: admin
16
+ password: admin
17
+ repository: bb212ecb-122d-47ea-b5c1-128affb9cd8f
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
@@ -0,0 +1,35 @@
1
+ require 'cmis-ruby'
2
+
3
+ module SpecHelpers
4
+
5
+ def server
6
+ @server ||= CMIS::Server.new(options['server'])
7
+ end
8
+
9
+ def repository
10
+ @repository ||= server.repository(options['repository'])
11
+ end
12
+
13
+ def repository_id
14
+ options['repository']
15
+ end
16
+
17
+ private
18
+
19
+ def options
20
+ file = File.join(File.dirname(File.expand_path(__FILE__)), 'config.yml')
21
+ config = YAML::load_file(file)
22
+ test_env = ENV['TEST_ENV'] || 'local'
23
+
24
+ if config.key?(test_env)
25
+ config[test_env]
26
+ else
27
+ raise "No configuration found for #{test_env}"
28
+ end
29
+ end
30
+
31
+ end
32
+
33
+ RSpec.configure do |c|
34
+ c.include SpecHelpers
35
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cmis-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenneth Geerts
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-13 00:00:00.000000000 Z
12
+ date: 2014-03-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -54,6 +54,7 @@ extensions: []
54
54
  extra_rdoc_files: []
55
55
  files:
56
56
  - ".gitignore"
57
+ - ".travis.yml"
57
58
  - Gemfile
58
59
  - LICENSE
59
60
  - Rakefile
@@ -84,14 +85,15 @@ files:
84
85
  - lib/core_ext/hash.rb
85
86
  - lib/core_ext/hash/compact.rb
86
87
  - readme.md
87
- - spec/document_spec.rb
88
- - spec/folder_spec.rb
89
- - spec/helper.rb
90
- - spec/object_spec.rb
91
- - spec/relationship_spec.rb
92
- - spec/repository_spec.rb
93
- - spec/server_spec.rb
94
- - spec/type_spec.rb
88
+ - spec/cmis-ruby/document_spec.rb
89
+ - spec/cmis-ruby/folder_spec.rb
90
+ - spec/cmis-ruby/object_spec.rb
91
+ - spec/cmis-ruby/relationship_spec.rb
92
+ - spec/cmis-ruby/repository_spec.rb
93
+ - spec/cmis-ruby/server_spec.rb
94
+ - spec/config.yml
95
+ - spec/rspec.opts
96
+ - spec/spec_helper.rb
95
97
  homepage: https://github.com/UP-nxt
96
98
  licenses:
97
99
  - Apache-2.0
@@ -104,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
106
  requirements:
105
107
  - - ">="
106
108
  - !ruby/object:Gem::Version
107
- version: '0'
109
+ version: 1.9.3
108
110
  required_rubygems_version: !ruby/object:Gem::Requirement
109
111
  requirements:
110
112
  - - ">="
@@ -117,12 +119,13 @@ signing_key:
117
119
  specification_version: 4
118
120
  summary: Ruby client for CMIS
119
121
  test_files:
120
- - spec/document_spec.rb
121
- - spec/folder_spec.rb
122
- - spec/helper.rb
123
- - spec/object_spec.rb
124
- - spec/relationship_spec.rb
125
- - spec/repository_spec.rb
126
- - spec/server_spec.rb
127
- - spec/type_spec.rb
122
+ - spec/cmis-ruby/document_spec.rb
123
+ - spec/cmis-ruby/folder_spec.rb
124
+ - spec/cmis-ruby/object_spec.rb
125
+ - spec/cmis-ruby/relationship_spec.rb
126
+ - spec/cmis-ruby/repository_spec.rb
127
+ - spec/cmis-ruby/server_spec.rb
128
+ - spec/config.yml
129
+ - spec/rspec.opts
130
+ - spec/spec_helper.rb
128
131
  has_rdoc: false
@@ -1,47 +0,0 @@
1
- require_relative './helper'
2
-
3
- describe CMIS::Document do
4
-
5
- before :all do
6
- @repo = create_repository('test')
7
- end
8
-
9
- after :all do
10
- delete_repository('test')
11
- end
12
-
13
- it 'create_in_folder with content' do
14
- new_object = @repo.new_document
15
- new_object.name = 'doc1'
16
- new_object.object_type_id = 'cmis:document'
17
- new_object.set_content(stream: StringIO.new('content1'),
18
- mime_type: 'text/plain',
19
- filename: 'doc1.txt')
20
- doc = new_object.create_in_folder(@repo.root)
21
- doc.name.should eq 'doc1'
22
- doc.content_stream_mime_type.should eq 'text/plain'
23
- doc.content_stream_file_name.should eq 'doc1.txt'
24
- doc.content.should eq 'content1'
25
- doc.delete
26
- end
27
-
28
- it 'create_in_folder without content' do
29
- new_object = @repo.new_document
30
- new_object.name = 'doc2'
31
- new_object.object_type_id = 'cmis:document'
32
- doc = new_object.create_in_folder(@repo.root)
33
- doc.name.should eq 'doc2'
34
- doc.content.should be nil
35
- doc.delete
36
- end
37
-
38
- # it 'set content - attached' do
39
- # new_object = @repo.new_document
40
- # new_object.name = 'doc3'
41
- # new_object.object_type_id = 'cmis:document'
42
- # doc = @repo.root.create(new_object)
43
- # doc.set_content(StringIO.new('content3'), 'text/plain', 'doc3.txt') # set content on attached doc
44
- # doc.content.should eq 'content3'
45
- # doc.delete
46
- # end
47
- end
@@ -1,77 +0,0 @@
1
- require_relative './helper'
2
-
3
- describe CMIS::Folder do
4
-
5
- before :all do
6
- @repo = create_repository('test')
7
- end
8
-
9
- after :all do
10
- delete_repository('test')
11
- end
12
-
13
- it 'parent - root' do
14
- @repo.root.parent.should be_nil
15
- end
16
-
17
- it 'parent - root child' do
18
- new_object = @repo.new_folder
19
- new_object.name = 'folder1'
20
- new_object.object_type_id = 'cmis:folder'
21
- folder = @repo.root.create(new_object)
22
- folder.parent.cmis_object_id.should eq @repo.root_folder_id
23
- folder.delete
24
- end
25
-
26
- it 'create document' do
27
- new_object = @repo.new_document
28
- new_object.name = 'doc1'
29
- new_object.object_type_id = 'cmis:document'
30
- new_object.set_content(stream: StringIO.new('apple is a fruit'),
31
- mime_type: 'text/plain',
32
- filename: 'apple.txt')
33
- object = @repo.root.create(new_object)
34
- object.should be_a_kind_of CMIS::Document
35
- object.name.should eq 'doc1'
36
- object.content_stream_mime_type.should eq 'text/plain'
37
- object.content_stream_file_name.should eq 'apple.txt'
38
- object.content.should eq 'apple is a fruit'
39
- object.delete
40
- end
41
-
42
- it 'create folder' do
43
- new_object = @repo.new_folder
44
- new_object.name = 'folder1'
45
- new_object.object_type_id = 'cmis:folder'
46
- object = @repo.root.create(new_object)
47
- object.should be_a_kind_of CMIS::Folder
48
- object.name.should eq 'folder1'
49
- object.delete
50
- end
51
-
52
- it 'create relationship' do
53
- new_object = @repo.new_relationship
54
- new_object.name = 'rel1'
55
- new_object.object_type_id = 'cmis:relationship'
56
- lambda { @repo.root.create(new_object) }.should raise_exception
57
- end
58
-
59
- it 'create item' do
60
- begin
61
- new_object = @repo.new_item
62
- new_object.name = 'item1'
63
- new_object.object_type_id = 'cmis:item'
64
- object = @repo.root.create(new_object)
65
- object.should be_a_kind_of CMIS::Item
66
- object.name.should eq 'item1'
67
- object.delete
68
- end unless @repo.cmis_version_supported < '1.1'
69
- end
70
-
71
- it 'create object' do
72
- new_object = CMIS::Object.new({}, @repo)
73
- new_object.name = 'object1'
74
- new_object.object_type_id = 'cmis:folder'
75
- lambda { @repo.root.create(new_object) }.should raise_exception
76
- end
77
- end