gooddata 0.6.49 → 0.6.50

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 (390) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -4
  3. data/CLI.md +0 -4
  4. data/DEPENDENCIES.md +0 -8
  5. data/Dockerfile.jruby +19 -0
  6. data/Dockerfile.ruby +19 -0
  7. data/LICENSE +2 -2
  8. data/LICENSE.rb +1 -1
  9. data/Rakefile +1 -1
  10. data/gooddata.gemspec +29 -28
  11. data/lib/gooddata.rb +2 -1
  12. data/lib/gooddata/app/app.rb +1 -1
  13. data/lib/gooddata/bricks/base_downloader.rb +1 -1
  14. data/lib/gooddata/bricks/brick.rb +3 -4
  15. data/lib/gooddata/bricks/bricks.rb +3 -1
  16. data/lib/gooddata/bricks/middleware/aws_middleware.rb +6 -8
  17. data/lib/gooddata/bricks/middleware/base_middleware.rb +2 -1
  18. data/lib/gooddata/bricks/middleware/bench_middleware.rb +2 -1
  19. data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +3 -3
  20. data/lib/gooddata/bricks/middleware/decode_params_middleware.rb +3 -2
  21. data/lib/gooddata/bricks/middleware/dwh_middleware.rb +28 -0
  22. data/lib/gooddata/bricks/middleware/fs_download_middleware.rb +2 -2
  23. data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +2 -2
  24. data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +84 -21
  25. data/lib/gooddata/bricks/middleware/logger_middleware.rb +1 -1
  26. data/lib/gooddata/bricks/middleware/middleware.rb +1 -1
  27. data/lib/gooddata/bricks/middleware/params_inspect_middleware.rb +21 -0
  28. data/lib/gooddata/bricks/middleware/restforce_middleware.rb +26 -26
  29. data/lib/gooddata/bricks/middleware/stdout_middleware.rb +1 -1
  30. data/lib/gooddata/bricks/middleware/twitter_middleware.rb +1 -1
  31. data/lib/gooddata/bricks/middleware/undot_params_middleware.rb +1 -1
  32. data/lib/gooddata/bricks/pipeline.rb +6 -13
  33. data/lib/gooddata/bricks/utils.rb +3 -3
  34. data/lib/gooddata/cli/cli.rb +1 -1
  35. data/lib/gooddata/cli/commands/auth_cmd.rb +1 -1
  36. data/lib/gooddata/cli/commands/domain_cmd.rb +1 -1
  37. data/lib/gooddata/cli/commands/project_cmd.rb +1 -18
  38. data/lib/gooddata/cli/hooks.rb +1 -2
  39. data/lib/gooddata/cli/shared.rb +1 -1
  40. data/lib/gooddata/cli/terminal.rb +1 -1
  41. data/lib/gooddata/client.rb +1 -1
  42. data/lib/gooddata/commands/api.rb +1 -1
  43. data/lib/gooddata/commands/auth.rb +1 -1
  44. data/lib/gooddata/commands/base.rb +1 -1
  45. data/lib/gooddata/commands/commands.rb +1 -1
  46. data/lib/gooddata/commands/datasets.rb +1 -1
  47. data/lib/gooddata/commands/datawarehouse.rb +1 -1
  48. data/lib/gooddata/commands/domain.rb +1 -1
  49. data/lib/gooddata/commands/process.rb +1 -1
  50. data/lib/gooddata/commands/project.rb +2 -31
  51. data/lib/gooddata/commands/projects.rb +1 -1
  52. data/lib/gooddata/commands/role.rb +1 -1
  53. data/lib/gooddata/commands/runners.rb +1 -1
  54. data/lib/gooddata/commands/scaffold.rb +1 -1
  55. data/lib/gooddata/commands/user.rb +1 -1
  56. data/lib/gooddata/connection.rb +1 -1
  57. data/lib/gooddata/core/core.rb +1 -1
  58. data/lib/gooddata/core/logging.rb +1 -1
  59. data/lib/gooddata/core/nil_logger.rb +1 -1
  60. data/lib/gooddata/core/project.rb +1 -1
  61. data/lib/gooddata/core/rest.rb +1 -1
  62. data/lib/gooddata/core/user.rb +1 -1
  63. data/lib/gooddata/data/data.rb +1 -1
  64. data/lib/gooddata/data/guesser.rb +1 -1
  65. data/lib/gooddata/exceptions/attr_element_not_found.rb +1 -1
  66. data/lib/gooddata/exceptions/command_failed.rb +1 -1
  67. data/lib/gooddata/exceptions/exceptions.rb +1 -1
  68. data/lib/gooddata/exceptions/execution_limit_exceeded.rb +1 -1
  69. data/lib/gooddata/exceptions/export_clone.rb +4 -0
  70. data/lib/gooddata/exceptions/filter_maqlization.rb +1 -1
  71. data/lib/gooddata/exceptions/import_clone.rb +4 -0
  72. data/lib/gooddata/exceptions/malformed_user.rb +1 -1
  73. data/lib/gooddata/exceptions/maql_execution.rb +1 -1
  74. data/lib/gooddata/exceptions/no_project_error.rb +1 -1
  75. data/lib/gooddata/exceptions/object_migration.rb +1 -1
  76. data/lib/gooddata/exceptions/project_not_found.rb +1 -1
  77. data/lib/gooddata/exceptions/segment_not_empty.rb +1 -1
  78. data/lib/gooddata/exceptions/uncomputable_report.rb +1 -1
  79. data/lib/gooddata/exceptions/user_in_different_domain.rb +1 -1
  80. data/lib/gooddata/exceptions/validation_error.rb +1 -1
  81. data/lib/gooddata/extensions/big_decimal.rb +1 -1
  82. data/lib/gooddata/extensions/class.rb +11 -0
  83. data/lib/gooddata/extensions/enumerable.rb +1 -1
  84. data/lib/gooddata/extensions/extensions.rb +1 -1
  85. data/lib/gooddata/extensions/false.rb +9 -1
  86. data/lib/gooddata/extensions/hash.rb +12 -1
  87. data/lib/gooddata/extensions/integer.rb +5 -0
  88. data/lib/gooddata/extensions/nil.rb +5 -1
  89. data/lib/gooddata/extensions/numeric.rb +1 -1
  90. data/lib/gooddata/extensions/object.rb +5 -1
  91. data/lib/gooddata/extensions/symbol.rb +1 -1
  92. data/lib/gooddata/extensions/true.rb +9 -1
  93. data/lib/gooddata/extract.rb +1 -1
  94. data/lib/gooddata/goodzilla/goodzilla.rb +1 -1
  95. data/lib/gooddata/helpers/auth_helpers.rb +1 -1
  96. data/lib/gooddata/helpers/csv_helper.rb +1 -1
  97. data/lib/gooddata/helpers/data_helper.rb +19 -10
  98. data/lib/gooddata/helpers/erb_helper.rb +23 -0
  99. data/lib/gooddata/helpers/global_helpers.rb +5 -73
  100. data/lib/gooddata/helpers/global_helpers_params.rb +73 -7
  101. data/lib/gooddata/helpers/helpers.rb +1 -1
  102. data/lib/gooddata/lcm/actions/actions.rb +12 -0
  103. data/lib/gooddata/lcm/actions/associate_clients.rb +46 -0
  104. data/lib/gooddata/lcm/actions/base_action.rb +23 -0
  105. data/lib/gooddata/lcm/actions/collect_clients.rb +89 -0
  106. data/lib/gooddata/lcm/actions/collect_segment_clients.rb +103 -0
  107. data/lib/gooddata/lcm/actions/collect_segments.rb +59 -0
  108. data/lib/gooddata/lcm/actions/create_segment_masters.rb +167 -0
  109. data/lib/gooddata/lcm/actions/ensure_release_table.rb +56 -0
  110. data/lib/gooddata/lcm/actions/ensure_segments.rb +35 -0
  111. data/lib/gooddata/lcm/actions/ensure_technical_users_domain.rb +66 -0
  112. data/lib/gooddata/lcm/actions/ensure_technical_users_project.rb +68 -0
  113. data/lib/gooddata/lcm/actions/ensure_titles.rb +54 -0
  114. data/lib/gooddata/lcm/actions/hello_world.rb +44 -0
  115. data/lib/gooddata/lcm/actions/print_actions.rb +61 -0
  116. data/lib/gooddata/lcm/actions/print_modes.rb +72 -0
  117. data/lib/gooddata/lcm/actions/print_types.rb +55 -0
  118. data/lib/gooddata/lcm/actions/provision_clients.rb +80 -0
  119. data/lib/gooddata/lcm/actions/purge_clients.rb +78 -0
  120. data/lib/gooddata/lcm/actions/segments_filter.rb +50 -0
  121. data/lib/gooddata/lcm/actions/synchronize_attribute_drillpaths.rb +60 -0
  122. data/lib/gooddata/lcm/actions/synchronize_clients.rb +87 -0
  123. data/lib/gooddata/lcm/actions/synchronize_color_palette.rb +59 -0
  124. data/lib/gooddata/lcm/actions/synchronize_label_types.rb +61 -0
  125. data/lib/gooddata/lcm/actions/synchronize_ldm.rb +64 -0
  126. data/lib/gooddata/lcm/actions/synchronize_meta.rb +55 -0
  127. data/lib/gooddata/lcm/actions/synchronize_new_segments.rb +55 -0
  128. data/lib/gooddata/lcm/actions/synchronize_processes.rb +66 -0
  129. data/lib/gooddata/lcm/actions/synchronize_schedules.rb +81 -0
  130. data/lib/gooddata/lcm/actions/update_release_table.rb +80 -0
  131. data/lib/gooddata/lcm/data/create_lcm_release.sql.erb +5 -0
  132. data/lib/gooddata/lcm/data/insert_into_lcm_release.sql.erb +11 -0
  133. data/lib/gooddata/lcm/data/select_from_lcm_release.sql.erb +8 -0
  134. data/lib/gooddata/lcm/data/update_lcm_release.sql.erb +7 -0
  135. data/lib/gooddata/lcm/dsl/dsl.rb +50 -0
  136. data/lib/gooddata/lcm/dsl/params_dsl.rb +61 -0
  137. data/lib/gooddata/lcm/dsl/type_dsl.rb +61 -0
  138. data/lib/gooddata/lcm/helpers/check_helper.rb +37 -0
  139. data/lib/gooddata/lcm/helpers/helpers.rb +12 -0
  140. data/lib/gooddata/lcm/lcm.rb +161 -20
  141. data/lib/gooddata/lcm/lcm2.rb +260 -0
  142. data/lib/gooddata/lcm/types/base_type.rb +29 -0
  143. data/lib/gooddata/lcm/types/class/ads_client.rb +35 -0
  144. data/lib/gooddata/lcm/types/class/class.rb +21 -0
  145. data/lib/gooddata/lcm/types/class/gd_client.rb +35 -0
  146. data/lib/gooddata/lcm/types/class/types.rb +12 -0
  147. data/lib/gooddata/lcm/types/complex/complex.rb +33 -0
  148. data/lib/gooddata/lcm/types/complex/release_query.rb +35 -0
  149. data/lib/gooddata/lcm/types/complex/segment.rb +37 -0
  150. data/lib/gooddata/lcm/types/complex/synchronization_info.rb +32 -0
  151. data/lib/gooddata/lcm/types/complex/tokens.rb +31 -0
  152. data/lib/gooddata/lcm/types/complex/types.rb +12 -0
  153. data/lib/gooddata/lcm/types/complex/update_preference.rb +32 -0
  154. data/lib/gooddata/lcm/types/param.rb +16 -0
  155. data/lib/gooddata/lcm/types/scalar/bool.rb +22 -0
  156. data/lib/gooddata/lcm/types/scalar/hash.rb +22 -0
  157. data/lib/gooddata/lcm/types/scalar/integer.rb +22 -0
  158. data/lib/gooddata/lcm/types/scalar/object.rb +22 -0
  159. data/lib/gooddata/lcm/types/scalar/string.rb +22 -0
  160. data/lib/gooddata/lcm/types/scalar/types.rb +12 -0
  161. data/lib/gooddata/lcm/types/special/array.rb +35 -0
  162. data/lib/gooddata/lcm/types/special/enum.rb +17 -0
  163. data/lib/gooddata/lcm/types/special/types.rb +12 -0
  164. data/lib/gooddata/lcm/types/types.rb +12 -0
  165. data/lib/gooddata/mixins/author.rb +1 -1
  166. data/lib/gooddata/mixins/content_getter.rb +1 -1
  167. data/lib/gooddata/mixins/content_property_reader.rb +1 -1
  168. data/lib/gooddata/mixins/content_property_writer.rb +1 -1
  169. data/lib/gooddata/mixins/contributor.rb +1 -1
  170. data/lib/gooddata/mixins/data_getter.rb +1 -1
  171. data/lib/gooddata/mixins/data_property_reader.rb +1 -1
  172. data/lib/gooddata/mixins/data_property_writer.rb +1 -1
  173. data/lib/gooddata/mixins/inspector.rb +1 -1
  174. data/lib/gooddata/mixins/is_attribute.rb +1 -1
  175. data/lib/gooddata/mixins/is_dimension.rb +1 -1
  176. data/lib/gooddata/mixins/is_fact.rb +1 -1
  177. data/lib/gooddata/mixins/is_label.rb +1 -1
  178. data/lib/gooddata/mixins/links.rb +1 -1
  179. data/lib/gooddata/mixins/md_finders.rb +1 -1
  180. data/lib/gooddata/mixins/md_grantees.rb +1 -1
  181. data/lib/gooddata/mixins/md_id_to_uri.rb +9 -3
  182. data/lib/gooddata/mixins/md_json.rb +1 -1
  183. data/lib/gooddata/mixins/md_lock.rb +1 -1
  184. data/lib/gooddata/mixins/md_object_id.rb +1 -1
  185. data/lib/gooddata/mixins/md_object_indexer.rb +1 -1
  186. data/lib/gooddata/mixins/md_object_query.rb +1 -1
  187. data/lib/gooddata/mixins/md_relations.rb +1 -1
  188. data/lib/gooddata/mixins/meta_getter.rb +1 -1
  189. data/lib/gooddata/mixins/meta_property_reader.rb +1 -1
  190. data/lib/gooddata/mixins/meta_property_writer.rb +1 -1
  191. data/lib/gooddata/mixins/mixins.rb +1 -1
  192. data/lib/gooddata/mixins/not_attribute.rb +1 -1
  193. data/lib/gooddata/mixins/not_exportable.rb +1 -1
  194. data/lib/gooddata/mixins/not_fact.rb +1 -1
  195. data/lib/gooddata/mixins/not_group.rb +1 -1
  196. data/lib/gooddata/mixins/not_label.rb +1 -1
  197. data/lib/gooddata/mixins/not_metric.rb +1 -1
  198. data/lib/gooddata/mixins/obj_id.rb +1 -1
  199. data/lib/gooddata/mixins/rest_getters.rb +1 -1
  200. data/lib/gooddata/mixins/rest_resource.rb +1 -1
  201. data/lib/gooddata/mixins/root_key_getter.rb +1 -1
  202. data/lib/gooddata/mixins/root_key_setter.rb +1 -1
  203. data/lib/gooddata/mixins/timestamps.rb +1 -1
  204. data/lib/gooddata/models/ads_output_stage.rb +85 -0
  205. data/lib/gooddata/models/automated_data_distribution.rb +36 -0
  206. data/lib/gooddata/models/blueprint/anchor_field.rb +4 -3
  207. data/lib/gooddata/models/blueprint/attribute_field.rb +18 -2
  208. data/lib/gooddata/models/blueprint/blueprint.rb +1 -1
  209. data/lib/gooddata/models/blueprint/blueprint_field.rb +1 -1
  210. data/lib/gooddata/models/blueprint/dashboard_builder.rb +1 -1
  211. data/lib/gooddata/models/blueprint/dataset_blueprint.rb +6 -1
  212. data/lib/gooddata/models/blueprint/date_dimension.rb +1 -1
  213. data/lib/gooddata/models/blueprint/fact_field.rb +1 -1
  214. data/lib/gooddata/models/blueprint/label_field.rb +5 -1
  215. data/lib/gooddata/models/blueprint/project_blueprint.rb +1 -1
  216. data/lib/gooddata/models/blueprint/project_builder.rb +1 -1
  217. data/lib/gooddata/models/blueprint/reference_field.rb +1 -1
  218. data/lib/gooddata/models/blueprint/schema_blueprint.rb +1 -1
  219. data/lib/gooddata/models/blueprint/schema_builder.rb +1 -1
  220. data/lib/gooddata/models/blueprint/to_manifest.rb +7 -3
  221. data/lib/gooddata/models/blueprint/to_wire.rb +12 -1
  222. data/lib/gooddata/models/channel_configuration.rb +112 -0
  223. data/lib/gooddata/models/client.rb +42 -6
  224. data/lib/gooddata/models/client_synchronization_result.rb +1 -1
  225. data/lib/gooddata/models/client_synchronization_result_details.rb +1 -1
  226. data/lib/gooddata/models/datawarehouse.rb +25 -3
  227. data/lib/gooddata/models/domain.rb +29 -4
  228. data/lib/gooddata/models/execution.rb +1 -1
  229. data/lib/gooddata/models/execution_detail.rb +1 -1
  230. data/lib/gooddata/models/from_wire.rb +8 -1
  231. data/lib/gooddata/models/invitation.rb +1 -1
  232. data/lib/gooddata/models/links.rb +1 -1
  233. data/lib/gooddata/models/membership.rb +1 -1
  234. data/lib/gooddata/models/metadata.rb +3 -2
  235. data/lib/gooddata/models/metadata/attribute.rb +7 -1
  236. data/lib/gooddata/models/metadata/dashboard.rb +3 -3
  237. data/lib/gooddata/models/metadata/dashboard/dashboard_item.rb +1 -1
  238. data/lib/gooddata/models/metadata/dashboard/filter_apply_item.rb +2 -2
  239. data/lib/gooddata/models/metadata/dashboard/filter_item.rb +2 -2
  240. data/lib/gooddata/models/metadata/dashboard/geo_chart_item.rb +2 -2
  241. data/lib/gooddata/models/metadata/dashboard/headline_item.rb +2 -2
  242. data/lib/gooddata/models/metadata/dashboard/iframe_item.rb +2 -2
  243. data/lib/gooddata/models/metadata/dashboard/report_item.rb +2 -2
  244. data/lib/gooddata/models/metadata/dashboard/text_item.rb +2 -2
  245. data/lib/gooddata/models/metadata/dashboard_tab.rb +2 -2
  246. data/lib/gooddata/models/metadata/dataset.rb +1 -1
  247. data/lib/gooddata/models/metadata/dimension.rb +1 -1
  248. data/lib/gooddata/models/metadata/fact.rb +1 -1
  249. data/lib/gooddata/models/metadata/folder.rb +1 -1
  250. data/lib/gooddata/models/metadata/label.rb +1 -1
  251. data/lib/gooddata/models/metadata/metadata.rb +1 -1
  252. data/lib/gooddata/models/metadata/metric.rb +1 -1
  253. data/lib/gooddata/models/metadata/report.rb +1 -1
  254. data/lib/gooddata/models/metadata/report_definition.rb +1 -1
  255. data/lib/gooddata/models/metadata/scheduled_mail.rb +2 -2
  256. data/lib/gooddata/models/metadata/scheduled_mail/dashboard_attachment.rb +1 -1
  257. data/lib/gooddata/models/metadata/scheduled_mail/report_attachment.rb +1 -1
  258. data/lib/gooddata/models/metadata/variable.rb +1 -1
  259. data/lib/gooddata/models/model.rb +1 -1
  260. data/lib/gooddata/models/models.rb +1 -1
  261. data/lib/gooddata/models/module_constants.rb +1 -1
  262. data/lib/gooddata/models/notification_rule.rb +113 -0
  263. data/lib/gooddata/models/process.rb +10 -3
  264. data/lib/gooddata/models/profile.rb +9 -1
  265. data/lib/gooddata/models/project.rb +248 -50
  266. data/lib/gooddata/models/project_creator.rb +2 -2
  267. data/lib/gooddata/models/project_metadata.rb +1 -1
  268. data/lib/gooddata/models/project_role.rb +1 -1
  269. data/lib/gooddata/models/report_data_result.rb +1 -1
  270. data/lib/gooddata/models/schedule.rb +49 -13
  271. data/lib/gooddata/models/segment.rb +3 -3
  272. data/lib/gooddata/models/style_setting.rb +71 -0
  273. data/lib/gooddata/models/subscription.rb +181 -0
  274. data/lib/gooddata/models/tab_builder.rb +1 -1
  275. data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +1 -1
  276. data/lib/gooddata/models/user_filters/user_filter.rb +1 -1
  277. data/lib/gooddata/models/user_filters/user_filter_builder.rb +11 -5
  278. data/lib/gooddata/models/user_filters/user_filters.rb +1 -1
  279. data/lib/gooddata/models/user_filters/variable_user_filter.rb +1 -1
  280. data/lib/gooddata/models/user_group.rb +19 -12
  281. data/lib/gooddata/rest/client.rb +9 -1
  282. data/lib/gooddata/rest/connection.rb +18 -9
  283. data/lib/gooddata/rest/object.rb +1 -1
  284. data/lib/gooddata/rest/object_factory.rb +1 -1
  285. data/lib/gooddata/rest/resource.rb +1 -1
  286. data/lib/gooddata/rest/rest.rb +1 -1
  287. data/lib/gooddata/version.rb +2 -2
  288. data/spec/.rubocop.yml +16 -0
  289. data/spec/bricks/bricks_spec.rb +13 -15
  290. data/spec/data/blueprints/attribute_sort_order_blueprint.json +72 -0
  291. data/spec/data/gooddata_version_process/gooddata_version.rb +1 -1
  292. data/spec/data/hello_world_process/hello_world.rb +2 -2
  293. data/spec/data/ruby_params_process/ruby_params.rb +1 -1
  294. data/spec/data/ruby_process/process.rb +2 -2
  295. data/spec/data/wire_models/attribute_sort_by_model.json +73 -0
  296. data/spec/environment/default.rb +14 -13
  297. data/spec/environment/develop.rb +26 -11
  298. data/spec/environment/environment.rb +2 -1
  299. data/spec/environment/hotfix.rb +15 -7
  300. data/spec/environment/production.rb +6 -14
  301. data/spec/environment/staging.rb +9 -10
  302. data/spec/helpers/blueprint_helper.rb +11 -10
  303. data/spec/helpers/cli_helper.rb +26 -24
  304. data/spec/helpers/connection_helper.rb +28 -26
  305. data/spec/helpers/crypto_helper.rb +8 -6
  306. data/spec/helpers/csv_helper.rb +7 -5
  307. data/spec/helpers/process_helper.rb +13 -11
  308. data/spec/helpers/project_helper.rb +36 -34
  309. data/spec/helpers/schedule_helper.rb +13 -11
  310. data/spec/helpers/spec_helper.rb +8 -6
  311. data/spec/integration/ads_output_stage_spec.rb +55 -0
  312. data/spec/integration/blueprint_updates_spec.rb +22 -16
  313. data/spec/integration/blueprint_with_grain_spec.rb +5 -3
  314. data/spec/integration/channel_configuration_spec.rb +67 -0
  315. data/spec/integration/clients_spec.rb +31 -22
  316. data/spec/integration/command_datawarehouse_spec.rb +4 -4
  317. data/spec/integration/command_projects_spec.rb +6 -6
  318. data/spec/integration/create_from_template_spec.rb +4 -3
  319. data/spec/integration/create_project_spec.rb +7 -4
  320. data/spec/integration/date_dim_switch_spec.rb +25 -28
  321. data/spec/integration/deprecated_load_spec.rb +11 -9
  322. data/spec/integration/full_process_schedule_spec.rb +82 -13
  323. data/spec/integration/full_project_spec.rb +67 -45
  324. data/spec/integration/lcm_spec.rb +41 -0
  325. data/spec/integration/over_to_user_filters_spec.rb +14 -10
  326. data/spec/integration/partial_md_export_import_spec.rb +3 -4
  327. data/spec/integration/project_spec.rb +101 -42
  328. data/spec/integration/rest_spec.rb +5 -4
  329. data/spec/integration/schedule_spec.rb +28 -39
  330. data/spec/integration/segments_spec.rb +42 -31
  331. data/spec/integration/subscription_spec.rb +63 -0
  332. data/spec/integration/user_filters_spec.rb +49 -39
  333. data/spec/integration/user_group_spec.rb +25 -5
  334. data/spec/integration/variables_spec.rb +34 -32
  335. data/spec/logging_in_logging_out_spec.rb +6 -8
  336. data/spec/spec_helper.rb +3 -3
  337. data/spec/unit/bricks/bricks_spec.rb +3 -4
  338. data/spec/unit/bricks/middleware/aws_middelware_spec.rb +8 -15
  339. data/spec/unit/bricks/middleware/bench_middleware_spec.rb +2 -2
  340. data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +2 -2
  341. data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +2 -2
  342. data/spec/unit/bricks/middleware/logger_middleware_spec.rb +2 -2
  343. data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +3 -3
  344. data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +3 -3
  345. data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +3 -3
  346. data/spec/unit/cli/cli_spec.rb +3 -3
  347. data/spec/unit/cli/commands/cmd_auth_spec.rb +2 -2
  348. data/spec/unit/commands/command_projects_spec.rb +3 -3
  349. data/spec/unit/core/connection_spec.rb +3 -4
  350. data/spec/unit/core/logging_spec.rb +2 -5
  351. data/spec/unit/core/nil_logger_spec.rb +2 -2
  352. data/spec/unit/core/project_spec.rb +4 -4
  353. data/spec/unit/extensions/hash_spec.rb +3 -4
  354. data/spec/unit/godzilla/goodzilla_spec.rb +22 -26
  355. data/spec/unit/helpers/csv_helper_spec.rb +3 -3
  356. data/spec/unit/helpers/data_helper_spec.rb +6 -18
  357. data/spec/unit/helpers/global_helpers_spec.rb +112 -28
  358. data/spec/unit/helpers_spec.rb +139 -2
  359. data/spec/unit/models/blueprint/attribute_sort_by_spec.rb +20 -0
  360. data/spec/unit/models/blueprint/attributes_spec.rb +1 -2
  361. data/spec/unit/models/blueprint/dataset_spec.rb +2 -3
  362. data/spec/unit/models/blueprint/labels_spec.rb +1 -2
  363. data/spec/unit/models/blueprint/project_blueprint_spec.rb +34 -35
  364. data/spec/unit/models/blueprint/reference_spec.rb +1 -2
  365. data/spec/unit/models/blueprint/schema_builder_spec.rb +5 -7
  366. data/spec/unit/models/blueprint/to_wire_spec.rb +76 -55
  367. data/spec/unit/models/domain_spec.rb +4 -5
  368. data/spec/unit/models/execution_spec.rb +16 -15
  369. data/spec/unit/models/from_wire_spec.rb +24 -19
  370. data/spec/unit/models/invitation_spec.rb +1 -1
  371. data/spec/unit/models/membership_spec.rb +36 -41
  372. data/spec/unit/models/metadata_spec.rb +20 -18
  373. data/spec/unit/models/metric_spec.rb +67 -55
  374. data/spec/unit/models/model_spec.rb +32 -37
  375. data/spec/unit/models/params_spec.rb +1 -1
  376. data/spec/unit/models/profile_spec.rb +40 -45
  377. data/spec/unit/models/project_creator_spec.rb +27 -29
  378. data/spec/unit/models/project_role_spec.rb +1 -1
  379. data/spec/unit/models/project_spec.rb +65 -2
  380. data/spec/unit/models/report_result_data_spec.rb +7 -12
  381. data/spec/unit/models/schedule_spec.rb +71 -35
  382. data/spec/unit/models/to_manifest_spec.rb +69 -4
  383. data/spec/unit/models/unit_project_spec.rb +12 -12
  384. data/spec/unit/models/user_filters_spec.rb +40 -40
  385. data/spec/unit/models/variable_spec.rb +108 -93
  386. data/spec/unit/rest/polling_spec.rb +7 -7
  387. data/spec/unit/rest/resource_spec.rb +2 -2
  388. metadata +145 -228
  389. data/spec/environment/release.rb +0 -21
  390. data/spec/environment/staging_3.rb +0 -36
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -13,57 +13,52 @@ describe GoodData::Membership do
13
13
  @client = ConnectionHelper.create_default_connection
