gooddata 1.1.0-java → 1.2.0-java

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 (285) hide show
  1. checksums.yaml +4 -4
  2. data/.document +0 -0
  3. data/.flayignore +2 -0
  4. data/.travis.yml +24 -7
  5. data/.yardopts +0 -0
  6. data/CHANGELOG.md +144 -0
  7. data/CLI.md +0 -0
  8. data/Dockerfile.jruby +7 -2
  9. data/Dockerfile.ruby +1 -1
  10. data/Gemfile +0 -0
  11. data/Guardfile +0 -0
  12. data/Rakefile +23 -9
  13. data/TODO.md +0 -0
  14. data/bin/gitflow-init.sh +8 -0
  15. data/ci.rake +3 -3
  16. data/data/2008.crt +39 -0
  17. data/data/new_ca.cer +22 -0
  18. data/dependency_decisions.yml +0 -0
  19. data/docker-compose.lcm.yml +31 -0
  20. data/docker-compose.yml +4 -2
  21. data/gooddata.gemspec +3 -3
  22. data/lcm.rake +288 -0
  23. data/lib/gooddata.rb +1 -0
  24. data/lib/gooddata/bricks/base_downloader.rb +1 -1
  25. data/lib/gooddata/bricks/brick.rb +0 -1
  26. data/lib/gooddata/bricks/middleware/aws_middleware.rb +1 -1
  27. data/lib/gooddata/bricks/middleware/logger_middleware.rb +1 -1
  28. data/lib/gooddata/bricks/pipeline.rb +67 -0
  29. data/lib/gooddata/bricks/provisioning_brick.rb +18 -0
  30. data/lib/gooddata/bricks/release_brick.rb +18 -0
  31. data/lib/gooddata/bricks/rollout_brick.rb +14 -0
  32. data/lib/gooddata/bricks/user_filters_brick.rb +13 -0
  33. data/lib/gooddata/bricks/users_brick.rb +13 -0
  34. data/lib/gooddata/core/logging.rb +1 -1
  35. data/lib/gooddata/exceptions/maql_execution.rb +1 -1
  36. data/lib/gooddata/extensions/string.rb +0 -0
  37. data/lib/gooddata/lcm/actions/associate_clients.rb +34 -8
  38. data/lib/gooddata/lcm/actions/collect_data_product.rb +8 -1
  39. data/lib/gooddata/lcm/actions/collect_segment_clients.rb +13 -23
  40. data/lib/gooddata/lcm/actions/collect_segments.rb +10 -0
  41. data/lib/gooddata/lcm/actions/synchronize_clients.rb +3 -1
  42. data/lib/gooddata/lcm/actions/synchronize_ldm.rb +61 -34
  43. data/lib/gooddata/lcm/actions/synchronize_user_filters.rb +6 -4
  44. data/lib/gooddata/lcm/actions/update_release_table.rb +4 -12
  45. data/lib/gooddata/lcm/dsl/params_dsl.rb +0 -4
  46. data/lib/gooddata/lcm/dsl/type_dsl.rb +0 -4
  47. data/lib/gooddata/lcm/helpers/check_helper.rb +1 -1
  48. data/lib/gooddata/lcm/lcm2.rb +0 -2
  49. data/lib/gooddata/lcm/types/special/enum.rb +6 -0
  50. data/lib/gooddata/lcm/types/special/enum/synchronize_ldm.rb +20 -0
  51. data/lib/gooddata/lcm/types/special/types.rb +1 -1
  52. data/lib/gooddata/mixins/is_folder.rb +0 -0
  53. data/lib/gooddata/mixins/to_json.rb +0 -0
  54. data/lib/gooddata/mixins/uri_getter.rb +0 -0
  55. data/lib/gooddata/models/project_creator.rb +38 -30
  56. data/lib/gooddata/models/user_filters/user_filter_builder.rb +1 -0
  57. data/lib/gooddata/rest/README.md +0 -0
  58. data/lib/gooddata/version.rb +1 -1
  59. data/lib/templates/bricks/brick.rb.erb +0 -0
  60. data/lib/templates/bricks/main.rb.erb +0 -0
  61. data/lib/templates/project/Goodfile.erb +0 -0
  62. data/lib/templates/project/data/commits.csv +0 -0
  63. data/lib/templates/project/data/devs.csv +0 -0
  64. data/lib/templates/project/data/repos.csv +0 -0
  65. data/lib/templates/project/model/model.rb.erb +0 -0
  66. metadata +23 -452
  67. data/lib/gooddata/lcm/actions/ensure_data_product.rb +0 -63
  68. data/spec/.rubocop.yml +0 -16
  69. data/spec/bricks/bricks_spec.rb +0 -110
  70. data/spec/bricks/default-config.json +0 -8
  71. data/spec/data/.gooddata +0 -4
  72. data/spec/data/blueprints/additional_dataset_module.json +0 -32
  73. data/spec/data/blueprints/attribute_sort_order_blueprint.json +0 -72
  74. data/spec/data/blueprints/big_blueprint_not_pruned.json +0 -2079
  75. data/spec/data/blueprints/invalid_blueprint.json +0 -103
  76. data/spec/data/blueprints/m_n_model.json +0 -104
  77. data/spec/data/blueprints/model_module.json +0 -25
  78. data/spec/data/blueprints/test_blueprint.json +0 -39
  79. data/spec/data/blueprints/test_project_model_spec.json +0 -106
  80. data/spec/data/cc/data/source/commits.csv +0 -4
  81. data/spec/data/cc/data/source/devs.csv +0 -4
  82. data/spec/data/cc/data/source/repos.csv +0 -3
  83. data/spec/data/cc/devel.prm +0 -0
  84. data/spec/data/cc/graph/graph.grf +0 -11
  85. data/spec/data/cc/workspace.prm +0 -19
  86. data/spec/data/column_based_permissions.csv +0 -7
  87. data/spec/data/column_based_permissions2.csv +0 -6
  88. data/spec/data/dynamic_schedule_params_table.csv +0 -7
  89. data/spec/data/gd_gse_data_blueprint.json +0 -1371
  90. data/spec/data/gd_gse_data_manifest.json +0 -1424
  91. data/spec/data/gd_gse_data_model.json +0 -1772
  92. data/spec/data/gooddata_version_process/gooddata_version.rb +0 -9
  93. data/spec/data/gooddata_version_process/gooddata_version.zip +0 -0
  94. data/spec/data/hello_world_process/hello_world.rb +0 -9
  95. data/spec/data/hello_world_process/hello_world.zip +0 -0
  96. data/spec/data/integration_model.json +0 -252
  97. data/spec/data/integration_policies.csv +0 -9134
  98. data/spec/data/line_based_permissions.csv +0 -3
  99. data/spec/data/manifests/test_blueprint.json +0 -32
  100. data/spec/data/manifests/test_project.json +0 -107
  101. data/spec/data/reports/left_attr_report.json +0 -108
  102. data/spec/data/reports/metric_only_one_line.json +0 -83
  103. data/spec/data/reports/report_1.json +0 -197
  104. data/spec/data/reports/top_attr_report.json +0 -108
  105. data/spec/data/ruby_params_process/ruby_params.rb +0 -9
  106. data/spec/data/ruby_process/deep_files/deep_stuff.txt +0 -1
  107. data/spec/data/ruby_process/process.rb +0 -8
  108. data/spec/data/ruby_process/stuff.txt +0 -1
  109. data/spec/data/superfluous_titles_view.json +0 -81
  110. data/spec/data/test-ci-data.csv +0 -2
  111. data/spec/data/user_filters.csv +0 -2
  112. data/spec/data/users.csv +0 -12
  113. data/spec/data/wire_models/attribute_sort_by_model.json +0 -73
  114. data/spec/data/wire_models/model_view.json +0 -1775
  115. data/spec/data/wire_models/nu_model.json +0 -3046
  116. data/spec/data/wire_models/test_blueprint.json +0 -66
  117. data/spec/data/wire_test_project.json +0 -150
  118. data/spec/data/workspace_table.csv +0 -3
  119. data/spec/environment/default.rb +0 -43
  120. data/spec/environment/development.rb +0 -32
  121. data/spec/environment/environment.rb +0 -38
  122. data/spec/environment/production.rb +0 -27
  123. data/spec/environment/staging.rb +0 -32
  124. data/spec/environment/testing.rb +0 -32
  125. data/spec/helpers/appstore_project_helper.rb +0 -221
  126. data/spec/helpers/blueprint_helper.rb +0 -27
  127. data/spec/helpers/cli_helper.rb +0 -38
  128. data/spec/helpers/connection_helper.rb +0 -43
  129. data/spec/helpers/constants.rb +0 -32
  130. data/spec/helpers/crypto_helper.rb +0 -19
  131. data/spec/helpers/csv_helper.rb +0 -20
  132. data/spec/helpers/process_helper.rb +0 -35
  133. data/spec/helpers/project_helper.rb +0 -74
  134. data/spec/helpers/schedule_helper.rb +0 -33
  135. data/spec/helpers/spec_helper.rb +0 -17
  136. data/spec/integration/ads_output_stage_spec.rb +0 -45
  137. data/spec/integration/blueprint_updates_spec.rb +0 -107
  138. data/spec/integration/blueprint_with_ca_spec.rb +0 -56
  139. data/spec/integration/blueprint_with_grain_spec.rb +0 -74
  140. data/spec/integration/channel_configuration_spec.rb +0 -67
  141. data/spec/integration/clients_spec.rb +0 -164
  142. data/spec/integration/command_datawarehouse_spec.rb +0 -45
  143. data/spec/integration/command_projects_spec.rb +0 -32
  144. data/spec/integration/commands/command_projects_spec.rb +0 -22
  145. data/spec/integration/connection_spec.rb +0 -37
  146. data/spec/integration/core/connection_spec.rb +0 -56
  147. data/spec/integration/core/logging_spec.rb +0 -132
  148. data/spec/integration/core/project_spec.rb +0 -54
  149. data/spec/integration/create_from_template_spec.rb +0 -29
  150. data/spec/integration/create_project_spec.rb +0 -27
  151. data/spec/integration/date_dim_switch_spec.rb +0 -154
  152. data/spec/integration/deprecated_load_spec.rb +0 -60
  153. data/spec/integration/full_process_schedule_spec.rb +0 -367
  154. data/spec/integration/full_project_spec.rb +0 -592
  155. data/spec/integration/helpers_spec.rb +0 -16
  156. data/spec/integration/lcm_spec.rb +0 -54
  157. data/spec/integration/mandatory_user_filter_spec.rb +0 -53
  158. data/spec/integration/mixins/id_to_uri_spec.rb +0 -56
  159. data/spec/integration/models/data_product_spec.rb +0 -71
  160. data/spec/integration/models/domain_spec.rb +0 -162
  161. data/spec/integration/models/invitation_spec.rb +0 -17
  162. data/spec/integration/models/label_spec.rb +0 -49
  163. data/spec/integration/models/membership_spec.rb +0 -127
  164. data/spec/integration/models/metadata/report_spec.rb +0 -54
  165. data/spec/integration/models/metric_spec.rb +0 -24
  166. data/spec/integration/models/params_spec.rb +0 -118
  167. data/spec/integration/models/process_spec.rb +0 -35
  168. data/spec/integration/models/profile_spec.rb +0 -210
  169. data/spec/integration/models/project_role_spec.rb +0 -94
  170. data/spec/integration/models/project_spec.rb +0 -225
  171. data/spec/integration/models/schedule_spec.rb +0 -477
  172. data/spec/integration/models/unit_project_spec.rb +0 -130
  173. data/spec/integration/over_to_user_filters_spec.rb +0 -98
  174. data/spec/integration/partial_md_export_import_spec.rb +0 -41
  175. data/spec/integration/project_spec.rb +0 -381
  176. data/spec/integration/rest_spec.rb +0 -214
  177. data/spec/integration/schedule_spec.rb +0 -611
  178. data/spec/integration/segments_spec.rb +0 -100
  179. data/spec/integration/subscription_spec.rb +0 -88
  180. data/spec/integration/urn_date_dim_spec.rb +0 -53
  181. data/spec/integration/user_filters_spec.rb +0 -310
  182. data/spec/integration/user_group_spec.rb +0 -147
  183. data/spec/integration/variables_spec.rb +0 -189
  184. data/spec/integration/vcr_cassettes/GoodData_-_logging/_logger/can_assign_a_custom_logger.yml +0 -2287
  185. data/spec/integration/vcr_cassettes/GoodData_-_logging/_logger/client_logs_when_given_custom_message.yml +0 -2287
  186. data/spec/integration/vcr_cassettes/GoodData_-_logging/_logger/has_the_request_id_logged_when_I_passed_it.yml +0 -2287
  187. data/spec/integration/vcr_cassettes/GoodData_-_logging/_logging_off/Disables_logging.yml +0 -2287
  188. data/spec/integration/vcr_cassettes/GoodData_-_logging/_logging_on/Enables_logging.yml +0 -2287
  189. data/spec/integration/vcr_cassettes/GoodData_-_project/_project/Returns_project_assigned.yml +0 -354
  190. data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_nil.yml +0 -299
  191. data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_project_directly.yml +0 -354
  192. data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_project_using_project_ID.yml +0 -354
  193. data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_project_using_project_URL.yml +0 -354
  194. data/spec/integration/vcr_cassettes/GoodData_-_project/_with_project/Uses_project_specified.yml +0 -354
  195. data/spec/integration/vcr_cassettes/GoodData_Metric/all.yml +0 -2065
  196. data/spec/integration/vcr_cassettes/GoodData_Metric/should_be_able_to_update_folders.yml +0 -119
  197. data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/all.yml +0 -9812
  198. data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/should_get_json_containing_correct_id.yml +0 -174
  199. data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/should_return_nil_for_unknown_id.yml +0 -58
  200. data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/should_throw_BadRequest_for_-1.yml +0 -63
  201. data/spec/integration/vcr_cassettes/GoodData_Rest_Connection/_connect/Connects_using_username_and_password.yml +0 -299
  202. data/spec/integration/vcr_cassettes/GoodData_Rest_Connection/_disconnect/Connects_using_username_and_password.yml +0 -299
  203. data/spec/integration/vcr_cassettes/GoodData_Rest_Connection/_generate_request_id/Generates_a_non-empty_string.yml +0 -2287
  204. data/spec/integration/vcr_cassettes/GoodData_UserGroup/_/Should_list_user_groups_as_Array.yml +0 -56
  205. data/spec/integration/vcr_cassettes/GoodData_UserGroup/_add_members/Should_add_member.yml +0 -315
  206. data/spec/integration/vcr_cassettes/GoodData_UserGroup/_members/Should_return_members_as_array.yml +0 -54
  207. data/spec/integration/vcr_cassettes/GoodData_UserGroup/_remove_members/Should_remove_existing_members.yml +0 -258
  208. data/spec/integration/vcr_cassettes/GoodData_UserGroup/_save/updates_existing_group.yml +0 -159
  209. data/spec/integration/vcr_cassettes/GoodData_UserGroup/_set_members/Should_set_new_members.yml +0 -158
  210. data/spec/integration/vcr_cassettes/GoodData_UserGroup/all.yml +0 -809
  211. data/spec/logging_in_logging_out_spec.rb +0 -91
  212. data/spec/spec_helper.rb +0 -110
  213. data/spec/unit/actions/associate_clients_spec.rb +0 -48
  214. data/spec/unit/actions/collect_client_projects_spec.rb +0 -47
  215. data/spec/unit/actions/collect_clients_spec.rb +0 -65
  216. data/spec/unit/actions/collect_data_product_spec.rb +0 -58
  217. data/spec/unit/actions/collect_dynamic_schedule_params_spec.rb +0 -56
  218. data/spec/unit/actions/collect_meta_spec.rb +0 -88
  219. data/spec/unit/actions/collect_segment_clients_spec.rb +0 -82
  220. data/spec/unit/actions/collect_tagged_objects_spec.rb +0 -126
  221. data/spec/unit/actions/collect_users_brick_users_spec.rb +0 -36
  222. data/spec/unit/actions/create_segment_masters_spec.rb +0 -65
  223. data/spec/unit/actions/ensure_data_product_spec.rb +0 -39
  224. data/spec/unit/actions/ensure_technical_users_domain_spec.rb +0 -53
  225. data/spec/unit/actions/ensure_technical_users_project_spec.rb +0 -76
  226. data/spec/unit/actions/execute_schedules_spec.rb +0 -94
  227. data/spec/unit/actions/provision_clients_spec.rb +0 -46
  228. data/spec/unit/actions/purge_clients_spec.rb +0 -47
  229. data/spec/unit/actions/rename_existing_client_projects_spec.rb +0 -54
  230. data/spec/unit/actions/segments_filter_spec.rb +0 -46
  231. data/spec/unit/actions/shared_examples_for_user_actions.rb +0 -43
  232. data/spec/unit/actions/synchronize_cas_spec.rb +0 -58
  233. data/spec/unit/actions/synchronize_clients_spec.rb +0 -71
  234. data/spec/unit/actions/synchronize_etls_in_segment_spec.rb +0 -206
  235. data/spec/unit/actions/synchronize_ldm_spec.rb +0 -70
  236. data/spec/unit/actions/synchronize_user_filters_spec.rb +0 -208
  237. data/spec/unit/actions/synchronize_user_groups_spec.rb +0 -49
  238. data/spec/unit/actions/synchronize_users_spec.rb +0 -180
  239. data/spec/unit/bricks/bricks_spec.rb +0 -34
  240. data/spec/unit/bricks/middleware/aws_middelware_spec.rb +0 -98
  241. data/spec/unit/bricks/middleware/bench_middleware_spec.rb +0 -15
  242. data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +0 -15
  243. data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +0 -15
  244. data/spec/unit/bricks/middleware/logger_middleware_spec.rb +0 -30
  245. data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +0 -15
  246. data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +0 -15
  247. data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +0 -15
  248. data/spec/unit/cli/cli_spec.rb +0 -17
  249. data/spec/unit/cli/commands/cmd_auth_spec.rb +0 -17
  250. data/spec/unit/core/nil_logger_spec.rb +0 -13
  251. data/spec/unit/extensions/hash_spec.rb +0 -22
  252. data/spec/unit/godzilla/goodzilla_spec.rb +0 -74
  253. data/spec/unit/helpers/check_helper_production_spec.rb +0 -34
  254. data/spec/unit/helpers/check_helper_spec.rb +0 -134
  255. data/spec/unit/helpers/csv_helper_spec.rb +0 -22
  256. data/spec/unit/helpers/data_helper_spec.rb +0 -67
  257. data/spec/unit/helpers/global_helpers_spec.rb +0 -264
  258. data/spec/unit/helpers_spec.rb +0 -254
  259. data/spec/unit/lcm/lcm2_spec.rb +0 -100
  260. data/spec/unit/lcm/user_bricks_helper_spec.rb +0 -58
  261. data/spec/unit/models/blueprint/attribute_sort_by_spec.rb +0 -20
  262. data/spec/unit/models/blueprint/attributes_spec.rb +0 -28
  263. data/spec/unit/models/blueprint/dataset_spec.rb +0 -120
  264. data/spec/unit/models/blueprint/label_blueprint_field_spec.rb +0 -43
  265. data/spec/unit/models/blueprint/project_blueprint_spec.rb +0 -642
  266. data/spec/unit/models/blueprint/reference_spec.rb +0 -28
  267. data/spec/unit/models/blueprint/schema_builder_spec.rb +0 -36
  268. data/spec/unit/models/blueprint/to_wire_spec.rb +0 -196
  269. data/spec/unit/models/dataset_blueprint.rb +0 -14
  270. data/spec/unit/models/execution_spec.rb +0 -109
  271. data/spec/unit/models/from_wire_spec.rb +0 -321
  272. data/spec/unit/models/metadata_spec.rb +0 -140
  273. data/spec/unit/models/metric_spec.rb +0 -129
  274. data/spec/unit/models/model_spec.rb +0 -87
  275. data/spec/unit/models/project_creator_spec.rb +0 -90
  276. data/spec/unit/models/project_spec.rb +0 -94
  277. data/spec/unit/models/report_result_data_spec.rb +0 -194
  278. data/spec/unit/models/to_manifest_spec.rb +0 -165
  279. data/spec/unit/models/user_filters/user_filter_builder_spec.rb +0 -149
  280. data/spec/unit/models/user_filters_spec.rb +0 -95
  281. data/spec/unit/models/variable_spec.rb +0 -280
  282. data/spec/unit/rest/phmap_spec.rb +0 -117
  283. data/spec/unit/rest/polling_spec.rb +0 -101
  284. data/spec/unit/rest/resource_spec.rb +0 -10
  285. data/spec/vcr_configurer.rb +0 -63
