groupdocs 2.2.0 → 2.3.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.
Files changed (324) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +9 -9
  3. data/CHANGELOG.md +482 -477
  4. data/Gemfile +3 -3
  5. data/LICENSE.txt +21 -21
  6. data/README.md +94 -94
  7. data/Rakefile +9 -9
  8. data/examples/README.md +12 -12
  9. data/examples/api-samples/Gemfile +5 -5
  10. data/examples/api-samples/Gemfile.lock +49 -49
  11. data/examples/api-samples/README.md +23 -23
  12. data/examples/api-samples/public/css/style.css +229 -229
  13. data/examples/api-samples/public/docs/annotation-sample.html +167 -167
  14. data/examples/api-samples/public/docs/docco.css +500 -500
  15. data/examples/api-samples/public/docs/envelope-sample.html +374 -374
  16. data/examples/api-samples/public/docs/sample01.html +181 -181
  17. data/examples/api-samples/public/docs/sample02.html +199 -199
  18. data/examples/api-samples/public/docs/sample03.html +318 -318
  19. data/examples/api-samples/public/docs/sample04.html +217 -217
  20. data/examples/api-samples/public/docs/sample05.html +296 -296
  21. data/examples/api-samples/public/docs/sample06.html +347 -347
  22. data/examples/api-samples/public/docs/sample07.html +209 -209
  23. data/examples/api-samples/public/docs/sample08.html +277 -277
  24. data/examples/api-samples/public/docs/sample09.html +314 -314
  25. data/examples/api-samples/public/docs/sample10.html +270 -270
  26. data/examples/api-samples/public/docs/sample11.html +462 -462
  27. data/examples/api-samples/public/docs/sample12.html +199 -199
  28. data/examples/api-samples/public/docs/sample13.html +201 -201
  29. data/examples/api-samples/public/docs/sample14.html +204 -204
  30. data/examples/api-samples/public/docs/sample15.html +182 -182
  31. data/examples/api-samples/public/docs/sample16.html +234 -234
  32. data/examples/api-samples/public/docs/sample17.html +309 -309
  33. data/examples/api-samples/public/docs/sample18.html +721 -721
  34. data/examples/api-samples/public/docs/sample19.html +631 -631
  35. data/examples/api-samples/public/docs/sample20.html +230 -230
  36. data/examples/api-samples/public/docs/sample21.html +790 -790
  37. data/examples/api-samples/public/docs/sample22.html +408 -408
  38. data/examples/api-samples/public/docs/sample25.html +550 -550
  39. data/examples/api-samples/public/templates/base-simple_source.html +191 -191
  40. data/examples/api-samples/public/templates/testdocument.html +100 -100
  41. data/examples/api-samples/public/templates/welcome.htm +137 -137
  42. data/examples/api-samples/samples/annotation-sample.rb +56 -56
  43. data/examples/api-samples/samples/envelope-sample.rb +133 -133
  44. data/examples/api-samples/samples/sample01.rb +44 -44
  45. data/examples/api-samples/samples/sample02.rb +50 -50
  46. data/examples/api-samples/samples/sample03.rb +79 -79
  47. data/examples/api-samples/samples/sample04.rb +54 -54
  48. data/examples/api-samples/samples/sample05.rb +83 -83
  49. data/examples/api-samples/samples/sample06.rb +86 -86
  50. data/examples/api-samples/samples/sample07.rb +59 -59
  51. data/examples/api-samples/samples/sample08.rb +76 -76
  52. data/examples/api-samples/samples/sample09.rb +85 -85
  53. data/examples/api-samples/samples/sample10.rb +70 -70
  54. data/examples/api-samples/samples/sample11.rb +132 -132
  55. data/examples/api-samples/samples/sample12.rb +48 -48
  56. data/examples/api-samples/samples/sample13.rb +49 -49
  57. data/examples/api-samples/samples/sample14.rb +54 -54
  58. data/examples/api-samples/samples/sample15.rb +43 -43
  59. data/examples/api-samples/samples/sample16.rb +57 -57
  60. data/examples/api-samples/samples/sample17.rb +70 -70
  61. data/examples/api-samples/samples/sample18.rb +190 -190
  62. data/examples/api-samples/samples/sample19.rb +188 -188
  63. data/examples/api-samples/samples/sample20.rb +68 -68
  64. data/examples/api-samples/samples/sample21.rb +212 -212
  65. data/examples/api-samples/samples/sample22.rb +109 -109
  66. data/examples/api-samples/samples/sample25.rb +127 -127
  67. data/examples/api-samples/views/_others_samples.haml +233 -233
  68. data/examples/api-samples/views/annotation_sample.haml +63 -63
  69. data/examples/api-samples/views/envelope_sample.haml +72 -72
  70. data/examples/api-samples/views/index.haml +235 -235
  71. data/examples/api-samples/views/layout.haml +3 -3
  72. data/examples/api-samples/views/sample01.haml +63 -63
  73. data/examples/api-samples/views/sample02.haml +52 -52
  74. data/examples/api-samples/views/sample03.haml +87 -87
  75. data/examples/api-samples/views/sample04.haml +55 -55
  76. data/examples/api-samples/views/sample05.haml +86 -86
  77. data/examples/api-samples/views/sample06.haml +58 -58
  78. data/examples/api-samples/views/sample07.haml +52 -52
  79. data/examples/api-samples/views/sample08.haml +100 -100
  80. data/examples/api-samples/views/sample09.haml +95 -95
  81. data/examples/api-samples/views/sample10.haml +93 -93
  82. data/examples/api-samples/views/sample11.haml +140 -140
  83. data/examples/api-samples/views/sample12.haml +68 -68
  84. data/examples/api-samples/views/sample13.haml +64 -64
  85. data/examples/api-samples/views/sample14.haml +60 -60
  86. data/examples/api-samples/views/sample15.haml +51 -51
  87. data/examples/api-samples/views/sample16.haml +50 -50
  88. data/examples/api-samples/views/sample17.haml +54 -54
  89. data/examples/api-samples/views/sample18.haml +143 -143
  90. data/examples/api-samples/views/sample19.haml +92 -92
  91. data/examples/api-samples/views/sample20.haml +54 -54
  92. data/examples/api-samples/views/sample21.haml +123 -123
  93. data/examples/api-samples/views/sample22.haml +106 -106
  94. data/examples/api-samples/views/sample25.haml +101 -101
  95. data/examples/api-samples/views/sample31.haml +2 -2
  96. data/examples/api-samples/web.rb +20 -20
  97. data/examples/viewer/Gemfile +5 -5
  98. data/examples/viewer/app.rb +52 -52
  99. data/groupdocs.gemspec +31 -31
  100. data/lib/groupdocs.rb +62 -62
  101. data/lib/groupdocs/api.rb +6 -6
  102. data/lib/groupdocs/api/entity.rb +112 -112
  103. data/lib/groupdocs/api/helpers.rb +11 -11
  104. data/lib/groupdocs/api/helpers/access_mode_helper.rb +27 -27
  105. data/lib/groupdocs/api/helpers/access_rights_helper.rb +55 -55
  106. data/lib/groupdocs/api/helpers/accessor_helper.rb +30 -30
  107. data/lib/groupdocs/api/helpers/byte_flag_helper.rb +49 -49
  108. data/lib/groupdocs/api/helpers/credentials_helper.rb +35 -35
  109. data/lib/groupdocs/api/helpers/mime_helper.rb +21 -21
  110. data/lib/groupdocs/api/helpers/path_helper.rb +28 -28
  111. data/lib/groupdocs/api/helpers/rest_helper.rb +99 -99
  112. data/lib/groupdocs/api/helpers/signature_public_helper.rb +22 -22
  113. data/lib/groupdocs/api/helpers/status_helper.rb +27 -27
  114. data/lib/groupdocs/api/helpers/url_helper.rb +101 -101
  115. data/lib/groupdocs/api/request.rb +91 -91
  116. data/lib/groupdocs/datasource.rb +249 -249
  117. data/lib/groupdocs/datasource/field.rb +39 -39
  118. data/lib/groupdocs/document.rb +1550 -1550
  119. data/lib/groupdocs/document/annotation.rb +421 -421
  120. data/lib/groupdocs/document/annotation/reply.rb +173 -173
  121. data/lib/groupdocs/document/annotation/reviewer.rb +66 -66
  122. data/lib/groupdocs/document/change.rb +56 -56
  123. data/lib/groupdocs/document/field.rb +53 -53
  124. data/lib/groupdocs/document/metadata.rb +32 -32
  125. data/lib/groupdocs/document/rectangle.rb +18 -18
  126. data/lib/groupdocs/document/view.rb +36 -36
  127. data/lib/groupdocs/errors.rb +8 -8
  128. data/lib/groupdocs/job.rb +468 -468
  129. data/lib/groupdocs/questionnaire.rb +530 -530
  130. data/lib/groupdocs/questionnaire/collector.rb +335 -335
  131. data/lib/groupdocs/questionnaire/execution.rb +181 -181
  132. data/lib/groupdocs/questionnaire/page.rb +43 -43
  133. data/lib/groupdocs/questionnaire/question.rb +108 -108
  134. data/lib/groupdocs/questionnaire/question/answer.rb +15 -15
  135. data/lib/groupdocs/signature.rb +380 -380
  136. data/lib/groupdocs/signature/contact.rb +181 -181
  137. data/lib/groupdocs/signature/envelope.rb +747 -747
  138. data/lib/groupdocs/signature/envelope/log.rb +20 -20
  139. data/lib/groupdocs/signature/field.rb +286 -286
  140. data/lib/groupdocs/signature/field/location.rb +71 -71
  141. data/lib/groupdocs/signature/form.rb +804 -804
  142. data/lib/groupdocs/signature/list.rb +92 -92
  143. data/lib/groupdocs/signature/recipient.rb +79 -79
  144. data/lib/groupdocs/signature/role.rb +54 -54
  145. data/lib/groupdocs/signature/shared.rb +6 -6
  146. data/lib/groupdocs/signature/shared/document_methods.rb +158 -158
  147. data/lib/groupdocs/signature/shared/entity_fields.rb +76 -76
  148. data/lib/groupdocs/signature/shared/entity_methods.rb +144 -144
  149. data/lib/groupdocs/signature/shared/field_methods.rb +354 -354
  150. data/lib/groupdocs/signature/shared/recipient_methods.rb +75 -75
  151. data/lib/groupdocs/signature/shared/resource_methods.rb +65 -65
  152. data/lib/groupdocs/signature/template.rb +124 -124
  153. data/lib/groupdocs/storage.rb +44 -44
  154. data/lib/groupdocs/storage/file.rb +432 -432
  155. data/lib/groupdocs/storage/folder.rb +288 -288
  156. data/lib/groupdocs/storage/package.rb +48 -48
  157. data/lib/groupdocs/storage/provider.rb +32 -32
  158. data/lib/groupdocs/subscription.rb +323 -323
  159. data/lib/groupdocs/subscription/limit.rb +20 -20
  160. data/lib/groupdocs/user.rb +955 -930
  161. data/lib/groupdocs/version.rb +3 -3
  162. data/spec/groupdocs/api/entity_spec.rb +55 -55
  163. data/spec/groupdocs/api/helpers/access_mode_helper_spec.rb +21 -21
  164. data/spec/groupdocs/api/helpers/access_rights_helper_spec.rb +43 -43
  165. data/spec/groupdocs/api/helpers/accessor_helper_spec.rb +16 -16
  166. data/spec/groupdocs/api/helpers/byte_flag_helper_spec.rb +23 -23
  167. data/spec/groupdocs/api/helpers/credentials_helpers_spec.rb +48 -48
  168. data/spec/groupdocs/api/helpers/mime_helper_spec.rb +16 -16
  169. data/spec/groupdocs/api/helpers/path_helper_spec.rb +15 -15
  170. data/spec/groupdocs/api/helpers/rest_helper_spec.rb +161 -161
  171. data/spec/groupdocs/api/helpers/signature_public_helper_spec.rb +21 -21
  172. data/spec/groupdocs/api/helpers/status_helper_spec.rb +22 -22
  173. data/spec/groupdocs/api/helpers/url_helper_spec.rb +112 -112
  174. data/spec/groupdocs/api/request_spec.rb +112 -112
  175. data/spec/groupdocs/datasource/field_spec.rb +29 -29
  176. data/spec/groupdocs/datasource_spec.rb +145 -145
  177. data/spec/groupdocs/document/annotation/reply_spec.rb +154 -154
  178. data/spec/groupdocs/document/annotation/reviewer_spec.rb +51 -51
  179. data/spec/groupdocs/document/annotation_spec.rb +234 -234
  180. data/spec/groupdocs/document/change_spec.rb +39 -39
  181. data/spec/groupdocs/document/field_spec.rb +28 -28
  182. data/spec/groupdocs/document/metadata_spec.rb +21 -21
  183. data/spec/groupdocs/document/rectangle_spec.rb +14 -14
  184. data/spec/groupdocs/document/view_spec.rb +33 -33
  185. data/spec/groupdocs/document_spec.rb +859 -859
  186. data/spec/groupdocs/errors_spec.rb +7 -7
  187. data/spec/groupdocs/job_spec.rb +323 -323
  188. data/spec/groupdocs/questionnaire/collector_spec.rb +197 -197
  189. data/spec/groupdocs/questionnaire/execution_spec.rb +162 -162
  190. data/spec/groupdocs/questionnaire/page_spec.rb +47 -47
  191. data/spec/groupdocs/questionnaire/question/answer_spec.rb +9 -9
  192. data/spec/groupdocs/questionnaire/question_spec.rb +75 -75
  193. data/spec/groupdocs/questionnaire_spec.rb +295 -295
  194. data/spec/groupdocs/signature/contact_spec.rb +142 -142
  195. data/spec/groupdocs/signature/envelope/log_spec.rb +15 -15
  196. data/spec/groupdocs/signature/envelope_spec.rb +384 -384
  197. data/spec/groupdocs/signature/field/location_spec.rb +40 -40
  198. data/spec/groupdocs/signature/field_spec.rb +235 -235
  199. data/spec/groupdocs/signature/form_spec.rb +205 -205
  200. data/spec/groupdocs/signature/list_spec.rb +87 -87
  201. data/spec/groupdocs/signature/recipient_spec.rb +26 -26
  202. data/spec/groupdocs/signature/role_spec.rb +47 -47
  203. data/spec/groupdocs/signature/template_spec.rb +80 -80
  204. data/spec/groupdocs/signature_spec.rb +194 -194
  205. data/spec/groupdocs/storage/file_spec.rb +303 -303
  206. data/spec/groupdocs/storage/folder_spec.rb +270 -270
  207. data/spec/groupdocs/storage/package_spec.rb +38 -38
  208. data/spec/groupdocs/storage/provider_spec.rb +21 -21
  209. data/spec/groupdocs/storage_spec.rb +27 -27
  210. data/spec/groupdocs/subscription/limit_spec.rb +16 -16
  211. data/spec/groupdocs/subscription_spec.rb +74 -74
  212. data/spec/groupdocs/user_spec.rb +257 -257
  213. data/spec/groupdocs_spec.rb +63 -63
  214. data/spec/spec_helper.rb +73 -73
  215. data/spec/support/json/annotation_access_set.json +11 -11
  216. data/spec/support/json/annotation_collaborators_get.json +16 -16
  217. data/spec/support/json/annotation_collaborators_set.json +16 -16
  218. data/spec/support/json/annotation_create.json +12 -12
  219. data/spec/support/json/annotation_list.json +32 -32
  220. data/spec/support/json/annotation_marker_move.json +10 -10
  221. data/spec/support/json/annotation_move.json +8 -8
  222. data/spec/support/json/annotation_remove.json +9 -9
  223. data/spec/support/json/annotation_replies_create.json +9 -9
  224. data/spec/support/json/annotation_replies_get.json +25 -25
  225. data/spec/support/json/annotation_reviewers_get.json +18 -18
  226. data/spec/support/json/comparison_changes.json +46 -46
  227. data/spec/support/json/comparison_compare.json +8 -8
  228. data/spec/support/json/comparison_document.json +10 -10
  229. data/spec/support/json/contact_add.json +12 -12
  230. data/spec/support/json/contacts_get.json +19 -19
  231. data/spec/support/json/contacts_import.json +8 -8
  232. data/spec/support/json/datasource_add.json +8 -8
  233. data/spec/support/json/datasource_get.json +22 -22
  234. data/spec/support/json/datasource_remove.json +8 -8
  235. data/spec/support/json/datasource_update.json +8 -8
  236. data/spec/support/json/delete_account.json +9 -9
  237. data/spec/support/json/document_access_info_get.json +14 -14
  238. data/spec/support/json/document_convert.json +8 -8
  239. data/spec/support/json/document_datasource.json +10 -10
  240. data/spec/support/json/document_fields.json +34 -34
  241. data/spec/support/json/document_formats.json +8 -8
  242. data/spec/support/json/document_metadata.json +15 -15
  243. data/spec/support/json/document_page_images_get.json +20 -20
  244. data/spec/support/json/document_questionnaire_create.json +9 -9
  245. data/spec/support/json/document_questionnaires.json +23 -23
  246. data/spec/support/json/document_sharers_remove.json +8 -8
  247. data/spec/support/json/document_sharers_set.json +16 -16
  248. data/spec/support/json/document_thumbnails.json +24 -24
  249. data/spec/support/json/document_views.json +32 -32
  250. data/spec/support/json/envelope_get.json +46 -46
  251. data/spec/support/json/envelope_logs.json +16 -16
  252. data/spec/support/json/envelope_recipient_add.json +26 -26
  253. data/spec/support/json/envelopes_all.json +48 -48
  254. data/spec/support/json/envelopes_resources.json +31 -31
  255. data/spec/support/json/file_compress.json +8 -8
  256. data/spec/support/json/file_copy.json +14 -14
  257. data/spec/support/json/file_delete.json +5 -5
  258. data/spec/support/json/file_move.json +14 -14
  259. data/spec/support/json/file_upload.json +8 -8
  260. data/spec/support/json/folder_create.json +8 -8
  261. data/spec/support/json/folder_delete.json +5 -5
  262. data/spec/support/json/folder_list.json +22 -22
  263. data/spec/support/json/folder_move.json +8 -8
  264. data/spec/support/json/folder_sharers_get.json +16 -16
  265. data/spec/support/json/folder_sharers_remove.json +8 -8
  266. data/spec/support/json/folder_sharers_set.json +16 -16
  267. data/spec/support/json/form_get.json +21 -21
  268. data/spec/support/json/forms_all.json +23 -23
  269. data/spec/support/json/job_add_url.json +8 -8
  270. data/spec/support/json/job_create.json +8 -8
  271. data/spec/support/json/job_documents.json +40 -40
  272. data/spec/support/json/job_file_add.json +8 -8
  273. data/spec/support/json/job_get.json +30 -30
  274. data/spec/support/json/job_update.json +7 -7
  275. data/spec/support/json/jobs_get.json +58 -58
  276. data/spec/support/json/list_add.json +12 -12
  277. data/spec/support/json/lists_get.json +19 -19
  278. data/spec/support/json/package_create.json +7 -7
  279. data/spec/support/json/questionnaire_collector.json +17 -17
  280. data/spec/support/json/questionnaire_collectors.json +38 -38
  281. data/spec/support/json/questionnaire_collectors_add.json +10 -10
  282. data/spec/support/json/questionnaire_create.json +10 -10
  283. data/spec/support/json/questionnaire_datasources.json +26 -26
  284. data/spec/support/json/questionnaire_execution_add.json +9 -9
  285. data/spec/support/json/questionnaire_execution_status_set.json +8 -8
  286. data/spec/support/json/questionnaire_execution_update.json +8 -8
  287. data/spec/support/json/questionnaire_executions.json +28 -28
  288. data/spec/support/json/questionnaire_get.json +17 -17
  289. data/spec/support/json/questionnaire_remove.json +8 -8
  290. data/spec/support/json/questionnaire_update.json +8 -8
  291. data/spec/support/json/questionnaires_get.json +40 -40
  292. data/spec/support/json/sign_documents.json +16 -16
  293. data/spec/support/json/signature_create.json +12 -12
  294. data/spec/support/json/signature_field_add.json +25 -25
  295. data/spec/support/json/signature_fields_get.json +27 -27
  296. data/spec/support/json/signature_roles_get.json +17 -17
  297. data/spec/support/json/signatures_get.json +19 -19
  298. data/spec/support/json/storage_info.json +10 -10
  299. data/spec/support/json/subscription_plan_get.json +9 -9
  300. data/spec/support/json/subscription_plans_get.json +17 -17
  301. data/spec/support/json/template_get.json +35 -35
  302. data/spec/support/json/template_get_documents.json +15 -15
  303. data/spec/support/json/template_get_recipients.json +20 -20
  304. data/spec/support/json/templates_all.json +37 -37
  305. data/spec/support/json/templates_get.json +21 -21
  306. data/spec/support/json/update_account.json +10 -10
  307. data/spec/support/json/user_area.json +67 -67
  308. data/spec/support/json/user_embed_key.json +38 -38
  309. data/spec/support/json/user_get_embed_key.json +67 -67
  310. data/spec/support/json/user_login.json +67 -67
  311. data/spec/support/json/user_profile_get.json +24 -24
  312. data/spec/support/json/user_providers.json +31 -31
  313. data/spec/support/json/user_roles.json +25 -25
  314. data/spec/support/json/user_users_get.json +27 -27
  315. data/spec/support/shared_examples/api/entity.rb +39 -39
  316. data/spec/support/shared_examples/api/helpers/access_mode_helper.rb +11 -11
  317. data/spec/support/shared_examples/api/helpers/status_helper.rb +11 -11
  318. data/spec/support/shared_examples/signature/shared/document_methods.rb +68 -68
  319. data/spec/support/shared_examples/signature/shared/entity_fields.rb +56 -56
  320. data/spec/support/shared_examples/signature/shared/entity_methods.rb +116 -116
  321. data/spec/support/shared_examples/signature/shared/field_methods.rb +220 -220
  322. data/spec/support/shared_examples/signature/shared/recipient_methods.rb +46 -46
  323. data/spec/support/shared_examples/signature/shared/resource_methods.rb +46 -46
  324. metadata +35 -55