14
14
 
15
15
  @users = [
16
- @client.create(GoodData::Membership,
17
- {
18
- 'user' => {
19
- 'content' => {
20
- 'email' => 'petr.cvengros@gooddata.com',
21
- 'firstname' => 'Petr',
22
- 'lastname' => 'Cvengros'
23
- },
24
- 'meta' => {}
25
- }
16
+ @client.create(
17
+ GoodData::Membership,
18
+ 'user' => {
19
+ 'content' => {
20
+ 'email' => 'petr.cvengros@gooddata.com',
21
+ 'firstname' => 'Petr',
22
+ 'lastname' => 'Cvengros'
23
+ },
24
+ 'meta' => {}
26
25
  }
27
26
  ),
28
27
 
29
28
  GoodData::Membership.new(
30
- {
31
- 'user' => {
32
- 'content' => {
33
- 'email' => 'tomas.korcak@gooddata.com',
34
- 'firstname' => 'Tomas',
35
- 'lastname' => 'Korcak'
36
- },
37
- 'meta' => {}
38
- }
29
+ 'user' => {
30
+ 'content' => {
31
+ 'email' => 'tomas.korcak@gooddata.com',
32
+ 'firstname' => 'Tomas',
33
+ 'lastname' => 'Korcak'
34
+ },
35
+ 'meta' => {}
39
36
  }
40
37
  ),
41
38
 
42
- @client.create(GoodData::Membership,
43
- {
44
- 'user' => {
45
- 'content' => {
46
- 'email' => 'patrick.mcconlogue@gooddata.com',
47
- 'firstname' => 'Patrick',
48
- 'lastname' => 'McConlogue'
49
- },
50
- 'meta' => {}
51
- }
39
+ @client.create(
40
+ GoodData::Membership,
41
+ 'user' => {
42
+ 'content' => {
43
+ 'email' => 'patrick.mcconlogue@gooddata.com',
44
+ 'firstname' => 'Patrick',
45
+ 'lastname' => 'McConlogue'
46
+ },
47
+ 'meta' => {}
52
48
  }
53
49
  ),
54
50
 
55
- @client.create(GoodData::Membership,
56
- {
57
- 'user' => {
58
- 'content' => {
59
- 'email' => 'tomas.svarovsky@gooddata.com',
60
- 'firstname' => 'Tomas',
61
- 'lastname' => 'Svarovsky'
62
- },
63
- 'meta' => {}
64
- }
51
+ @client.create(
52
+ GoodData::Membership,
53
+ 'user' => {
54
+ 'content' => {
55
+ 'email' => 'tomas.svarovsky@gooddata.com',
56
+ 'firstname' => 'Tomas',
57
+ 'lastname' => 'Svarovsky'
58
+ },
59
+ 'meta' => {}
65
60
  }
66
- ),
61
+ )
67
62
  ]
68
63
  end
69
64
 
@@ -1,31 +1,33 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
7
7
  require 'gooddata'
8
8
 
9
9
  RAW_DATA = {
10
- 'metric'=>
11
- {'content'=>
12
- {'format'=>'#,##0',
13
- 'expression'=> 'SELECT SUM([/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/700])'},
14
- 'meta' =>
15
- {'author'=>'/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248',
16
- 'uri'=>'/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/70',
17
- 'tags'=>'a a b cg r t',
18
- 'created'=>'2014-04-30 22:47:57',
19
- 'identifier'=>'afo7bx1VakCz',
20
- 'deprecated'=>'0',
21
- 'summary'=>'',
22
- 'title'=>'sum of Lines changed',
23
- 'category'=>'metric',
24
- 'updated'=>'2014-05-05 20:00:42',
25
- 'contributor'=>'/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248'}}
10
+ 'metric' => {
11
+ 'content' => {
12
+ 'format' => '#,##0',
13
+ 'expression' => 'SELECT SUM([/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/700])'
14
+ },
15
+ 'meta' => {
16
+ 'author' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248',
17
+ 'uri' => '/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/70',
18
+ 'tags' => 'a a b cg r t',
19
+ 'created' => '2014-04-30 22:47:57',
20
+ 'identifier' => 'afo7bx1VakCz',
21
+ 'deprecated' => '0',
22
+ 'summary' => '',
23
+ 'title' => 'sum of Lines changed',
24
+ 'category' => 'metric',
25
+ 'updated' => '2014-05-05 20:00:42',
26
+ 'contributor' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248'
27
+ }
28
+ }
26
29
  }
27
30
 
28
-
29
31
  describe GoodData::MdObject do
30
32
  before(:each) do
31
33
  @instance = GoodData::MdObject.new(GoodData::Helpers.deep_dup(RAW_DATA))
@@ -1,71 +1,83 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
7
7
  require 'gooddata/models/metadata/metric'
8
8
 
9
9
  describe GoodData::Metric do
10
+ RAW_DATA2 = {
11
+ 'metric' => {
12
+ 'content' => {
13
+ 'format' => '#,##0',
14
+ 'expression' => 'SELECT SUM([/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/700])'
15
+ },
16
+ 'meta' => {
17
+ 'author' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248',
18
+ 'uri' => '/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/70',
19
+ 'tags' => 'a b cg r t',
20
+ 'created' => '2014-04-30 22:47:57',
21
+ 'identifier' => 'afo7bx1VakCz',
22
+ 'deprecated' => '0',
23
+ 'summary' => '',
24
+ 'locked' => 0,
25
+ 'title' => 'sum of Lines changed',
26
+ 'category' => 'metric',
27
+ 'updated' => '2014-05-05 20:00:42',
28
+ 'contributor' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248'
29
+ }
30
+ }
31
+ }
10
32
 
11
-
12
- RAW_DATA2 = {'metric' =>
13
- {'content' =>
14
- {'format' => '#,##0',
15
- 'expression' => 'SELECT SUM([/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/700])'},
16
- 'meta' =>
17
- {'author' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248',
18
- 'uri' => '/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/70',
19
- 'tags' => 'a b cg r t',
20
- 'created' => '2014-04-30 22:47:57',
21
- 'identifier' => 'afo7bx1VakCz',
22
- 'deprecated' => '0',
23
- 'summary' => '',
24
- 'locked' => 0,
25
- 'title' => 'sum of Lines changed',
26
- 'category' => 'metric',
27
- 'updated' => '2014-05-05 20:00:42',
28
- 'contributor' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248'}}}
29
-
30
- RAW_DATA3 = {'metric' =>
31
- {'content' =>
32
- {'format' => '#,##0',
33
- 'expression' => 'SELECT SUM([/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/710])'},
34
- 'meta' =>
35
- {'author' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248',
36
- 'uri' => '/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/71',
37
- 'tags' => 'a b cg r t',
38
- 'created' => '2014-04-30 22:47:57',
39
- 'identifier' => 'afo7bx1VakCz',
40
- 'deprecated' => '0',
41
- 'summary' => '',
42
- 'locked' => 1,
43
- 'title' => 'sum of Lines changed',
44
- 'category' => 'metric',
45
- 'updated' => '2014-05-05 20:00:42',
46
- 'contributor' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248'}}}
33
+ RAW_DATA3 = {
34
+ 'metric' => {
35
+ 'content' => {
36
+ 'format' => '#,##0',
37
+ 'expression' => 'SELECT SUM([/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/710])'
38
+ },
39
+ 'meta' => {
40
+ 'author' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248',
41
+ 'uri' => '/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/71',
42
+ 'tags' => 'a b cg r t',
43
+ 'created' => '2014-04-30 22:47:57',
44
+ 'identifier' => 'afo7bx1VakCz',
45
+ 'deprecated' => '0',
46
+ 'summary' => '',
47
+ 'locked' => 1,
48
+ 'title' => 'sum of Lines changed',
49
+ 'category' => 'metric',
50
+ 'updated' => '2014-05-05 20:00:42',
51
+ 'contributor' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248'
52
+ }
53
+ }
54
+ }
47
55
 
48
56
  USED_METRIC = GoodData::Metric.new(RAW_DATA2)
49
57
  UNUSED_METRIC = GoodData::Metric.new(RAW_DATA3)
50
58
 
51
- RAW_DATA = {'metric' =>
52
- {'content' =>
53
- {'format' => '#,##0',
54
- 'expression' =>
55
- "SELECT SUM([#{USED_METRIC.uri}])"},
56
- 'meta' =>
57
- {'author' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248',
58
- 'uri' => '/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/252',
59
- 'tags' => 'a b cg r t',
60
- 'created' => '2014-04-30 22:47:57',
61
- 'identifier' => 'afo7bx1VakCz',
62
- 'deprecated' => '0',
63
- 'summary' => '',
64
- 'locked' => 0,
65
- 'title' => 'sum of Lines changed',
66
- 'category' => 'metric',
67
- 'updated' => '2014-05-05 20:00:42',
68
- 'contributor' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248'}}}
59
+ RAW_DATA = {
60
+ 'metric' => {
61
+ 'content' => {
62
+ 'format' => '#,##0',
63
+ 'expression' => "SELECT SUM([#{USED_METRIC.uri}])"
64
+ },
65
+ 'meta' => {
66
+ 'author' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248',
67
+ 'uri' => '/gdc/md/ksjy0nr3goz6k8yrpklz97l0mych7nez/obj/252',
68
+ 'tags' => 'a b cg r t',
69
+ 'created' => '2014-04-30 22:47:57',
70
+ 'identifier' => 'afo7bx1VakCz',
71
+ 'deprecated' => '0',
72
+ 'summary' => '',
73
+ 'locked' => 0,
74
+ 'title' => 'sum of Lines changed',
75
+ 'category' => 'metric',
76
+ 'updated' => '2014-05-05 20:00:42',
77
+ 'contributor' => '/gdc/account/profile/4e1e8cacc4989228e0ae531b30853248'
78
+ }
79
+ }
80
+ }
69
81
 
70
82
  before(:each) do
71
83
  @instance = GoodData::Metric.new(RAW_DATA)
@@ -1,71 +1,66 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
7
- require 'pry'
8
7
  require 'gooddata/models/model'
9
8
 
10
9
  describe GoodData::Model do
11
-
12
10
  before(:each) do
13
11
  @base_blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/test_project_model_spec.json")
14
12
  @additional_blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/model_module.json")
15
13
 
16
14
  @blueprint_with_duplicate = GoodData::Model::ProjectBlueprint.new(
17
- {
18
- title: "x",
19
- datasets: [{
20
- id: "dataset.commits",
21
- type: :dataset,
22
- columns: [
23
- {
24
- type: "fact",
25
- id: "fact.lines_changed",
26
- gd_data_type: 'INT',
27
- description: "Fact description"
28
- }
29
- ]
30
- }]
31
- })
15
+ title: "x",
16
+ datasets: [{
17
+ id: "dataset.commits",
18
+ type: :dataset,
19
+ columns: [
20
+ {
21
+ type: "fact",
22
+ id: "fact.lines_changed",
23
+ gd_data_type: 'INT',
24
+ description: "Fact description"
25
+ }
26
+ ]
27
+ }]
28
+ )
32
29
 
33
30
  @conflicting_blueprint = GoodData::Model::ProjectBlueprint.new(
34
- {
35
- title: 'x',
36
- datasets: [{
37
- type: :dataset,
38
- id: 'dataset.commits',
39
- columns: [
40
- {
41
- type: 'fact',
42
- id: 'fact.commits.lines_changed'
43
- }
44
- ]
45
- }]
46
- })
31
+ title: 'x',
32
+ datasets: [{
33
+ type: :dataset,
34
+ id: 'dataset.commits',
35
+ columns: [
36
+ {
37
+ type: 'fact',
38
+ id: 'fact.commits.lines_changed'
39
+ }
40
+ ]
41
+ }]
42
+ )
47
43
  end
48
44
 
49
45
  it "should be possible to merge Schema blueprints" do
50
-
51
46
  first_dataset = @base_blueprint.find_dataset("dataset.devs").to_hash
52
47
  additional_blueprint = @additional_blueprint.find_dataset("dataset.devs").to_hash
53
48
  stuff = GoodData::Model.merge_dataset_columns(first_dataset, additional_blueprint)
54
49
  expect(GoodData::Model::ProjectBlueprint.new(stuff)).to be_valid
55
50
 
56
- expect(stuff[:columns].include?({:type => :attribute, :id => "attr.region"})).to be_truthy
57
- expect(stuff[:columns].include?({:type => :anchor, :id => "attr.devs.dev_id", title: 'Dev', :folder=>"Anchor folder" })).to be_truthy
51
+ expect(stuff[:columns].include?(:type => :attribute, :id => "attr.region")).to be_truthy
52
+ expect(stuff[:columns].include?(:type => :anchor, :id => "attr.devs.dev_id", title: 'Dev', :folder => "Anchor folder")).to be_truthy
58
53
  end
59
54
 
60
55
  it "should pass when merging 2 columns with the same name if both columns are identical" do
61
56
  first_dataset = @base_blueprint.find_dataset("dataset.commits").to_hash
62
57
  additional_blueprint = @blueprint_with_duplicate.find_dataset("dataset.commits").to_hash
63
58
  stuff = GoodData::Model.merge_dataset_columns(first_dataset, additional_blueprint)
64
-
59
+
65
60
  expect(GoodData::Model::ProjectBlueprint.new(stuff)).to be_valid
66
61
 
67
62
  expect(stuff[:columns].count).to eq 6
68
- expect(stuff[:columns].include?({ type: :fact, id: "fact.lines_changed", gd_data_type: 'INT', description: "Fact description"})).to be_truthy
63
+ expect(stuff[:columns].include?(type: :fact, id: "fact.lines_changed", gd_data_type: 'INT', description: "Fact description")).to be_truthy
69
64
  expect(stuff[:columns].group_by { |col| col[:id] }["fact.lines_changed"].count).to eq 1
70
65
  end
71
66
 
@@ -77,6 +72,6 @@ describe GoodData::Model do
77
72
 
78
73
  it "should be possible to merge directly whole bleuprints. Blueprint is changed in place when merge! is used" do
79
74
  @base_blueprint.merge!(@additional_blueprint)
80
- @base_blueprint.find_dataset("dataset.repos").attributes.include?({ type: "attribute", id: "some_attr_id", :title=>"Repository Name" })
75
+ @base_blueprint.find_dataset("dataset.repos").attributes.include?(type: "attribute", id: "some_attr_id", :title => "Repository Name")
81
76
  end
82
77
  end
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
@@ -1,10 +1,9 @@
1
1
  # encoding: UTF-8
2
2
  #
3
- # Copyright (c) 2010-2015 GoodData Corporation. All rights reserved.
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
4
  # This source code is licensed under the BSD-style license found in the
5
5
  # LICENSE file in the root directory of this source tree.
6
6
 
7
-
8
7
  require 'gooddata/models/profile'
9
8
  require 'gooddata/models/domain'
10
9
  require 'gooddata/models/project'
@@ -13,51 +12,47 @@ describe GoodData::Profile do
13
12
  before(:each) do
14
13
  @client = ConnectionHelper.create_default_connection
15
14
  @domain = @client.domain(ConnectionHelper::DEFAULT_DOMAIN)
16
-
15
+
17
16
  @user1 = @domain.get_user(ConnectionHelper::DEFAULT_USERNAME)
18
17
  @user2 = @domain.get_user(ConnectionHelper::DEFAULT_USERNAME)
19
18
 
20
19
  @users = [
21
- @client.create(GoodData::Profile,
22
- {
23
- 'accountSetting' => {
24
- 'email' => 'petr.cvengros@gooddata.com',
25
- 'firstName' => 'Petr',
26
- 'lastName' => 'Cvengros'
27
- }
20
+ @client.create(
21
+ GoodData::Profile,
22
+ 'accountSetting' => {
23
+ 'email' => 'petr.cvengros@gooddata.com',
24
+ 'firstName' => 'Petr',
25
+ 'lastName' => 'Cvengros'
28
26
  }
29
27
  ),
30
28
 
31
- @client.create(GoodData::Profile,
32
- {
33
- 'accountSetting' => {
34
- 'email' => 'tomas.korcak@gooddata.com',
35
- 'firstName' => 'Tomas',
36
- 'lastName' => 'Korcak'
37
- }
29
+ @client.create(
30
+ GoodData::Profile,
31
+ 'accountSetting' => {
32
+ 'email' => 'tomas.korcak@gooddata.com',
33
+ 'firstName' => 'Tomas',
34
+ 'lastName' => 'Korcak'
38
35
  }
39
36
  ),
40
37
 
41
- @client.create(GoodData::Profile,
42
- {
43
- 'accountSetting' => {
44
- 'email' => 'patrick.mcconlogue@gooddata.com',
45
- 'firstName' => 'Patrick',
46
- 'lastName' => 'McConlogue'
38
+ @client.create(
39
+ GoodData::Profile,
40
+ 'accountSetting' => {
41
+ 'email' => 'patrick.mcconlogue@gooddata.com',
42
+ 'firstName' => 'Patrick',
43
+ 'lastName' => 'McConlogue'
47
44
 
48
- }
49
45
  }
50
46
  ),
51
47
 
52
- @client.create(GoodData::Profile,
53
- {
54
- 'accountSetting' => {
55
- 'email' => 'tomas.svarovsky@gooddata.com',
56
- 'firstName' => 'Tomas',
57
- 'lastName' => 'Svarovsky'
58
- }
48
+ @client.create(
49
+ GoodData::Profile,
50
+ 'accountSetting' => {
51
+ 'email' => 'tomas.svarovsky@gooddata.com',
52
+ 'firstName' => 'Tomas',
53
+ 'lastName' => 'Svarovsky'
59
54
  }
60
- ),
55
+ )
61
56
  ]
62
57
  end
63
58
 
@@ -132,11 +127,11 @@ describe GoodData::Profile do
132
127
  expect(res).to be_instance_of(Hash)
133
128
  res.length.should eql(0)
134
129
  end
135
-
130
+
136
131
  it 'Returns non empty hash for different objects' do
137
132
  # Do some little modification
138
133
  @user2.first_name = 'kokos'
139
-
134
+
140
135
  res = @user1.diff(@user2)
141
136
  expect(res).to be_instance_of(Hash)
142
137
  res.length.should_not eql(0)
@@ -148,53 +143,53 @@ describe GoodData::Profile do
148
143
  l1 = [
149
144
  @users[0]
150
145
  ]
151
-
146
+
152
147
  l2 = [
153
148
  @users[0]
154
149
  ]
155
-
150
+
156
151
  diff = GoodData::Profile.diff_list(l1, l2)
157
152
  diff[:added].length.should eql(0)
158
153
  diff[:changed].length.should eql(0)
159
154
  diff[:removed].length.should eql(0)
160
155
  end
161
-
156
+
162
157
  it 'Recognizes added element' do
163
158
  l1 = []
164
-
159
+
165
160
  l2 = [
166
161
  @users[0]
167
162
  ]
168
-
163
+
169
164
  diff = GoodData::Profile.diff_list(l1, l2)
170
165
  diff[:added].length.should eql(1)
171
166
  diff[:changed].length.should eql(0)
172
167
  diff[:removed].length.should eql(0)
173
168
  end
174
-
169
+
175
170
  it 'Recognizes changed element' do
176
171
  l1 = [
177
172
  @users[0]
178
173
  ]
179
-
174
+
180
175
  l2 = [
181
176
  GoodData::Profile.new(GoodData::Helpers.deep_dup(@users[0].json))
182
177
  ]
183
178
  l2[0].first_name = 'Peter'
184
-
179
+
185
180
  diff = GoodData::Profile.diff_list(l1, l2)
186
181
  diff[:added].length.should eql(0)
187
182
  diff[:changed].length.should eql(1)
188
183
  diff[:removed].length.should eql(0)
189
184
  end
190
-
185
+
191
186
  it 'Recognizes removed element' do
192
187
  l1 = [
193
188
  @users[0]
194
189
  ]
195
-
190
+
196
191
  l2 = []
197
-
192
+
198
193
  diff = GoodData::Profile.diff_list(l1, l2)
199
194
  diff[:added].length.should eql(0)
200
195
  diff[:changed].length.should eql(0)