@@ -1,16 +0,0 @@
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/client'
8
- require 'gooddata/models/model'
9
-
10
- describe GoodData::Helpers do
11
- describe '#find_goodfile' do
12
- it 'works' do
13
- GoodData::Helpers.find_goodfile.should_not be_nil
14
- end
15
- end
16
- end
@@ -1,54 +0,0 @@
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::LCM, :constraint => 'slow' do
10
- before(:all) do
11
- @client = ConnectionHelper.create_default_connection
12
-
13
- spec = JSON.parse(File.read("./spec/data/blueprints/attribute_sort_order_blueprint.json"), :symbolize_names => true)
14
- blueprint = GoodData::Model::ProjectBlueprint.new(spec)
15
-
16
- @source_project = @client.create_project_from_blueprint(blueprint, token: ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT)
17
- @target_project = @client.create_project_from_blueprint(@source_project.blueprint, token: ConnectionHelper::GD_PROJECT_TOKEN, environment: ProjectHelper::ENVIRONMENT)
18
- end
19
-
20
- after(:all) do
21
- @source_project && @source_project.delete
22
- @target_project && @target_project.delete
23
- @client && @client.disconnect
24
- end
25
-
26
- it 'should be able to transfer attribute drill paths' do
27
- name_attribute_source = @source_project.attributes('attr.id.name')
28
- id_attribute_source = @source_project.attributes('attr.id.id')
29
- name_attribute_source.drill_down(id_attribute_source)
30
-
31
- GoodData::LCM.transfer_attribute_drillpaths(@source_project, @target_project)
32
-
33
- name_attribute_target = @target_project.attributes('attr.id.name')
34
- id_attribute_target = @target_project.attributes('attr.id.id')
35
- name_attribute_target.drill_down(id_attribute_target)
36
- expect(@target_project.labels(name_attribute_target.content['drillDownStepAttributeDF']).attribute_uri).to eq id_attribute_target.meta['uri']
37
- end
38
-
39
- it 'should be able to transfer color palette' do
40
- color_palettes = [
41
- {
42
- guid: 'hello',
43
- fill: {
44
- r: 155,
45
- g: 255,
46
- b: 0
47
- }
48
- }
49
- ]
50
- @source_project.create_custom_color_palette(color_palettes)
51
- GoodData::Project.transfer_color_palette(@source_project, @target_project)
52
- expect(@target_project.current_color_palette.colors).to eq color_palettes.map { |color| GoodData::Helpers.stringify_keys(color) }
53
- end
54
- end
@@ -1,53 +0,0 @@
1
- describe GoodData::MandatoryUserFilter do
2
- before :all do
3
- @client = ConnectionHelper.create_default_connection
4
- @project, * = ProjectHelper.load_full_project_implementation @client
5
- @domain = @client.domain(ConnectionHelper::DEFAULT_DOMAIN)
6
- end
7
-
8
- after :all do
9
- @project.delete if @project
10
- end
11
-
12
- describe 'when several users are sharing a MUF' do
13
- before :all do
14
- label = @project.labels.to_a.first
15
- value = label.values.to_a.first
16
-
17
- helper = AppstoreProjectHelper.new(@project, client: @client)
18
- usr = helper.ensure_user('tttt@tttt.est', @domain)
19
-
20
- other_usr = @domain.find_user_by_login 'rubydev+admin@gooddata.com'
21
-
22
- filters = [[other_usr.email, label.uri, value[:value]]]
23
- @project.add_data_permissions filters
24
-
25
- muf = GoodData::MandatoryUserFilter.all(client: @client, project: @project).to_a.first
26
- # TODO: replace this when gooddata-ruby supports MUFs shared between users
27
- [usr, other_usr].map(&:uri).each do |u|
28
- payload = {
29
- 'userFilters' => {
30
- 'items' => [
31
- {
32
- 'user' => u,
33
- 'userFilters' => [muf.uri]
34
- }
35
- ]
36
- }
37
- }
38
- @client.post("/gdc/md/#{@project.pid}/userfilters", payload)
39
- end
40
- end
41
-
42
- it 'can fetch the related uris' do
43
- mufs = GoodData::MandatoryUserFilter.all(client: @client, project: @project).to_a
44
- expect(mufs.first.related_uri.count).to eq 2
45
- end
46
-
47
- it 'can fetch the related objects' do
48
- mufs = GoodData::MandatoryUserFilter.all(client: @client, project: @project).to_a
49
- expect(mufs.first.related.first).to be_a GoodData::Profile
50
- expect(mufs.first.related.count).to eq 2
51
- end
52
- end
53
- end
@@ -1,56 +0,0 @@
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/mixins/md_id_to_uri'
8
-
9
- describe GoodData::Mixin::MdIdToUri, :vcr do
10
- before :all do
11
- @client = ConnectionHelper.create_default_connection
12
- @suffix = AppstoreProjectHelper.suffix
13
- @opts = {
14
- client: @client,
15
- title: "Project for id to uri spec #{@suffix}",
16
- auth_token: ConnectionHelper::GD_PROJECT_TOKEN,
17
- environment: 'TESTING',
18
- prod_organization: 'staging-lcm-prod'
19
- }
20
- project_helper = AppstoreProjectHelper.create(@opts)
21
- project_helper.create_ldm
22
- project_helper.load_data
23
- @project = project_helper.project
24
-
25
- class SomeTestClass
26
- extend GoodData::Mixin::MdIdToUri
27
- end
28
-
29
- @opts[:project] = @project
30
- end
31
-
32
- after(:all) do
33
- @project.delete
34
- @client.disconnect
35
- end
36
-
37
- it 'should throw BadRequest for -1' do
38
- expect do
39
- SomeTestClass.identifier_to_uri(@opts, '-1')
40
- end.to raise_error(RestClient::BadRequest) { |error|
41
- error.response.should match(/does not match with value '-1'/)
42
- }
43
- end
44
-
45
- it 'should return nil for unknown id' do
46
- expect(SomeTestClass.identifier_to_uri(@opts, '0')).to be_nil
47
- end
48
-
49
- it 'should get json containing correct id' do
50
- facts = GoodData::Fact.all(@opts)
51
- fact = facts.to_a.first
52
- uri = SomeTestClass.identifier_to_uri(@opts, fact.identifier)
53
- res = @client.get(uri)
54
- expect(res['fact']['meta']['identifier']).to eq fact.identifier
55
- end
56
- end
@@ -1,71 +0,0 @@
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/models/segment'
8
- require 'securerandom'
9
-
10
- describe GoodData::DataProduct do
11
- before(:all) do
12
- @client = ConnectionHelper.create_default_connection
13
- @domain = @client.domain(ConnectionHelper::DEFAULT_DOMAIN)
14
- end
15
-
16
- before(:each) do
17
- @uuid = SecureRandom.uuid
18
- @data_product_id = "data-product-#{@uuid}"
19
- @data_product = @domain.create_data_product(id: @data_product_id)
20
- end
21
-
22
- after(:each) do
23
- @data_product && @data_product.delete(force: true)
24
- end
25
-
26
- after(:all) do
27
- @client.disconnect
28
- end
29
-
30
- describe '#[]' do
31
- it 'Returns all data products when :all passed' do
32
- res = @domain.data_products
33
- expect(res).to be_an_instance_of(Array)
34
- end
35
-
36
- it 'Returns specific data product when data product ID passed' do
37
- data_product = @domain.data_products(@data_product_id)
38
- expect(data_product.uri).to eq @data_product.uri
39
- expect(data_product).to be_an_instance_of(GoodData::DataProduct)
40
- end
41
- end
42
-
43
- describe '#delete' do
44
- it 'Deletes particular data product' do
45
- old_count = @domain.data_products.count
46
- @data_product.delete
47
- expect(@domain.data_products.length).to eq(old_count - 1)
48
- # prevent delete attempt in the after hook
49
- @data_product = nil
50
- end
51
- end
52
-
53
- describe '#save' do
54
- it 'can update a data product id' do
55
- @data_product.data_product_id = 'different_id'
56
- @data_product.save
57
- end
58
- end
59
-
60
- describe '#create_segment' do
61
- before do
62
- @master_project = @client.create_project(title: "Test MASTER project for #{@uuid}", auth_token: ConnectionHelper::GD_PROJECT_TOKEN)
63
- end
64
-
65
- it 'creates a segment' do
66
- segment = @data_product.create_segment(segment_id: "test-segment-#{@uuid}", master_project: @master_project)
67
- expect(segment).to be_instance_of GoodData::Segment
68
- expect(segment.data_product.data_product_id).to eq(@data_product_id)
69
- end
70
- end
71
- end
@@ -1,162 +0,0 @@
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/models/domain'
8
- require 'gooddata/helpers/csv_helper'
9
-
10
- describe GoodData::Domain do
11
- before(:each) do
12
- @client = ConnectionHelper.create_default_connection
13
- @domain = @client.domain(ConnectionHelper::DEFAULT_DOMAIN)
14
- end
15
-
16
- after(:each) do
17
- @client.disconnect
18
- end
19
-
20
- describe '#add_user' do
21
- before(:each) do
22
- @user = nil
23
- end
24
-
25
- after(:each) do
26
- @user.delete if @user
27
- end
28
-
29
- it 'Should add user using class method' do
30
- args = {
31
- :domain => ConnectionHelper::DEFAULT_DOMAIN,
32
- :login => "gemtest_#{rand(1e6)}@gooddata.com",
33
- :password => CryptoHelper.generate_password
34
- }
35
-
36
- @user = GoodData::Domain.add_user(args)
37
- expect(@user).to be_an_instance_of(GoodData::Profile)
38
- end
39
-
40
- it 'Should add user using instance method' do
41
- domain = @client.domain(ConnectionHelper::DEFAULT_DOMAIN)
42
-
43
- login = "gemtest#{rand(1e6)}@gooddata.com"
44
- password = CryptoHelper.generate_password
45
-
46
- @user = domain.add_user(:login => login, :password => password, :first_name => 'X', :last_name => 'X')
47
- expect(@user).to be_an_instance_of(GoodData::Profile)
48
- end
49
- end
50
-
51
- describe '#find_user_by_login' do
52
- it 'Should find user by login' do
53
- domain = @client.domain(ConnectionHelper::DEFAULT_DOMAIN)
54
- user = domain.find_user_by_login(ConnectionHelper::DEFAULT_USERNAME)
55
- # user = @domain.add_user(args, client: @client)
56
- expect(user).to be_an_instance_of(GoodData::Profile)
57
- expect(user.login).to eq ConnectionHelper::DEFAULT_USERNAME
58
- end
59
- end
60
-
61
- describe '#users' do
62
- it 'Should list users' do
63
- users = @domain.users
64
- expect(users).to be_instance_of(Enumerator)
65
- users.each do |user|
66
- expect(user).to be_an_instance_of(GoodData::Profile)
67
- end
68
- end
69
- end
70
-
71
- describe '#create_users' do
72
- it 'Creates new users from list' do
73
- list = (0..1).to_a.map { ProjectHelper.create_random_user(@client) }
74
- res = @domain.create_users(list)
75
-
76
- # no errors
77
- expect(res.select { |x| x[:type] == :successful && x[:action] == :user_added_to_domain }.count).to eq res.count
78
-
79
- expect(@domain.members?(list.map(&:login)).all?).to be_truthy
80
-
81
- res.select { |x| x[:type] == :successful }.map { |r| r[:user] }.each do |r|
82
- expect(r).to be_an_instance_of(GoodData::Profile)
83
- r.delete
84
- end
85
- end
86
-
87
- it 'Update a user' do
88
- user = @domain.users.reject { |u| u.login == @client.user.login }.sample
89
- login = user.login
90
- name = user.first_name
91
- modes = user.authentication_modes
92
- possible_modes = [:sso, :password]
93
-
94
- user.first_name = name.reverse
95
- choice = SpecHelper.random_choice(possible_modes, user.authentication_modes)
96
- user.authentication_modes = choice
97
- @domain.create_users([user])
98
- changed_user = @domain.get_user(login)
99
- expect(changed_user.first_name).to eq name.reverse
100
- expect(changed_user.authentication_modes).to eq [choice]
101
-
102
- user.first_name = name
103
- user.authentication_modes = modes
104
- @domain.create_users([user])
105
- reverted_user = @domain.get_user(login)
106
- expect(reverted_user.first_name).to eq name
107
- expect(reverted_user.authentication_modes).to eq modes
108
- end
109
-
110
- it 'Fails with an exception if you try to create a user that is in a different domain', broken: true do
111
- user = ProjectHelper.create_random_user(@client)
112
- user.login = 'svarovsky@gooddata.com'
113
- expect do
114
- @domain.create_user(user)
115
- end.to raise_exception(GoodData::UserInDifferentDomainError)
116
- end
117
-
118
- it 'updates properties of a profile' do
119
- user = @domain.users
120
- .reject { |u| u.login == ConnectionHelper::DEFAULT_USERNAME }.take(20).sample
121
-
122
- old_email = user.email
123
- old_sso_provider = user.sso_provider || ''
124
- user.email = 'john.doe@gooddata.com'
125
- user.sso_provider = 'some_sso_provider'
126
- @domain.update_user(user)
127
- updated_user = @domain.find_user_by_login(user.login)
128
- expect(updated_user.email).to eq 'john.doe@gooddata.com'
129
- expect(updated_user.sso_provider).to eq 'some_sso_provider'
130
-
131
- updated_user.sso_provider = 'some_sso_provider'.reverse
132
- @domain.update_user(updated_user)
133
- updated_user = @domain.find_user_by_login(user.login)
134
- expect(updated_user.sso_provider).to eq 'some_sso_provider'.reverse
135
-
136
- updated_user.email = old_email
137
- updated_user.sso_provider = old_sso_provider
138
- @domain.update_user(updated_user)
139
- expect(@domain.find_user_by_login(user.login).email).to eq old_email
140
- expect(@domain.find_user_by_login(user.login).sso_provider).to eq old_sso_provider
141
- end
142
- end
143
-
144
- describe '#clients' do
145
- subject { GoodData::Domain.new('my_domain') }
146
- let(:client) { double('client') }
147
- let(:clients_response) { { 'client' => { 'id' => '123' }, 'domain' => subject } }
148
-
149
- before do
150
- allow(client).to receive(:get).and_return(clients_response)
151
- allow(subject).to receive(:client).and_return(client)
152
- end
153
-
154
- it 'accepts an integer as the id parameter' do
155
- expect(client).to receive(:create).with(
156
- GoodData::Client,
157
- clients_response
158
- )
159
- subject.clients('123')
160
- end
161
- end
162
- end
@@ -1,17 +0,0 @@
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/models/invitation'
8
-
9
- describe GoodData::Invitation do
10
- before(:each) do
11
- @client = ConnectionHelper.create_default_connection
12
- end
13
-
14
- after(:each) do
15
- @client.disconnect
16
- end
17
- end
@@ -1,49 +0,0 @@
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::Label do
10
- before(:all) do
11
- @rest_client = ConnectionHelper.create_default_connection
12
- @suffix = AppstoreProjectHelper.suffix
13
- @opts = {
14
- client: @rest_client,
15
- title: "Project for label spec #{@suffix}",
16
- auth_token: ConnectionHelper::GD_PROJECT_TOKEN,
17
- environment: 'TESTING',
18
- prod_organization: 'staging-lcm-prod'
19
- }
20
- project_helper = AppstoreProjectHelper.create(@opts)
21
- project_helper.create_ldm
22
- project_helper.load_data
23
- @project = project_helper.project
24
- @label = @project.attributes('label.csv_policies.customer')
25
- end
26
- after(:all) do
27
- @project.delete unless @project.deleted?
28
- end
29
- # this is a substring of another value in the set, AA10041
30
- let(:expected_id) { 'AA1004' }
31
-
32
- describe '#get_valid_elements' do
33
- it 'returns an exact match' do
34
- eles = @label.get_valid_elements filter: expected_id
35
- eles['validElements']['items'].each do |ele|
36
- expect(ele['element']['title']).to eq expected_id
37
- end
38
- end
39
- end
40
-
41
- context 'updating metadata' do
42
- it 'sets the label as deprecated' do
43
- @label.meta['deprecated'] = 1
44
- @label.save
45
- @label.reload!
46
- expect(@label.meta['deprecated']).to eq("1")
47
- end
48
- end
49
- end