@@ -1,47 +1,47 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::Questionnaire::Page do
4
-
5
- it_behaves_like GroupDocs::Api::Entity
6
-
7
- it { should have_accessor(:questions) }
8
- it { should have_accessor(:number) }
9
- it { should have_accessor(:title) }
10
-
11
- describe '#questions=' do
12
- it 'converts each question to GroupDocs::Questionnaire::Question object if hash is passed' do
13
- subject.questions = [{ :field => 'Field1', :text => 'Text1', :def_answer => 'A1' }]
14
- questions = subject.questions
15
- questions.should be_an(Array)
16
- questions.each do |question|
17
- question.should be_a(GroupDocs::Questionnaire::Question)
18
- end
19
- end
20
-
21
- it 'saves each question if it is GroupDocs::Questionnaire::Question object' do
22
- question1 = GroupDocs::Questionnaire::Question.new(:field => 'field1')
23
- question2 = GroupDocs::Questionnaire::Question.new(:field => 'field2')
24
- subject.questions = [question1, question2]
25
- subject.questions.should include(question1)
26
- subject.questions.should include(question2)
27
- end
28
-
29
- it 'does nothing if nil is passed' do
30
- lambda do
31
- subject.questions = nil
32
- end.should_not change(subject, :questions)
33
- end
34
- end
35
-
36
- describe '#add_question' do
37
- it 'raises error if question is not GroupDocs::Questionnaire::Page object' do
38
- lambda { subject.add_question('Page') }.should raise_error(ArgumentError)
39
- end
40
-
41
- it 'saves question' do
42
- question = GroupDocs::Questionnaire::Question.new
43
- subject.add_question(question)
44
- subject.questions.should == [question]
45
- end
46
- end
47
- end
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::Questionnaire::Page do
4
+
5
+ it_behaves_like GroupDocs::Api::Entity
6
+
7
+ it { should have_accessor(:questions) }
8
+ it { should have_accessor(:number) }
9
+ it { should have_accessor(:title) }
10
+
11
+ describe '#questions=' do
12
+ it 'converts each question to GroupDocs::Questionnaire::Question object if hash is passed' do
13
+ subject.questions = [{ :field => 'Field1', :text => 'Text1', :def_answer => 'A1' }]
14
+ questions = subject.questions
15
+ questions.should be_an(Array)
16
+ questions.each do |question|
17
+ question.should be_a(GroupDocs::Questionnaire::Question)
18
+ end
19
+ end
20
+
21
+ it 'saves each question if it is GroupDocs::Questionnaire::Question object' do
22
+ question1 = GroupDocs::Questionnaire::Question.new(:field => 'field1')
23
+ question2 = GroupDocs::Questionnaire::Question.new(:field => 'field2')
24
+ subject.questions = [question1, question2]
25
+ subject.questions.should include(question1)
26
+ subject.questions.should include(question2)
27
+ end
28
+
29
+ it 'does nothing if nil is passed' do
30
+ lambda do
31
+ subject.questions = nil
32
+ end.should_not change(subject, :questions)
33
+ end
34
+ end
35
+
36
+ describe '#add_question' do
37
+ it 'raises error if question is not GroupDocs::Questionnaire::Page object' do
38
+ lambda { subject.add_question('Page') }.should raise_error(ArgumentError)
39
+ end
40
+
41
+ it 'saves question' do
42
+ question = GroupDocs::Questionnaire::Question.new
43
+ subject.add_question(question)
44
+ subject.questions.should == [question]
45
+ end
46
+ end
47
+ end
@@ -1,9 +1,9 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::Questionnaire::Question::Answer do
4
-
5
- it_behaves_like GroupDocs::Api::Entity
6
-
7
- it { should have_accessor(:text) }
8
- it { should have_accessor(:value) }
9
- end
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::Questionnaire::Question::Answer do
4
+
5
+ it_behaves_like GroupDocs::Api::Entity
6
+
7
+ it { should have_accessor(:text) }
8
+ it { should have_accessor(:value) }
9
+ end
@@ -1,75 +1,75 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::Questionnaire::Question do
4
-
5
- it_behaves_like GroupDocs::Api::Entity
6
-
7
- it { should have_accessor(:field) }
8
- it { should have_accessor(:text) }
9
- it { should have_accessor(:def_answer) }
10
- it { should have_accessor(:required) }
11
- it { should have_accessor(:type) }
12
- it { should have_accessor(:answers) }
13
-
14
- it { should alias_accessor(:default_answer, :def_answer) }
15
-
16
- describe '#answers=' do
17
- it 'converts each answer to GroupDocs::Questionnaire::Question::Answer object' do
18
- subject.answers = [{ :text => 'Text1', :value => 'Value1' }, { :text => 'Text2', :value => 'Value2' }]
19
- answers = subject.answers
20
- answers.should be_an(Array)
21
- answers.each do |answer|
22
- answer.should be_a(GroupDocs::Questionnaire::Question::Answer)
23
- end
24
- end
25
-
26
- it 'saves each answer if it is GroupDocs::Questionnaire::Question::Answer object' do
27
- answer1 = GroupDocs::Questionnaire::Question::Answer.new(:text => 'text1')
28
- answer2 = GroupDocs::Questionnaire::Question::Answer.new(:text => 'text2')
29
- subject.answers = [answer1, answer2]
30
- subject.answers.should include(answer1)
31
- subject.answers.should include(answer2)
32
- end
33
-
34
- it 'does nothing if nil is passed' do
35
- lambda do
36
- subject.answers = nil
37
- end.should_not change(subject, :answers)
38
- end
39
- end
40
-
41
- describe '#add_answer' do
42
- it 'raises error if answer is not GroupDocs::Questionnaire::Question::Answer object' do
43
- lambda { subject.add_answer('Answer') }.should raise_error(ArgumentError)
44
- end
45
-
46
- it 'saves answer' do
47
- answer = GroupDocs::Questionnaire::Question::Answer.new(:text => 'Text', :value => 'Value')
48
- subject.add_answer(answer)
49
- subject.answers.should == [answer]
50
- end
51
- end
52
-
53
- describe '#type=' do
54
- it 'saves type in machine readable format if symbol is passed' do
55
- subject.type = :generic_text
56
- subject.instance_variable_get(:@type).should == 'GenericText'
57
- end
58
-
59
- it 'does nothing if parameter is not symbol' do
60
- subject.type = 'GenericText'
61
- subject.instance_variable_get(:@type).should == 'GenericText'
62
- end
63
-
64
- it 'raises error if type is unknown' do
65
- lambda { subject.type = :unknown }.should raise_error(ArgumentError)
66
- end
67
- end
68
-
69
- describe '#type' do
70
- it 'returns type in human-readable format' do
71
- subject.type = 'GenericText'
72
- subject.type.should == :generic_text
73
- end
74
- end
75
- end
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::Questionnaire::Question do
4
+
5
+ it_behaves_like GroupDocs::Api::Entity
6
+
7
+ it { should have_accessor(:field) }
8
+ it { should have_accessor(:text) }
9
+ it { should have_accessor(:def_answer) }
10
+ it { should have_accessor(:required) }
11
+ it { should have_accessor(:type) }
12
+ it { should have_accessor(:answers) }
13
+
14
+ it { should alias_accessor(:default_answer, :def_answer) }
15
+
16
+ describe '#answers=' do
17
+ it 'converts each answer to GroupDocs::Questionnaire::Question::Answer object' do
18
+ subject.answers = [{ :text => 'Text1', :value => 'Value1' }, { :text => 'Text2', :value => 'Value2' }]
19
+ answers = subject.answers
20
+ answers.should be_an(Array)
21
+ answers.each do |answer|
22
+ answer.should be_a(GroupDocs::Questionnaire::Question::Answer)
23
+ end
24
+ end
25
+
26
+ it 'saves each answer if it is GroupDocs::Questionnaire::Question::Answer object' do
27
+ answer1 = GroupDocs::Questionnaire::Question::Answer.new(:text => 'text1')
28
+ answer2 = GroupDocs::Questionnaire::Question::Answer.new(:text => 'text2')
29
+ subject.answers = [answer1, answer2]
30
+ subject.answers.should include(answer1)
31
+ subject.answers.should include(answer2)
32
+ end
33
+
34
+ it 'does nothing if nil is passed' do
35
+ lambda do
36
+ subject.answers = nil
37
+ end.should_not change(subject, :answers)
38
+ end
39
+ end
40
+
41
+ describe '#add_answer' do
42
+ it 'raises error if answer is not GroupDocs::Questionnaire::Question::Answer object' do
43
+ lambda { subject.add_answer('Answer') }.should raise_error(ArgumentError)
44
+ end
45
+
46
+ it 'saves answer' do
47
+ answer = GroupDocs::Questionnaire::Question::Answer.new(:text => 'Text', :value => 'Value')
48
+ subject.add_answer(answer)
49
+ subject.answers.should == [answer]
50
+ end
51
+ end
52
+
53
+ describe '#type=' do
54
+ it 'saves type in machine readable format if symbol is passed' do
55
+ subject.type = :generic_text
56
+ subject.instance_variable_get(:@type).should == 'GenericText'
57
+ end
58
+
59
+ it 'does nothing if parameter is not symbol' do
60
+ subject.type = 'GenericText'
61
+ subject.instance_variable_get(:@type).should == 'GenericText'
62
+ end
63
+
64
+ it 'raises error if type is unknown' do
65
+ lambda { subject.type = :unknown }.should raise_error(ArgumentError)
66
+ end
67
+ end
68
+
69
+ describe '#type' do
70
+ it 'returns type in human-readable format' do
71
+ subject.type = 'GenericText'
72
+ subject.type.should == :generic_text
73
+ end
74
+ end
75
+ end
@@ -1,295 +1,295 @@
1
- require 'spec_helper'
2
-
3
- describe GroupDocs::Questionnaire do
4
-
5
- it_behaves_like GroupDocs::Api::Entity
6
- include_examples GroupDocs::Api::Helpers::Status
7
-
8
- describe '.all!' do
9
- before(:each) do
10
- mock_api_server(load_json('questionnaires_get'))
11
- end
12
-
13
- it 'accepts access credentials hash' do
14
- lambda do
15
- described_class.all!({}, :client_id => 'client_id', :private_key => 'private_key')
16
- end.should_not raise_error()
17
- end
18
-
19
- it 'accepts options hash' do
20
- lambda do
21
- described_class.all!(:status => :draft)
22
- end.should_not raise_error()
23
- end
24
-
25
- it 'parses status if passed' do
26
- status = :draft
27
- subject = described_class.new
28
- described_class.should_receive(:new).at_least(1).times.and_return(subject)
29
- subject.should_receive(:parse_status).with(status)
30
- described_class.all!(:status => status)
31
- end
32
-
33
- it 'returns an array of GroupDocs::Questionnaire objects' do
34
- questionnaires = described_class.all!
35
- questionnaires.should be_an(Array)
36
- questionnaires.each do |questionnaire|
37
- questionnaire.should be_a(GroupDocs::Questionnaire)
38
- end
39
- end
40
- end
41
-
42
- describe '.get!' do
43
- before(:each) do
44
- mock_api_server(load_json('questionnaire_get'))
45
- end
46
-
47
- it 'accepts access credentials hash' do
48
- lambda do
49
- described_class.get!(1, :client_id => 'client_id', :private_key => 'private_key')
50
- end.should_not raise_error()
51
- end
52
-
53
- it 'returns GroupDocs::Questionnaire object' do
54
- described_class.get!(1).should be_a(GroupDocs::Questionnaire)
55
- end
56
-
57
- it 'returns nil if ResourceNotFound was raised' do
58
- GroupDocs::Api::Request.any_instance.should_receive(:execute!).and_raise(RestClient::ResourceNotFound)
59
- described_class.get!(1).should be_nil
60
- end
61
- end
62
-
63
- it { should have_accessor(:id) }
64
- it { should have_accessor(:guid) }
65
- it { should have_accessor(:name) }
66
- it { should have_accessor(:descr) }
67
- it { should have_accessor(:pages) }
68
- it { should have_accessor(:resolved_executions) }
69
- it { should have_accessor(:assigned_questions) }
70
- it { should have_accessor(:total_questions) }
71
- it { should have_accessor(:modified) }
72
- it { should have_accessor(:expires) }
73
- it { should have_accessor(:document_ids) }
74
-
75
- it { should alias_accessor(:description, :descr) }
76
-
77
- describe '#pages=' do
78
- it 'converts each page to GroupDocs::Questionnaire::Page object if hash is passed' do
79
- subject.pages = [{ :number => 1, :title => 'Page1' }, { :number => 2, :title => 'Page2' }]
80
- pages = subject.pages
81
- pages.should be_an(Array)
82
- pages.each do |page|
83
- page.should be_a(GroupDocs::Questionnaire::Page)
84
- end
85
- end
86
-
87
- it 'saves each page if it is GroupDocs::Questionnaire::Page object' do
88
- page1 = GroupDocs::Questionnaire::Page.new(:number => 1)
89
- page2 = GroupDocs::Questionnaire::Page.new(:number => 2)
90
- subject.pages = [page1, page2]
91
- subject.pages.should include(page1)
92
- subject.pages.should include(page2)
93
- end
94
-
95
- it 'does nothing if nil is passed' do
96
- lambda do
97
- subject.pages = nil
98
- end.should_not change(subject, :pages)
99
- end
100
- end
101
-
102
- describe '#add_page' do
103
- it 'raises error if page is not GroupDocs::Questionnaire::Page object' do
104
- lambda { subject.add_page('Page') }.should raise_error(ArgumentError)
105
- end
106
-
107
- it 'adds page to pages instance variable' do
108
- page = GroupDocs::Questionnaire::Page.new
109
- lambda do
110
- subject.add_page(page)
111
- end.should change(subject, :pages).to([page])
112
- end
113
- end
114
-
115
- describe '#create!' do
116
- before(:each) do
117
- mock_api_server(load_json('questionnaire_create'))
118
- end
119
-
120
- it 'accepts access credentials hash' do
121
- lambda do
122
- subject.create!(:client_id => 'client_id', :private_key => 'private_key')
123
- end.should_not raise_error()
124
- end
125
-
126
- it 'uses hashed version of self as request body' do
127
- subject.should_receive(:to_hash)
128
- subject.create!
129
- end
130
-
131
- it 'updates questionnaire attributes' do
132
- lambda do
133
- subject.create!
134
- end.should change {
135
- subject.id
136
- subject.guid
137
- subject.name
138
- }
139
- end
140
- end
141
-
142
- describe '#update!' do
143
- before(:each) do
144
- mock_api_server(load_json('questionnaire_update'))
145
- end
146
-
147
- it 'accepts access credentials hash' do
148
- lambda do
149
- subject.update!(:client_id => 'client_id', :private_key => 'private_key')
150
- end.should_not raise_error()
151
- end
152
-
153
- it 'uses hashed version of self as request body' do
154
- subject.should_receive(:to_hash)
155
- subject.update!
156
- end
157
- end
158
-
159
- describe '#remove!' do
160
- before(:each) do
161
- mock_api_server(load_json('questionnaire_remove'))
162
- end
163
-
164
- it 'accepts access credentials hash' do
165
- lambda do
166
- subject.remove!(:client_id => 'client_id', :private_key => 'private_key')
167
- end.should_not raise_error()
168
- end
169
- end
170
-
171
- describe '#datasources!' do
172
- before(:each) do
173
- mock_api_server(load_json('questionnaire_datasources'))
174
- end
175
-
176
- it 'accepts access credentials hash' do
177
- lambda do
178
- subject.datasources!(:client_id => 'client_id', :private_key => 'private_key')
179
- end.should_not raise_error()
180
- end
181
-
182
- it 'returns array of GroupDocs::DataSource objects' do
183
- datasources = subject.datasources!
184
- datasources.should be_an(Array)
185
- datasources.each do |datasource|
186
- datasource.should be_a(GroupDocs::DataSource)
187
- end
188
- end
189
- end
190
-
191
- describe '#executions!' do
192
- before(:each) do
193
- mock_api_server(load_json('questionnaire_executions'))
194
- end
195
-
196
- it 'accepts access credentials hash' do
197
- lambda do
198
- subject.executions!(:client_id => 'client_id', :private_key => 'private_key')
199
- end.should_not raise_error()
200
- end
201
-
202
- it 'returns an array of GroupDocs::Questionnaire::Execution objects' do
203
- executions = subject.executions!
204
- executions.should be_an(Array)
205
- executions.each do |execution|
206
- execution.should be_a(GroupDocs::Questionnaire::Execution)
207
- end
208
- end
209
- end
210
-
211
- describe '#collectors!' do
212
- before(:each) do
213
- mock_api_server(load_json('questionnaire_collectors'))
214
- end
215
-
216
- it 'accepts access credentials hash' do
217
- lambda do
218
- subject.collectors!(%w(options), :client_id => 'client_id', :private_key => 'private_key')
219
- end.should_not raise_error()
220
- end
221
-
222
- it 'accepts options hash' do
223
- lambda do
224
- subject.collectors!(:orderBy => '', :isAsc => '')
225
- end.should_not raise_error()
226
- end
227
-
228
- it 'returns an array of GroupDocs::Questionnaire::Collector objects' do
229
- collectors = subject.collectors!
230
- collectors.should be_an(Array)
231
- collectors.each do |collector|
232
- collector.should be_a(GroupDocs::Questionnaire::Collector)
233
- end
234
- end
235
- end
236
-
237
- describe '#metadata!' do
238
- before(:each) do
239
- mock_api_server(load_json('questionnaire_get'))
240
- end
241
-
242
- it 'accepts access credentials hash' do
243
- lambda do
244
- subject.metadata!(:client_id => 'client_id', :private_key => 'private_key')
245
- end.should_not raise_error()
246
- end
247
-
248
- it 'returns GroupDocs::Questionnaire object' do
249
- subject.metadata!.should be_a(GroupDocs::Questionnaire)
250
- end
251
- end
252
-
253
- describe '#update_metadata!' do
254
- before(:each) do
255
- mock_api_server('{ "status": "Ok", "result": { "questionnaire_id": 123456 }}')
256
- end
257
-
258
- let!(:metadata) { GroupDocs::Questionnaire.new }
259
-
260
- it 'accepts access credentials hash' do
261
- lambda do
262
- subject.update_metadata!(metadata, :client_id => 'client_id', :private_key => 'private_key')
263
- end.should_not raise_error()
264
- end
265
-
266
- it 'raises error if metadata is not GroupDocs::Questionnaire object' do
267
- lambda { subject.update_metadata!('Metadata') }.should raise_error(ArgumentError)
268
- end
269
-
270
- it 'uses hashed version as payload' do
271
- metadata.should_receive(:to_hash)
272
- subject.update_metadata!(metadata)
273
- end
274
- end
275
-
276
- describe '#fields!' do
277
- before(:each) do
278
- mock_api_server(load_json('document_fields'))
279
- end
280
-
281
- it 'accepts access credentials hash' do
282
- lambda do
283
- subject.fields!(:client_id => 'client_id', :private_key => 'private_key')
284
- end.should_not raise_error()
285
- end
286
-
287
- it 'returns array of GroupDocs::Document::Field objects' do
288
- fields = subject.fields!
289
- fields.should be_an(Array)
290
- fields.each do |field|
291
- field.should be_a(GroupDocs::Document::Field)
292
- end
293
- end
294
- end
295
- end
1
+ require 'spec_helper'
2
+
3
+ describe GroupDocs::Questionnaire do
4
+
5
+ it_behaves_like GroupDocs::Api::Entity
6
+ include_examples GroupDocs::Api::Helpers::Status
7
+
8
+ describe '.all!' do
9
+ before(:each) do
10
+ mock_api_server(load_json('questionnaires_get'))
11
+ end
12
+
13
+ it 'accepts access credentials hash' do
14
+ lambda do
15
+ described_class.all!({}, :client_id => 'client_id', :private_key => 'private_key')
16
+ end.should_not raise_error()
17
+ end
18
+
19
+ it 'accepts options hash' do
20
+ lambda do
21
+ described_class.all!(:status => :draft)
22
+ end.should_not raise_error()
23
+ end
24
+
25
+ it 'parses status if passed' do
26
+ status = :draft
27
+ subject = described_class.new
28
+ described_class.should_receive(:new).at_least(1).times.and_return(subject)
29
+ subject.should_receive(:parse_status).with(status)
30
+ described_class.all!(:status => status)
31
+ end
32
+
33
+ it 'returns an array of GroupDocs::Questionnaire objects' do
34
+ questionnaires = described_class.all!
35
+ questionnaires.should be_an(Array)
36
+ questionnaires.each do |questionnaire|
37
+ questionnaire.should be_a(GroupDocs::Questionnaire)
38
+ end
39
+ end
40
+ end
41
+
42
+ describe '.get!' do
43
+ before(:each) do
44
+ mock_api_server(load_json('questionnaire_get'))
45
+ end
46
+
47
+ it 'accepts access credentials hash' do
48
+ lambda do
49
+ described_class.get!(1, :client_id => 'client_id', :private_key => 'private_key')
50
+ end.should_not raise_error()
51
+ end
52
+
53
+ it 'returns GroupDocs::Questionnaire object' do
54
+ described_class.get!(1).should be_a(GroupDocs::Questionnaire)
55
+ end
56
+
57
+ it 'returns nil if ResourceNotFound was raised' do
58
+ GroupDocs::Api::Request.any_instance.should_receive(:execute!).and_raise(RestClient::ResourceNotFound)
59
+ described_class.get!(1).should be_nil
60
+ end
61
+ end
62
+
63
+ it { should have_accessor(:id) }
64
+ it { should have_accessor(:guid) }
65
+ it { should have_accessor(:name) }
66
+ it { should have_accessor(:descr) }
67
+ it { should have_accessor(:pages) }
68
+ it { should have_accessor(:resolved_executions) }
69
+ it { should have_accessor(:assigned_questions) }
70
+ it { should have_accessor(:total_questions) }
71
+ it { should have_accessor(:modified) }
72
+ it { should have_accessor(:expires) }
73
+ it { should have_accessor(:document_ids) }
74
+
75
+ it { should alias_accessor(:description, :descr) }
76
+
77
+ describe '#pages=' do
78
+ it 'converts each page to GroupDocs::Questionnaire::Page object if hash is passed' do
79
+ subject.pages = [{ :number => 1, :title => 'Page1' }, { :number => 2, :title => 'Page2' }]
80
+ pages = subject.pages
81
+ pages.should be_an(Array)
82
+ pages.each do |page|
83
+ page.should be_a(GroupDocs::Questionnaire::Page)
84
+ end
85
+ end
86
+
87
+ it 'saves each page if it is GroupDocs::Questionnaire::Page object' do
88
+ page1 = GroupDocs::Questionnaire::Page.new(:number => 1)
89
+ page2 = GroupDocs::Questionnaire::Page.new(:number => 2)
90
+ subject.pages = [page1, page2]
91
+ subject.pages.should include(page1)
92
+ subject.pages.should include(page2)
93
+ end
94
+
95
+ it 'does nothing if nil is passed' do
96
+ lambda do
97
+ subject.pages = nil
98
+ end.should_not change(subject, :pages)
99
+ end
100
+ end
101
+
102
+ describe '#add_page' do
103
+ it 'raises error if page is not GroupDocs::Questionnaire::Page object' do
104
+ lambda { subject.add_page('Page') }.should raise_error(ArgumentError)
105
+ end
106
+
107
+ it 'adds page to pages instance variable' do
108
+ page = GroupDocs::Questionnaire::Page.new
109
+ lambda do
110
+ subject.add_page(page)
111
+ end.should change(subject, :pages).to([page])
112
+ end
113
+ end
114
+
115
+ describe '#create!' do
116
+ before(:each) do
117
+ mock_api_server(load_json('questionnaire_create'))
118
+ end
119
+
120
+ it 'accepts access credentials hash' do
121
+ lambda do
122
+ subject.create!(:client_id => 'client_id', :private_key => 'private_key')
123
+ end.should_not raise_error()
124
+ end
125
+
126
+ it 'uses hashed version of self as request body' do
127
+ subject.should_receive(:to_hash)
128
+ subject.create!
129
+ end
130
+
131
+ it 'updates questionnaire attributes' do
132
+ lambda do
133
+ subject.create!
134
+ end.should change {
135
+ subject.id
136
+ subject.guid
137
+ subject.name
138
+ }
139
+ end
140
+ end
141
+
142
+ describe '#update!' do
143
+ before(:each) do
144
+ mock_api_server(load_json('questionnaire_update'))
145
+ end
146
+
147
+ it 'accepts access credentials hash' do
148
+ lambda do
149
+ subject.update!(:client_id => 'client_id', :private_key => 'private_key')
150
+ end.should_not raise_error()
151
+ end
152
+
153
+ it 'uses hashed version of self as request body' do
154
+ subject.should_receive(:to_hash)
155
+ subject.update!
156
+ end
157
+ end
158
+
159
+ describe '#remove!' do
160
+ before(:each) do
161
+ mock_api_server(load_json('questionnaire_remove'))
162
+ end
163
+
164
+ it 'accepts access credentials hash' do
165
+ lambda do
166
+ subject.remove!(:client_id => 'client_id', :private_key => 'private_key')
167
+ end.should_not raise_error()
168
+ end
169
+ end
170
+
171
+ describe '#datasources!' do
172
+ before(:each) do
173
+ mock_api_server(load_json('questionnaire_datasources'))
174
+ end
175
+
176
+ it 'accepts access credentials hash' do
177
+ lambda do
178
+ subject.datasources!(:client_id => 'client_id', :private_key => 'private_key')
179
+ end.should_not raise_error()
180
+ end
181
+
182
+ it 'returns array of GroupDocs::DataSource objects' do
183
+ datasources = subject.datasources!
184
+ datasources.should be_an(Array)
185
+ datasources.each do |datasource|
186
+ datasource.should be_a(GroupDocs::DataSource)
187
+ end
188
+ end
189
+ end
190
+
191
+ describe '#executions!' do
192
+ before(:each) do
193
+ mock_api_server(load_json('questionnaire_executions'))
194
+ end
195
+
196
+ it 'accepts access credentials hash' do
197
+ lambda do
198
+ subject.executions!(:client_id => 'client_id', :private_key => 'private_key')
199
+ end.should_not raise_error()
200
+ end
201
+
202
+ it 'returns an array of GroupDocs::Questionnaire::Execution objects' do
203
+ executions = subject.executions!
204
+ executions.should be_an(Array)
205
+ executions.each do |execution|
206
+ execution.should be_a(GroupDocs::Questionnaire::Execution)
207
+ end
208
+ end
209
+ end
210
+
211
+ describe '#collectors!' do
212
+ before(:each) do
213
+ mock_api_server(load_json('questionnaire_collectors'))
214
+ end
215
+
216
+ it 'accepts access credentials hash' do
217
+ lambda do
218
+ subject.collectors!(%w(options), :client_id => 'client_id', :private_key => 'private_key')
219
+ end.should_not raise_error()
220
+ end
221
+
222
+ it 'accepts options hash' do
223
+ lambda do
224
+ subject.collectors!(:orderBy => '', :isAsc => '')
225
+ end.should_not raise_error()
226
+ end
227
+
228
+ it 'returns an array of GroupDocs::Questionnaire::Collector objects' do
229
+ collectors = subject.collectors!
230
+ collectors.should be_an(Array)
231
+ collectors.each do |collector|
232
+ collector.should be_a(GroupDocs::Questionnaire::Collector)
233
+ end
234
+ end
235
+ end
236
+
237
+ describe '#metadata!' do
238
+ before(:each) do
239
+ mock_api_server(load_json('questionnaire_get'))
240
+ end
241
+
242
+ it 'accepts access credentials hash' do
243
+ lambda do
244
+ subject.metadata!(:client_id => 'client_id', :private_key => 'private_key')
245
+ end.should_not raise_error()
246
+ end
247
+
248
+ it 'returns GroupDocs::Questionnaire object' do
249
+ subject.metadata!.should be_a(GroupDocs::Questionnaire)
250
+ end
251
+ end
252
+
253
+ describe '#update_metadata!' do
254
+ before(:each) do
255
+ mock_api_server('{ "status": "Ok", "result": { "questionnaire_id": 123456 }}')
256
+ end
257
+
258
+ let!(:metadata) { GroupDocs::Questionnaire.new }
259
+
260
+ it 'accepts access credentials hash' do
261
+ lambda do
262
+ subject.update_metadata!(metadata, :client_id => 'client_id', :private_key => 'private_key')
263
+ end.should_not raise_error()
264
+ end
265
+
266
+ it 'raises error if metadata is not GroupDocs::Questionnaire object' do
267
+ lambda { subject.update_metadata!('Metadata') }.should raise_error(ArgumentError)
268
+ end
269
+
270
+ it 'uses hashed version as payload' do
271
+ metadata.should_receive(:to_hash)
272
+ subject.update_metadata!(metadata)
273
+ end
274
+ end
275
+
276
+ describe '#fields!' do
277
+ before(:each) do
278
+ mock_api_server(load_json('document_fields'))
279
+ end
280
+
281
+ it 'accepts access credentials hash' do
282
+ lambda do
283
+ subject.fields!(:client_id => 'client_id', :private_key => 'private_key')
284
+ end.should_not raise_error()
285
+ end
286
+
287
+ it 'returns array of GroupDocs::Document::Field objects' do
288
+ fields = subject.fields!
289
+ fields.should be_an(Array)
290
+ fields.each do |field|
291
+ field.should be_a(GroupDocs::Document::Field)
292
+ end
293
+ end
294
+ end
295
+ end