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,94 +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
- shared_examples 'a blueprint provider' do
8
- it 'requests model view with includeCA=true' do
9
- expect(client).to receive(:get).with(
10
- '/gdc/projects/foo/model/view',
11
- hash_including(params: hash_including(includeCA: true))
12
- )
13
- subject.blueprint(include_ca: true)
14
- end
15
- end
16
-
17
- describe GoodData::Project do
18
- subject { GoodData::Project }
19
- let(:from_project) { double('from_project') }
20
- let(:to_project) { double('to_project') }
21
- let(:process) { double('process') }
22
- let(:add) { double('add') }
23
- let(:output_stage) { double('output_stage') }
24
- let(:client) { double('client') }
25
- let(:connection) { double('connection') }
26
- let(:server) { double('server') }
27
-
28
- before do
29
- allow(from_project).to receive(:processes).and_return([process])
30
- allow(to_project).to receive(:processes).and_return([])
31
- allow(process).to receive(:type).and_return(:dataload)
32
- allow(to_project).to receive(:add).and_return(add)
33
- allow(to_project).to receive(:client).and_return(client)
34
- allow(client).to receive(:connection).and_return(connection)
35
- allow(connection).to receive(:server).and_return(server)
36
- allow(from_project).to receive(:add).and_return(add)
37
- allow(from_project).to receive(:client).and_return(client)
38
- allow(add).to receive(:output_stage).and_return(output_stage)
39
- end
40
-
41
- describe '.transfer_output_stage' do
42
- context 'when source and target domains are different' do
43
- before do
44
- allow(server).to receive(:url).and_return('foo', 'bar')
45
- end
46
-
47
- it 'raises an error' do
48
- expect { subject.transfer_output_stage(from_project, to_project, {}) }
49
- .to raise_error(/Cannot transfer output stage from foo to bar/)
50
- end
51
- end
52
- end
53
-
54
- describe '#blueprint' do
55
- let(:project_data) do
56
- {
57
- 'project' => {
58
- 'links' => { 'self' => '/gdc/foo' },
59
- 'meta' => { 'title' => 'My Project' }
60
- }
61
- }
62
- end
63
- let(:diff_result) do
64
- { 'asyncTask' => { 'link' => { 'poll' => 'poll_me' } } }
65
- end
66
- let(:blueprint) { double(GoodData::Model::ProjectBlueprint) }
67
- subject { GoodData::Project.new(project_data) }
68
- before do
69
- allow(client).to receive(:get).and_return(diff_result)
70
- allow(client).to receive(:poll_on_code)
71
- allow(GoodData::Model::FromWire).to receive(:from_wire) .and_return(blueprint)
72
- allow(blueprint).to receive(:title=)
73
- subject.client = client
74
- end
75
-
76
- context 'when include_ca option is true' do
77
- it_behaves_like 'a blueprint provider'
78
- end
79
-
80
- context 'when include_ca option is not specified' do
81
- it_behaves_like 'a blueprint provider'
82
- end
83
-
84
- context 'when include_ca option is false' do
85
- it 'requests model view with includeCA=false' do
86
- expect(client).to receive(:get).with(
87
- '/gdc/projects/foo/model/view',
88
- hash_including(params: hash_including(includeCA: false))
89
- )
90
- subject.blueprint(include_ca: false)
91
- end
92
- end
93
- end
94
- end
@@ -1,194 +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/report_data_result'
8
-
9
- describe GoodData::ReportDataResult do
10
- before(:each) do
11
- data = JSON.parse(File.read('./spec/data/reports/report_1.json'))
12
- @result = GoodData::ReportDataResult.from_xtab(data)
13
- @result2 = GoodData::ReportDataResult.from_xtab(data)
14
- end
15
-
16
- it 'should compute columns' do
17
- expect(@result.to_a).to eq [[nil, "kolin", "praha", "varsava"],
18
- [nil, "sum of Age", "sum of Age", "sum of Age"],
19
- ["jirka", 25, nil, nil],
20
- ["petr", nil, nil, 15],
21
- ["tomas", nil, 25, nil]]
22
- end
23
-
24
- it 'should compute columns' do
25
- expect(@result.left_headers).to eq [["jirka"],
26
- ["petr"],
27
- ["tomas"]]
28
- end
29
-
30
- it 'should compute columns' do
31
- expect(@result.top_headers).to eq [%w(kolin praha varsava), ["sum of Age", "sum of Age", "sum of Age"]]
32
- end
33
-
34
- describe '#slice' do
35
- it 'slice on zeroes should be equal to original' do
36
- expect(@result.slice(0, 0)).to eq @result
37
- end
38
-
39
- it 'slice on data should return just data' do
40
- expect(@result.slice(2, 1).to_a).to eq [[25, nil, nil],
41
- [nil, nil, 15],
42
- [nil, 25, nil]]
43
- end
44
-
45
- it 'should return data result with correct size' do
46
- expect(@result.slice(2, 1).size).to eq [3, 3]
47
- end
48
-
49
- it 'should return data result with correct headers' do
50
- expect(@result.left_headers).to eq [["jirka"], ["petr"], ["tomas"]]
51
- expect(@result.top_headers).to eq [%w(kolin praha varsava), ["sum of Age", "sum of Age", "sum of Age"]]
52
- end
53
- end
54
-
55
- describe '#without_left_headers' do
56
- it 'should return data result without left headers' do
57
- expect(@result.without_left_headers.to_a).to eq [%w(kolin praha varsava),
58
- ["sum of Age", "sum of Age", "sum of Age"],
59
- [25, nil, nil],
60
- [nil, nil, 15],
61
- [nil, 25, nil]]
62
- end
63
-
64
- it 'should return correct size' do
65
- expect(@result.without_left_headers.size).to eq [5, 3]
66
- end
67
-
68
- it 'should return correct left headers' do
69
- expect(@result.without_top_headers.top_headers).to eq nil
70
- end
71
- end
72
-
73
- describe '#without_top_headers' do
74
- it 'should return data result without left headers' do
75
- expect(@result.without_top_headers.to_a).to eq [["jirka", 25, nil, nil],
76
- ["petr", nil, nil, 15],
77
- ["tomas", nil, 25, nil]]
78
- end
79
-
80
- it 'should return correct size' do
81
- expect(@result.without_top_headers.size).to eq [3, 4]
82
- end
83
-
84
- it 'should return correct left headers' do
85
- expect(@result.without_top_headers.left_headers).to eq [["jirka"],
86
- ["petr"],
87
- ["tomas"]]
88
- end
89
-
90
- it 'should return correct top headers' do
91
- expect(@result.without_top_headers.top_headers).to eq nil
92
- end
93
- end
94
-
95
- it 'should work with left attribute reports' do
96
- data = JSON.parse(File.read('./spec/data/reports/left_attr_report.json'))
97
- result = GoodData::ReportDataResult.from_xtab(data)
98
- expect(result.left_headers).to eq [["jirka"], ["petr"], ["tomas"]]
99
- expect(result.size).to eq [4, 2]
100
- expect(result.data_size).to eq [3, 1]
101
- end
102
-
103
- it 'should work with left attribute reports' do
104
- data = JSON.parse(File.read('./spec/data/reports/top_attr_report.json'))
105
- result = GoodData::ReportDataResult.from_xtab(data)
106
- expect(result.size).to eq [2, 4]
107
- expect(result.data_size).to eq [1, 3]
108
- expect(result.left_headers).to eq [["Values"]]
109
- expect(result.top_headers).to eq [%w(jirka petr tomas)]
110
- end
111
-
112
- it 'should fail when comparing two different reports' do
113
- data = JSON.parse(File.read('./spec/data/reports/left_attr_report.json'))
114
- a = GoodData::ReportDataResult.from_xtab(data)
115
- data = JSON.parse(File.read('./spec/data/reports/top_attr_report.json'))
116
- b = GoodData::ReportDataResult.from_xtab(data)
117
- expect(a == b).to be_falsey
118
- end
119
-
120
- describe '#size' do
121
- it 'should compute columns' do
122
- expect(@result.size).to eq [5, 4]
123
- end
124
-
125
- it 'should compute columns' do
126
- expect(@result.size).to eq @result2.size
127
- end
128
- end
129
-
130
- describe '#data' do
131
- it 'should return just data portion' do
132
- expect(@result.data.is_a?(GoodData::ReportDataResult)).to be_truthy
133
- expect(@result.data.to_a).to eq [[25, nil, nil],
134
- [nil, nil, 15],
135
- [nil, 25, nil]]
136
- end
137
- end
138
-
139
- describe '#[]' do
140
- it 'should return correct line' do
141
- expect(@result[2]).to eq ['jirka', 25, nil, nil]
142
- end
143
- end
144
-
145
- describe '#column' do
146
- it 'should return correct line' do
147
- expect(@result.column(2)).to eq ["praha", "sum of Age", nil, nil, 25]
148
- end
149
- end
150
-
151
- describe '#map' do
152
- it 'should iterate over rows' do
153
- expect(@result.each.map { [1] }).to eq [[1], [1], [1], [1], [1]]
154
- end
155
- end
156
-
157
- describe '#transpose' do
158
- it 'should transpose' do
159
- expect(@result.transpose.to_a).to eq @result.to_a.transpose
160
- expect(@result.transpose.to_a).to eq [[nil, nil, "jirka", "petr", "tomas"],
161
- ["kolin", "sum of Age", 25, nil, nil],
162
- ["praha", "sum of Age", nil, nil, 25],
163
- ["varsava", "sum of Age", nil, 15, nil]]
164
- end
165
- end
166
-
167
- describe '#diff' do
168
- it 'should support diffing' do
169
- data = JSON.parse(File.read('./spec/data/reports/left_attr_report.json'))
170
- a = GoodData::ReportDataResult.from_xtab(data)
171
- c = GoodData::ReportDataResult.from_xtab(data)
172
- data = JSON.parse(File.read('./spec/data/reports/top_attr_report.json'))
173
- b = GoodData::ReportDataResult.from_xtab(data)
174
- expect { a - b }.to raise_exception
175
- expect(a - c).to be_empty
176
- end
177
- end
178
-
179
- describe 'one line reports' do
180
- it 'should work with one line metric. No attribtues.' do
181
- data = JSON.parse(File.read('./spec/data/reports/metric_only_one_line.json'))
182
- a = GoodData::ReportDataResult.from_xtab(data)
183
- expect(a.to_a).to eq [[nil, "sum of Age"],
184
- ["sum of Age", 65]]
185
-
186
- expect(a.data.to_a).to eq [[65]]
187
- expect(a.left_headers).to eq [["sum of Age"]]
188
- expect(a.top_headers).to eq [["sum of Age"]]
189
-
190
- expect(a.without_top_headers.to_a).to eq [["sum of Age", 65]]
191
- expect(a.without_left_headers.to_a).to eq [["sum of Age"], [65]]
192
- end
193
- end
194
- end
@@ -1,165 +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
- include GoodData::Model
10
-
11
- describe GoodData::Model::ToManifest do
12
- before(:each) do
13
- @spec = JSON.parse(File.read("./spec/data/blueprints/test_project_model_spec.json"), :symbolize_names => true)
14
- @result = JSON.parse(File.read("./spec/data/manifests/test_project.json"))
15
- end
16
-
17
- it "should parse the model view and return the blueprint" do
18
- expect(ToManifest.to_manifest(@spec)).to eq @result
19
- end
20
-
21
- context 'when HLL fact is in the spec' do
22
- let(:hll_fact) do
23
- {
24
- type: "hll",
25
- id: 'fact.commits.lines_added',
26
- column_name: 'lines_added',
27
- title: 'Lines Added'
28
- }
29
- end
30
-
31
- let(:spec) do
32
- hll_spec = @spec
33
- hll_spec[:datasets]
34
- .find { |d| d[:id] == 'dataset.commits' }[:columns] << hll_fact
35
- hll_spec
36
- end
37
-
38
- it "converts the HLL fact to manifest" do
39
- actual = ToManifest.to_manifest(spec)
40
- expected = {
41
- 'populates' => ['fact.commits.lines_added'],
42
- 'mode' => 'FULL',
43
- 'columnName' => 'lines_added'
44
- }
45
- parts = actual[2]['dataSetSLIManifest']['parts']
46
- expect(parts).to include(expected)
47
- end
48
- end
49
-
50
- it 'blueprint can be set with date reference and default format is set' do
51
- blueprint = GoodData::Model::ProjectBlueprint.build("my_bp") do |p|
52
- p.add_date_dimension("committed_on")
53
-
54
- p.add_dataset("repos") do |d|
55
- d.add_anchor("repo_id")
56
- d.add_attribute("name")
57
- d.add_date('opportunity_comitted', dataset: 'committed_on')
58
- end
59
- end
60
- expect(blueprint.to_manifest.first['dataSetSLIManifest']['parts'][0]['constraints']).to eq("date" => GoodData::Model::DEFAULT_DATE_FORMAT)
61
- end
62
-
63
- it 'blueprint can be set with date reference and default format is set' do
64
- blueprint = GoodData::Model::ProjectBlueprint.build("my_bp") do |p|
65
- p.add_date_dimension("committed_on")
66
-
67
- p.add_dataset("repos") do |d|
68
- d.add_anchor("repo_id")
69
- d.add_attribute("name")
70
- d.add_date('opportunity_comitted', dataset: 'committed_on', format: 'yyyy/MM/dd')
71
- end
72
- end
73
- expect(blueprint.to_manifest.first['dataSetSLIManifest']['parts'][0]['constraints']).to eq("date" => "yyyy/MM/dd")
74
- end
75
-
76
- it 'blueprint can handle date fact during creation of manifest' do
77
- blueprint = GoodData::Model::ProjectBlueprint.build("my_bp") do |p|
78
- p.add_date_dimension("committed_on")
79
-
80
- p.add_dataset("repos") do |d|
81
- d.add_anchor("repo_id")
82
- d.add_label("repo_label", reference: "repo_id")
83
- d.add_attribute("name")
84
- d.add_label("name_label", reference: "name")
85
- d.add_date('opportunity_comitted', dataset: 'committed_on', format: 'yyyy/MM/dd')
86
- d.add_column(type: :date_fact, id: 'dt.date_fact')
87
- end
88
- end
89
- expect(blueprint.to_manifest.first['dataSetSLIManifest']['parts'].count).to eq 4
90
- end
91
-
92
- it 'blueprint can be specified to have a reference key. The manifest respects it. If not it takes the first key.' do
93
- blueprint = GoodData::Model::ProjectBlueprint.build("my_bp") do |p|
94
- p.add_date_dimension("committed_on")
95
-
96
- p.add_dataset("repos") do |d|
97
- d.add_anchor("repo_id")
98
- d.add_label("repo_label_1", reference: "repo_id")
99
- d.add_label("repo_label_2", reference: "repo_id")
100
- d.add_attribute("name")
101
- d.add_label("name_label", reference: "name")
102
-
103
- d.add_date('opportunity_comitted', dataset: 'committed_on', format: 'yyyy/MM/dd')
104
- d.add_column(type: :date_fact, id: 'dt.date_fact')
105
- end
106
- end
107
- expect(blueprint.to_manifest.first['dataSetSLIManifest']['parts'])
108
- .to include("referenceKey" => 1,
109
- "populates" => ["repo_label_1"],
110
- "mode" => "FULL",
111
- "columnName" => "repo_label_1")
112
-
113
- blueprint = GoodData::Model::ProjectBlueprint.build("my_bp") do |p|
114
- p.add_date_dimension("committed_on")
115
-
116
- p.add_dataset("repos") do |d|
117
- d.add_anchor("repo_id")
118
- d.add_label("repo_label_1", reference: "repo_id")
119
- d.add_label("repo_label_2", reference: "repo_id", reference_label: true)
120
- d.add_attribute("name")
121
- d.add_label("name_label", reference: "name")
122
-
123
- d.add_date('opportunity_comitted', dataset: 'committed_on', format: 'yyyy/MM/dd')
124
- end
125
-
126
- p.add_dataset("commits") do |d|
127
- d.add_anchor("commits_id")
128
- d.add_fact('lines')
129
- d.add_reference('repos')
130
- end
131
- end
132
-
133
- expect(blueprint.to_manifest.first['dataSetSLIManifest']['parts'])
134
- .to include("referenceKey" => 1,
135
- "populates" => ["repo_label_2"],
136
- "mode" => "FULL",
137
- "columnName" => "repo_label_2")
138
- expect(blueprint.to_manifest[1]['dataSetSLIManifest']['parts']).to include("populates" => ["repo_label_2"], "mode" => "FULL", "columnName" => "repos", "referenceKey" => 1)
139
- end
140
-
141
- it 'blueprint cannot have more than one reference key.' do
142
- blueprint = GoodData::Model::ProjectBlueprint.build("my_bp") do |p|
143
- p.add_date_dimension("committed_on")
144
-
145
- p.add_dataset("repos") do |d|
146
- d.add_anchor("repo_id")
147
- d.add_label("repo_label_1", reference: "repo_id", reference_label: true)
148
- d.add_label("repo_label_2", reference: "repo_id", reference_label: true)
149
- d.add_attribute("name")
150
- d.add_label("name_label", reference: "name")
151
-
152
- d.add_date('opportunity_comitted', dataset: 'committed_on', format: 'yyyy/MM/dd')
153
- d.add_column(type: :date_fact, id: 'dt.date_fact')
154
- end
155
- end
156
-
157
- expect(blueprint.valid?).to be false
158
- expect(blueprint.validate).to eq [
159
- {
160
- type: :error,
161
- message: "Anchor \"repo_id\" can have only one label with reference_label field set to true"
162
- }
163
- ]
164
- end
165
- end