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,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/lcm/lcm2'
8
- require 'gooddata/lcm/actions/synchronize_user_groups'
9
-
10
- describe GoodData::LCM2::SynchronizeUserGroups do
11
- let(:gdc_gd_client) { double(:gdc_gd_client) }
12
- let(:development_client) { double(:development_client) }
13
- let(:logger) { double(:logger) }
14
-
15
- let(:from_project) { double(:from_project) }
16
- let(:to_project) { double(:to_project) }
17
-
18
- let(:params) do
19
- params = {
20
- gdc_gd_client: gdc_gd_client,
21
- development_client: development_client,
22
- synchronize: [{
23
- segment_id: 'some_segment_ids',
24
- from: 'from_project_id',
25
- to: [{ pid: 'to_project_id' }]
26
- }],
27
- gdc_logger: logger
28
- }
29
- GoodData::LCM2.convert_to_smart_hash(params)
30
- end
31
-
32
- before do
33
- allow(logger).to receive(:info)
34
-
35
- allow(development_client).to receive(:projects) { from_project }
36
- allow(from_project).to receive(:title)
37
- allow(from_project).to receive(:pid)
38
-
39
- allow(gdc_gd_client).to receive(:projects) { to_project }
40
- allow(to_project).to receive(:title)
41
- allow(to_project).to receive(:pid)
42
- end
43
-
44
- it 'should transfer user groups' do
45
- result = [{ from: 'from_project_id', to: 'to_project_id', user_group: 'user_group_name', status: 'created' }]
46
- expect(GoodData::Project).to receive(:transfer_user_groups).with(from_project, to_project).and_return(result)
47
- subject.class.call(params)
48
- end
49
- end
@@ -1,180 +0,0 @@
1
- require 'active_support/core_ext/hash'
2
- require 'gooddata/lcm/lcm2'
3
- require_relative 'shared_examples_for_user_actions'
4
-
5
- shared_examples_for 'a user synchronizer' do
6
- it 'does not fail and logs a warning' do
7
- expect(logger).to receive(:warn).with(/not match any client ids/)
8
- expect { subject.class.call(params) }.to_not raise_error
9
- end
10
- end
11
-
12
- describe GoodData::LCM2::SynchronizeUsers do
13
- let(:client) { double('client') }
14
- let(:user) { double('user') }
15
- let(:data_source) { double('user') }
16
- let(:domain) { double('domain') }
17
- let(:project) { double('project') }
18
- let(:organization) { double('organization') }
19
- let(:logger) { double('logger') }
20
- let(:project_uri) { '/gdc/projects/123abc' }
21
-
22
- before do
23
- allow(client).to receive(:projects).and_return(project)
24
- allow(client).to receive(:user).and_return(user)
25
- allow(client).to receive(:domain).and_return(domain)
26
- allow(organization).to receive(:project_uri).and_return(project_uri)
27
- allow(project).to receive(:import_users).and_return([{}])
28
- allow(project).to receive(:metadata).and_return({})
29
- allow(project).to receive(:uri).and_return(project_uri)
30
- allow(project).to receive(:pid).and_return('123456789')
31
- allow(data_source).to receive(:realize)
32
- allow(user).to receive(:login).and_return('my_login')
33
- allow(GoodData::Helpers::DataSource).to receive(:new)
34
- .and_return(data_source)
35
- allow(logger).to receive(:debug)
36
- end
37
-
38
- context 'when multiple_projects_column not specified' do
39
- context 'when mode is sync_one_project_based_on_custom_id' do
40
- let(:client_id) { '123456789' }
41
-
42
- before do
43
- allow(domain).to receive(:clients).and_return([organization])
44
- allow(organization).to receive(:id).and_return(client_id)
45
- end
46
-
47
- let(:params) do
48
- params = {
49
- sync_mode: 'sync_one_project_based_on_custom_id',
50
- GDC_GD_CLIENT: client,
51
- input_source: 'foo',
52
- domain: 'bar',
53
- gdc_logger: logger,
54
- }
55
- GoodData::LCM2.convert_to_smart_hash(params)
56
- end
57
-
58
- context 'when the input set is empty' do
59
- before do
60
- allow(File).to receive(:open).and_return("")
61
- end
62
-
63
- it_behaves_like 'a user synchronizer'
64
- end
65
-
66
- context 'when the input set does not contain data for the current project' do
67
- before do
68
- allow(File).to receive(:open).and_return("client_id\ndifferent_from_123")
69
- end
70
-
71
- it_behaves_like 'a user synchronizer'
72
- end
73
- end
74
-
75
- context 'when mode requires client_id' do
76
- let(:params) do
77
- params = {
78
- sync_mode: 'sync_one_project_based_on_pid',
79
- GDC_GD_CLIENT: client,
80
- input_source: 'foo',
81
- domain: 'bar',
82
- gdc_logger: logger
83
- }
84
- GoodData::LCM2.convert_to_smart_hash(params)
85
- end
86
-
87
- before do
88
- allow(File).to receive(:open).and_return("project_id\n123456789")
89
- allow(domain).to receive(:clients).and_return(organization)
90
- end
91
-
92
- it 'uses project_id column' do
93
- expect(project).to receive(:import_users) do |filtered_users|
94
- filtered_users.each do |u|
95
- expect(u[:pid]).to eq '123456789'
96
- end
97
- []
98
- end
99
- subject.class.call(params)
100
- end
101
- end
102
-
103
- context 'when using mode sync_domain_client_workspaces' do
104
- let(:segment) { double('segment') }
105
- let(:segment_uri) { 'segment_uri' }
106
- let(:params) do
107
- params = {
108
- GDC_GD_CLIENT: client,
109
- input_source: 'foo',
110
- domain: 'bar',
111
- gdc_logger: logger,
112
- sync_mode: 'sync_domain_client_workspaces',
113
- segments: [segment]
114
- }
115
- GoodData::LCM2.convert_to_smart_hash(params)
116
- end
117
-
118
- before do
119
- allow(File).to receive(:open).and_return("client_id\n123456789")
120
- allow(domain).to receive(:clients).with(:all, nil).and_return([organization, organization_not_in_segment])
121
- allow(domain).to receive(:clients).with('123456789', nil).and_return(organization)
122
- allow(segment).to receive(:uri).and_return(segment_uri)
123
- allow(organization).to receive(:segment_uri).and_return(segment_uri)
124
- allow(organization).to receive(:project).and_return(project)
125
- allow(organization).to receive(:client_id).and_return('123456789')
126
- allow(project).to receive(:deleted?).and_return(false)
127
- end
128
-
129
- it_behaves_like 'a user action filtering segments' do
130
- let(:message_for_project) { :import_users }
131
- end
132
- end
133
- context 'when using mistyped mode' do
134
- let(:params) do
135
- params = {
136
- GDC_GD_CLIENT: client,
137
- input_source: 'foo',
138
- domain: 'bar',
139
- gdc_logger: logger,
140
- sync_mode: 'unsuported_sync_mode'
141
- }
142
- GoodData::LCM2.convert_to_smart_hash(params)
143
- end
144
-
145
- before do
146
- allow(domain).to receive(:clients).and_return(organization)
147
- end
148
- it_should_behave_like 'when using unsuported sync_mode'
149
- end
150
- context 'when using no mode' do
151
- let(:params) do
152
- params = {
153
- GDC_GD_CLIENT: client,
154
- input_source: 'foo',
155
- domain: 'bar',
156
- gdc_logger: logger
157
- }
158
- GoodData::LCM2.convert_to_smart_hash(params)
159
- end
160
-
161
- before do
162
- allow(domain).to receive(:clients).and_return(organization)
163
- end
164
- before do
165
- allow(data_source).to receive(:realize).and_return('filepath')
166
- allow(File).to receive(:open).and_return("client_id\n123456789")
167
- allow(project).to receive(:metadata).and_return(
168
- 'GOODOT_CUSTOM_PROJECT_ID' => 'project-123'
169
- )
170
- allow(project).to receive(:uri).and_return('project-uri')
171
- allow(project).to receive(:add_data_permissions)
172
- allow(domain).to receive(:clients).and_return([])
173
- end
174
-
175
- it 'fails' do
176
- expect { subject.class.call(params) }.to raise_error(/sync_mode/)
177
- end
178
- end
179
- end
180
- end
@@ -1,34 +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/bricks/bricks'
8
-
9
- describe GoodData::Bricks::Brick do
10
- it "Has GoodData::Bricks::Brick class" do
11
- GoodData::Bricks::Brick.should_not be(nil)
12
- end
13
-
14
- describe '#version' do
15
- it 'Throws NotImplemented on base class' do
16
- brick = GoodData::Bricks::Brick.new
17
- expect do
18
- brick.version
19
- end.to raise_error(NotImplementedError)
20
- end
21
- end
22
-
23
- it "should be possible to execute custom brick" do
24
- class CustomBrick < GoodData::Bricks::Brick
25
- def call(_params)
26
- puts 'hello'
27
- end
28
- end
29
-
30
- p = GoodData::Bricks::Pipeline.prepare([CustomBrick])
31
-
32
- p.call({})
33
- end
34
- end
@@ -1,98 +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/bricks/brick'
8
- require 'gooddata/bricks/bricks'
9
- require 'gooddata/bricks/middleware/aws_middleware'
10
-
11
- describe GoodData::Bricks::AWSMiddleware do
12
- subject { GoodData::Bricks::AWSMiddleware.new(app: proc {}) }
13
-
14
- it 'should do nothing if the key "aws_client" is not there at all' do
15
- middleware = GoodData::Bricks::AWSMiddleware.new(app: ->(_params) { 'Doing nothing' })
16
- middleware.call({})
17
- end
18
-
19
- it 'should fail gracefully if value aws_client param not present even though the key is' do
20
- middleware = GoodData::Bricks::AWSMiddleware.new(app: -> { 'Doing nothing' })
21
- expect do
22
- middleware.call('aws_client' => nil)
23
- end.to raise_exception 'Unable to connect to AWS. Parameter "aws_client" seems to be empty'
24
- end
25
-
26
- it 'should fail gracefully if value secret_access_key is missing' do
27
- middleware = GoodData::Bricks::AWSMiddleware.new(app: -> { 'Doing nothing' })
28
- expect do
29
- middleware.call('aws_client' => { 'access_key_id' => 'something' })
30
- end.to raise_exception 'Unable to connect to AWS. Parameter "secret_access_key" is missing'
31
- end
32
-
33
- it 'should fail gracefully if value access_key_id is missing' do
34
- middleware = GoodData::Bricks::AWSMiddleware.new(app: -> { 'Doing nothing' })
35
- expect do
36
- middleware.call('aws_client' => { 'secret_access_key' => 'something' })
37
- end.to raise_exception 'Unable to connect to AWS. Parameter "access_key_id" is missing'
38
- end
39
-
40
- it "should preapre aws middleware for aws_client param" do
41
- middleware = GoodData::Bricks::AWSMiddleware.new(app: lambda do |params|
42
- expect(params['aws_client']['s3_client']).to be_kind_of(Aws::S3::Resource)
43
- end)
44
- middleware.call('aws_client' => { 'secret_access_key' => 'something', 'access_key_id' => 'something' })
45
- end
46
-
47
- context 'when use_ssl parameter specified' do
48
- let(:params) do
49
- {
50
- 'aws_client' => {
51
- 'access_key_id' => 'foo',
52
- 'secret_access_key' => 'bar',
53
- 'region' => 'baz',
54
- 'use_ssl' => 'false'
55
- }
56
- }
57
- end
58
-
59
- it 'raises an error' do
60
- expect { subject.call(params) }.to raise_error(/use_ssl has been deprecated/)
61
- end
62
- end
63
-
64
- context 'when a superfluous parameter is specified' do
65
- let(:params) do
66
- {
67
- 'aws_client' => {
68
- 'access_key_id' => 'foo',
69
- 'secret_access_key' => 'bar',
70
- 'region' => 'baz',
71
- 'qux' => 'quux'
72
- }
73
- }
74
- end
75
-
76
- it 'raises an error' do
77
- expect { subject.call(params) }.to raise_error(ArgumentError, /qux/)
78
- end
79
- end
80
-
81
- context 'when region not specified' do
82
- let(:params) do
83
- {
84
- 'aws_client' => {
85
- 'access_key_id' => 'foo',
86
- 'secret_access_key' => 'bar'
87
- }
88
- }
89
- end
90
-
91
- it 'it defaults to us-west-2' do
92
- expect(Aws::S3::Resource).to receive(:new) do |params|
93
- expect(params[:region]).to eq 'us-west-2'
94
- end
95
- subject.call(params)
96
- end
97
- end
98
- end
@@ -1,15 +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/bricks/brick'
8
- require 'gooddata/bricks/bricks'
9
- require 'gooddata/bricks/middleware/bench_middleware'
10
-
11
- describe GoodData::Bricks::BenchMiddleware do
12
- it "Has GoodData::Bricks::BenchMiddleware class" do
13
- GoodData::Bricks::BenchMiddleware.should_not be(nil)
14
- end
15
- end
@@ -1,15 +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/bricks/brick'
8
- require 'gooddata/bricks/bricks'
9
- require 'gooddata/bricks/middleware/bulk_salesforce_middleware'
10
-
11
- describe GoodData::Bricks::BulkSalesforceMiddleware do
12
- it "Has GoodData::Bricks::BulkSalesforceMiddleware class" do
13
- GoodData::Bricks::BulkSalesforceMiddleware.should_not be(nil)
14
- end
15
- end
@@ -1,15 +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/bricks/brick'
8
- require 'gooddata/bricks/bricks'
9
- require 'gooddata/bricks/middleware/gooddata_middleware'
10
-
11
- describe GoodData::Bricks::GoodDataMiddleware do
12
- it "Has GoodData::Bricks::GoodDataMiddleware class" do
13
- GoodData::Bricks::GoodDataMiddleware.should_not be(nil)
14
- end
15
- end
@@ -1,30 +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/bricks/brick'
8
- require 'gooddata/bricks/bricks'
9
- require 'gooddata/bricks/middleware/logger_middleware'
10
-
11
- describe GoodData::Bricks::LoggerMiddleware do
12
- it "Has GoodData::Bricks::LoggerMiddleware class" do
13
- GoodData::Bricks::LoggerMiddleware.should_not be(nil)
14
- end
15
-
16
- context 'when HTTP_LOGGING parameter set to true' do
17
- let(:params) { { 'HTTP_LOGGING' => 'true' } }
18
- let(:app) { double(:app) }
19
-
20
- before do
21
- subject.app = app
22
- allow(app).to receive(:call)
23
- end
24
-
25
- it 'turns http logging on' do
26
- expect(GoodData).to receive(:logging_http_on)
27
- subject.call(params)
28
- end
29
- end
30
- end