gooddata 0.6.49 → 0.6.50

Sign up to get free protection for your applications and to get access to all the features.
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
 
@@ -17,14 +17,18 @@ describe GoodData::Helpers do
17
17
  describe '#running_on_windows?' do
18
18
  it 'works' do
19
19
  result = GoodData::Helpers.running_on_windows?
20
+ # rubocop:disable Style/DoubleNegation
20
21
  !!result.should == result
22
+ # rubocop:enable Style/DoubleNegation
21
23
  end
22
24
  end
23
25
 
24
26
  describe '#running_on_mac?' do
25
27
  it 'works' do
26
28
  result = GoodData::Helpers.running_on_a_mac?
29
+ # rubocop:disable Style/DoubleNegation
27
30
  !!result.should == result
31
+ # rubocop:enable Style/DoubleNegation
28
32
  end
29
33
  end
30
34
 
@@ -45,7 +49,7 @@ describe GoodData::Helpers do
45
49
  params = {
46
50
  'param' => 'value',
47
51
  'number_param' => 5,
48
- 'gd_encoded_params' => '{"deep": {"deeper": "deep value"}}',
52
+ 'gd_encoded_params' => '{"deep": {"deeper": "deep value"}}'
49
53
  }
50
54
  expected_result = {
51
55
  'param' => 'value',
@@ -74,6 +78,139 @@ describe GoodData::Helpers do
74
78
  result = GoodData::Helpers.decode_params(params)
75
79
  expect(result).to eq(expected_result)
76
80
  end
81
+
82
+ it 'decodes the reference parameters in gd_encoded_params in String form' do
83
+ params = {
84
+ 'param' => 'value',
85
+ 'number_param' => 5,
86
+ 'ads_password' => 'ads_123',
87
+ 'my_password' => 'login_123',
88
+ 'gd_encoded_params' => '{"login_username": "login_user", "login_password": "${my_password}", "data01": "\\\\${my_password}", "data02":"abc\\\\def"}'
89
+ }
90
+ expected_result = {
91
+ 'param' => 'value',
92
+ 'number_param' => 5,
93
+ 'ads_password' => 'ads_123',
94
+ 'my_password' => 'login_123',
95
+ 'login_username' => 'login_user',
96
+ 'login_password' => 'login_123',
97
+ 'data01' => '\\login_123',
98
+ 'data02' => 'abc\\def'
99
+ }
100
+ result = GoodData::Helpers.decode_params(params, :resolve_reference_params => true)
101
+ expect(result).to eq(expected_result)
102
+ end
103
+
104
+ it 'decodes the reference parameters in gd_encoded_params in Hash form' do
105
+ params = {
106
+ 'param' => 'value',
107
+ 'number_param' => 5,
108
+ 'ads_password' => 'ads_123',
109
+ 'my_password' => 'login_123',
110
+ 'gd_encoded_params' => { "login_username" => "login_user", "login_password" => "${my_password}", "data01" => "\\\\${my_password}", "data02" => "abc\\def" }
111
+ }
112
+ expected_result = {
113
+ 'param' => 'value',
114
+ 'number_param' => 5,
115
+ 'ads_password' => 'ads_123',
116
+ 'my_password' => 'login_123',
117
+ 'login_username' => 'login_user',
118
+ 'login_password' => 'login_123',
119
+ 'data01' => '\\login_123',
120
+ 'data02' => 'abc\\def'
121
+ }
122
+ result = GoodData::Helpers.decode_params(params, :resolve_reference_params => true)
123
+ expect(result).to eq(expected_result)
124
+ end
125
+
126
+ it 'decodes escape the reference parameters in gd_encoded_params in String form' do
127
+ params = {
128
+ 'param' => 'value',
129
+ 'number_param' => 5,
130
+ 'ads_password' => 'ads_123',
131
+ 'my_password' => 'login_123',
132
+ 'gd_encoded_params' => '{"login_username": "login_user", "data01": "\\${abc}"}'
133
+ }
134
+ expected_result = {
135
+ 'param' => 'value',
136
+ 'number_param' => 5,
137
+ 'ads_password' => 'ads_123',
138
+ 'my_password' => 'login_123',
139
+ 'login_username' => 'login_user',
140
+ 'data01' => '${abc}'
141
+ }
142
+ result = GoodData::Helpers.decode_params(params, :resolve_reference_params => true)
143
+ expect(result).to eq(expected_result)
144
+ end
145
+
146
+ it 'decodes escape the reference parameters in gd_encoded_params in Hash form' do
147
+ params = {
148
+ 'param' => 'value',
149
+ 'number_param' => 5,
150
+ 'ads_password' => 'ads_123',
151
+ 'my_password' => 'login_123',
152
+ 'gd_encoded_params' => { "login_username" => "login_user", "data01" => "\\${abc}" }
153
+ }
154
+ expected_result = {
155
+ 'param' => 'value',
156
+ 'number_param' => 5,
157
+ 'ads_password' => 'ads_123',
158
+ 'my_password' => 'login_123',
159
+ 'login_username' => 'login_user',
160
+ 'data01' => '${abc}'
161
+ }
162
+ result = GoodData::Helpers.decode_params(params, :resolve_reference_params => true)
163
+ expect(result).to eq(expected_result)
164
+ end
165
+
166
+ it 'decodes the reference parameters in nested block in gd_encoded_params in String form' do
167
+ params = {
168
+ 'param' => 'value',
169
+ 'number_param' => 5,
170
+ 'ads_password' => 'ads_123',
171
+ 'my_password' => 'login_123',
172
+ 'gd_encoded_params' => '{"login_username": "login_user", "login_password": "${my_password}", "ads_client": {"username": "ads_user", "password": "${ads_password}"}}'
173
+ }
174
+ expected_result = {
175
+ 'param' => 'value',
176
+ 'number_param' => 5,
177
+ 'ads_password' => 'ads_123',
178
+ 'my_password' => 'login_123',
179
+ 'login_username' => 'login_user',
180
+ 'login_password' => 'login_123',
181
+ 'ads_client' => {
182
+ 'username' => 'ads_user',
183
+ 'password' => 'ads_123'
184
+ }
185
+ }
186
+ result = GoodData::Helpers.decode_params(params, :resolve_reference_params => true)
187
+ expect(result).to eq(expected_result)
188
+ end
189
+
190
+ it 'decodes the reference parameters in nested block in gd_encoded_params in Hash form' do
191
+ params = {
192
+ 'param' => 'value',
193
+ 'number_param' => 5,
194
+ 'ads_password' => 'ads_123',
195
+ 'my_password' => 'login_123',
196
+ 'gd_encoded_params' => { "login_username" => "login_user", "login_password" => "${my_password}", "ads_client" => { "username" => "ads_user", "password" => "${ads_password}" } }
197
+ }
198
+ expected_result = {
199
+ 'param' => 'value',
200
+ 'number_param' => 5,
201
+ 'ads_password' => 'ads_123',
202
+ 'my_password' => 'login_123',
203
+ 'login_username' => 'login_user',
204
+ 'login_password' => 'login_123',
205
+ 'ads_client' => {
206
+ 'username' => 'ads_user',
207
+ 'password' => 'ads_123'
208
+ }
209
+ }
210
+ result = GoodData::Helpers.decode_params(params, :resolve_reference_params => true)
211
+ expect(result).to eq(expected_result)
212
+ end
213
+
77
214
  it 'throws an error when data params is not a valid json' do
78
215
  params = {
79
216
  'param' => 'value',
@@ -0,0 +1,20 @@
1
+ # encoding: UTF-8
2
+ #
3
+ # Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
4
+ # This source code is licensed under the BSD-style license found in the
5
+ # LICENSE file in the root directory of this source tree.
6
+
7
+ require 'gooddata'
8
+
9
+ describe GoodData::Model::AttributeBlueprintField do
10
+ before(:each) do
11
+ @model_view = MultiJson.load(File.read('./spec/data/wire_models/attribute_sort_by_model.json'))
12
+ @blueprint = GoodData::Model::FromWire.from_wire(@model_view)
13
+ @dataset = @blueprint.datasets('dataset.id')
14
+ @attribute = @dataset.attributes('attr.id.name')
15
+ end
16
+
17
+ it 'should return label id and direction of sorted attribute' do
18
+ expect(@attribute.order_by).to eq 'label.id.name.name_label_2 - DESC'
19
+ end
20
+ end
@@ -1,13 +1,12 @@
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
  describe GoodData::Model::AttributeBlueprintField do
10
-
11
10
  before(:each) do
12
11
  @model_view = MultiJson.load(File.read('./spec/data/wire_models/model_view.json'))
13
12
  @blueprint = GoodData::Model::FromWire.from_wire(@model_view)
@@ -1,13 +1,12 @@
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
  describe GoodData::Model::DatasetBlueprint do
10
-
11
10
  before(:each) do
12
11
  @model_view = MultiJson.load(File.read('./spec/data/wire_models/model_view.json'))
13
12
  @blueprint = GoodData::Model::FromWire.from_wire(@model_view)
@@ -80,7 +79,7 @@ describe GoodData::Model::DatasetBlueprint do
80
79
  describe '#references' do
81
80
  it 'should return references on dataset' do
82
81
  expect(@dataset.references.count).to eq 2
83
- expect(@dataset.references.map {|r| r.data[:dataset]}).to eq [
82
+ expect(@dataset.references.map { |r| r.data[:dataset] }).to eq [
84
83
  'dataset.opp_records',
85
84
  'dataset.consolidatedmarketingstatus'
86
85
  ]
@@ -1,13 +1,12 @@
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
  describe GoodData::Model::LabelBlueprintField do
10
-
11
10
  before(:each) do
12
11
  @model_view = MultiJson.load(File.read('./spec/data/wire_models/model_view.json'))
13
12
  @blueprint = GoodData::Model::FromWire.from_wire(@model_view)
@@ -1,13 +1,12 @@
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
  describe GoodData::Model::ProjectBlueprint do
10
-
11
10
  before(:each) do
12
11
  @blueprint = GoodData::Model::ProjectBlueprint.from_json('./spec/data/blueprints/test_project_model_spec.json')
13
12
  @invalid_blueprint = GoodData::Model::ProjectBlueprint.from_json('./spec/data/blueprints/invalid_blueprint.json')
@@ -38,7 +37,7 @@ describe GoodData::Model::ProjectBlueprint do
38
37
  end
39
38
  expect(bp.valid?).to be_falsey
40
39
  errors = bp.validate
41
- expect(errors.map {|x| x[:type]}.to_set).to eq [:attribute_without_label, :more_than_on_anchor].to_set
40
+ expect(errors.map { |x| x[:type] }.to_set).to eq [:attribute_without_label, :more_than_on_anchor].to_set
42
41
  expect(errors.count).to eq 2
43
42
  end
44
43
 
@@ -80,7 +79,7 @@ describe GoodData::Model::ProjectBlueprint do
80
79
  d.add_fact('more_numbers')
81
80
  end
82
81
  end
83
- bp.valid?.should == true
82
+ bp.valid?.should be_truthy
84
83
  errors = bp.validate
85
84
  expect(errors.count).to eq 0
86
85
  facts = bp.to_wire[:diffRequest][:targetModel][:projectModel][:datasets].first[:dataset][:facts]
@@ -92,7 +91,7 @@ describe GoodData::Model::ProjectBlueprint do
92
91
  expect(@invalid_blueprint.valid?).to eq false
93
92
  end
94
93
  end
95
-
94
+
96
95
  describe '#validate' do
97
96
  it 'valid blueprint should give you empty array of errors' do
98
97
  expect(@blueprint.validate).to be_empty
@@ -101,11 +100,13 @@ describe GoodData::Model::ProjectBlueprint do
101
100
  it 'invalid blueprint should give you list of violating references' do
102
101
  errors = @invalid_blueprint.validate
103
102
  expect(errors.size).to eq 1
104
- expect(errors).to eq([{
105
- :type=>:wrong_label_reference,
106
- :label=>"some_label_id",
107
- :wrong_reference=>"attr.repos.repo_id ERROR"
108
- }])
103
+ expect(errors).to eq([
104
+ {
105
+ :type => :wrong_label_reference,
106
+ :label => "some_label_id",
107
+ :wrong_reference => "attr.repos.repo_id ERROR"
108
+ }
109
+ ])
109
110
  end
110
111
 
111
112
  it 'invalid label is caught correctly' do
@@ -124,18 +125,18 @@ describe GoodData::Model::ProjectBlueprint do
124
125
  expect(errors.count).to eq 3
125
126
  expect(errors).to eq [
126
127
  {
127
- :type=>:wrong_label_reference,
128
- :label=>"label.attribute1.name",
129
- :wrong_reference=>"attr.attribute23123"
128
+ :type => :wrong_label_reference,
129
+ :label => "label.attribute1.name",
130
+ :wrong_reference => "attr.attribute23123"
130
131
  },
131
132
  {
132
- :type=>:wrong_label_reference,
133
- :label=>"label.attribute1.ssn",
134
- :wrong_reference=>"attr.attribute23123"
133
+ :type => :wrong_label_reference,
134
+ :label => "label.attribute1.ssn",
135
+ :wrong_reference => "attr.attribute23123"
135
136
  },
136
137
  {
137
- :type=>:attribute_without_label,
138
- :attribute=>"attr.attribute1"
138
+ :type => :attribute_without_label,
139
+ :attribute => "attr.attribute1"
139
140
  }
140
141
  ]
141
142
  end
@@ -274,7 +275,7 @@ describe GoodData::Model::ProjectBlueprint do
274
275
  expect(@blueprint.facts.count).to eq 1
275
276
  end
276
277
  end
277
-
278
+
278
279
  describe '#labels' do
279
280
  it 'Anchor on repos should have a label' do
280
281
  expect(@repos.anchor.labels.size).to eq 1
@@ -286,7 +287,7 @@ describe GoodData::Model::ProjectBlueprint do
286
287
 
287
288
  it "should return labels form all datasets" do
288
289
  expect(@blueprint.labels.count).to eq 4
289
- end
290
+ end
290
291
  end
291
292
 
292
293
  describe '#attributes_and_anchors' do
@@ -297,7 +298,7 @@ describe GoodData::Model::ProjectBlueprint do
297
298
 
298
299
  describe '#merge' do
299
300
  it "should be able to merge models without mutating the original" do
300
- additional_blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/additional_dataset_module.json")
301
+ additional_blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/additional_dataset_module.json")
301
302
  expect(@blueprint.datasets.count).to eq 3
302
303
  new_bp = @blueprint.merge(additional_blueprint)
303
304
  expect(@blueprint.datasets.count).to eq 3
@@ -373,15 +374,15 @@ describe GoodData::Model::ProjectBlueprint do
373
374
  d.add_date('created_on')
374
375
  end
375
376
  end
376
- expect {
377
- c = a.merge(b)
378
- }.to raise_exception 'Unable to merge date dimensions created_on with defintion {:type=>:date_dimension, :urn=>nil, :id=>"created_on", :title=>"title B"} with {:type=>:date_dimension, :urn=>nil, :id=>"created_on", :title=>"title A"}'
377
+ expect do
378
+ a.merge(b)
379
+ end.to raise_exception 'Unable to merge date dimensions created_on with defintion {:type=>:date_dimension, :urn=>nil, :id=>"created_on", :title=>"title B"} with {:type=>:date_dimension, :urn=>nil, :id=>"created_on", :title=>"title A"}'
379
380
  end
380
381
  end
381
382
 
382
383
  describe '#merge!' do
383
384
  it "should be able to merge models" do
384
- additional_blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/additional_dataset_module.json")
385
+ additional_blueprint = GoodData::Model::ProjectBlueprint.from_json("./spec/data/blueprints/additional_dataset_module.json")
385
386
  expect(@blueprint.datasets.count).to eq 3
386
387
  @blueprint.merge!(additional_blueprint)
387
388
  expect(@blueprint.datasets.count).to eq 4
@@ -399,8 +400,6 @@ describe GoodData::Model::ProjectBlueprint do
399
400
  expect(@blueprint.datasets.count).to eq 4
400
401
  end
401
402
 
402
-
403
-
404
403
  it "should be able to serialize itself to a hash" do
405
404
  ser = @blueprint.to_hash
406
405
  ser.is_a?(Hash)
@@ -440,7 +439,7 @@ describe GoodData::Model::ProjectBlueprint do
440
439
  d.add_date('opportunity_comitted', dataset: 'committed_on')
441
440
  end
442
441
  end
443
- expect(bp.datasets.flat_map { |d| d.find_columns_by_type(:date) }.map { |a| a.format }).to eq [GoodData::Model::DEFAULT_DATE_FORMAT]
442
+ expect(bp.datasets.flat_map { |d| d.find_columns_by_type(:date) }.map(&:format)).to eq [GoodData::Model::DEFAULT_DATE_FORMAT]
444
443
  end
445
444
 
446
445
  it 'blueprint can be set with explicit date' do
@@ -458,7 +457,7 @@ describe GoodData::Model::ProjectBlueprint do
458
457
  end
459
458
  end
460
459
  expect(bp.valid?).to be_truthy
461
- expect(bp.datasets.flat_map { |d| d.find_columns_by_type(:date) }.map { |a| a.format }).to eq ['yyyy/MM/dd']
460
+ expect(bp.datasets.flat_map { |d| d.find_columns_by_type(:date) }.map(&:format)).to eq ['yyyy/MM/dd']
462
461
  end
463
462
 
464
463
  describe '#remove' do
@@ -501,21 +500,21 @@ describe GoodData::Model::ProjectBlueprint do
501
500
  end
502
501
 
503
502
  it 'crashes gracefully when nonexistent field is being moved' do
504
- expect {
503
+ expect do
505
504
  @blueprint.move!('nonexistent_field', 'dataset.commits', 'dataset.repos')
506
- }.to raise_exception 'Column nonexistent_field cannot be found in dataset dataset.commits'
505
+ end.to raise_exception 'Column nonexistent_field cannot be found in dataset dataset.commits'
507
506
  end
508
507
 
509
508
  it 'crashes gracefully when datasets does not exist' do
510
- expect {
509
+ expect do
511
510
  @blueprint.move!('nonexistent_field', 'dataset.A', 'dataset.repos')
512
- }.to raise_exception 'Dataset "dataset.A" could not be found'
511
+ end.to raise_exception 'Dataset "dataset.A" could not be found'
513
512
  end
514
513
 
515
514
  it 'crashes gracefully when datasets does not exist' do
516
- expect {
515
+ expect do
517
516
  @blueprint.move!('nonexistent_field', 'dataset.commits', 'dataset.B')
518
- }.to raise_exception 'Dataset "dataset.B" could not be found'
517
+ end.to raise_exception 'Dataset "dataset.B" could not be found'
519
518
  end
520
519
  end
521
520
 
@@ -1,13 +1,12 @@
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
  describe GoodData::Model::ReferenceBlueprintField do
10
-
11
10
  before(:each) do
12
11
  @model_view = MultiJson.load(File.read('./spec/data/wire_models/model_view.json'))
13
12
  @blueprint = GoodData::Model::FromWire.from_wire(@model_view)