gooddata 0.6.20 → 0.6.22

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 (316) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -1
  3. data/DEPENDENCIES.md +816 -0
  4. data/LICENSE +1 -1
  5. data/LICENSE.rb +5 -0
  6. data/Rakefile +74 -22
  7. data/dependency_decisions.yml +102 -0
  8. data/gooddata.gemspec +39 -38
  9. data/lib/gooddata.rb +4 -0
  10. data/lib/gooddata/app/app.rb +4 -0
  11. data/lib/gooddata/bricks/base_downloader.rb +5 -1
  12. data/lib/gooddata/bricks/brick.rb +4 -0
  13. data/lib/gooddata/bricks/bricks.rb +5 -0
  14. data/lib/gooddata/bricks/middleware/aws_middleware.rb +5 -0
  15. data/lib/gooddata/bricks/middleware/base_middleware.rb +5 -0
  16. data/lib/gooddata/bricks/middleware/bench_middleware.rb +5 -0
  17. data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +5 -0
  18. data/lib/gooddata/bricks/middleware/decode_params_middleware.rb +6 -0
  19. data/lib/gooddata/bricks/middleware/fs_download_middleware.rb +6 -0
  20. data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +6 -0
  21. data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +6 -0
  22. data/lib/gooddata/bricks/middleware/logger_middleware.rb +5 -0
  23. data/lib/gooddata/bricks/middleware/middleware.rb +5 -0
  24. data/lib/gooddata/bricks/middleware/restforce_middleware.rb +4 -0
  25. data/lib/gooddata/bricks/middleware/stdout_middleware.rb +5 -0
  26. data/lib/gooddata/bricks/middleware/twitter_middleware.rb +5 -0
  27. data/lib/gooddata/bricks/middleware/undot_params_middleware.rb +4 -0
  28. data/lib/gooddata/bricks/pipeline.rb +4 -0
  29. data/lib/gooddata/bricks/utils.rb +4 -0
  30. data/lib/gooddata/cli/cli.rb +4 -0
  31. data/lib/gooddata/cli/commands/api_cmd.rb +4 -0
  32. data/lib/gooddata/cli/commands/auth_cmd.rb +4 -0
  33. data/lib/gooddata/cli/commands/console_cmd.rb +4 -0
  34. data/lib/gooddata/cli/commands/domain_cmd.rb +4 -0
  35. data/lib/gooddata/cli/commands/process_cmd.rb +4 -0
  36. data/lib/gooddata/cli/commands/project_cmd.rb +4 -0
  37. data/lib/gooddata/cli/commands/projects_cmd.rb +4 -0
  38. data/lib/gooddata/cli/commands/run_ruby_cmd.rb +4 -0
  39. data/lib/gooddata/cli/commands/scaffold_cmd.rb +4 -0
  40. data/lib/gooddata/cli/commands/user_cmd.rb +4 -0
  41. data/lib/gooddata/cli/hooks.rb +4 -0
  42. data/lib/gooddata/cli/shared.rb +4 -0
  43. data/lib/gooddata/cli/terminal.rb +4 -0
  44. data/lib/gooddata/client.rb +4 -0
  45. data/lib/gooddata/commands/api.rb +4 -0
  46. data/lib/gooddata/commands/auth.rb +4 -0
  47. data/lib/gooddata/commands/base.rb +4 -0
  48. data/lib/gooddata/commands/commands.rb +5 -0
  49. data/lib/gooddata/commands/datasets.rb +5 -1
  50. data/lib/gooddata/commands/datawarehouse.rb +4 -0
  51. data/lib/gooddata/commands/domain.rb +4 -0
  52. data/lib/gooddata/commands/process.rb +4 -0
  53. data/lib/gooddata/commands/project.rb +7 -9
  54. data/lib/gooddata/commands/projects.rb +4 -0
  55. data/lib/gooddata/commands/role.rb +4 -0
  56. data/lib/gooddata/commands/runners.rb +4 -0
  57. data/lib/gooddata/commands/scaffold.rb +4 -0
  58. data/lib/gooddata/commands/user.rb +4 -0
  59. data/lib/gooddata/connection.rb +83 -0
  60. data/lib/gooddata/core/core.rb +4 -0
  61. data/lib/gooddata/core/logging.rb +4 -0
  62. data/lib/gooddata/core/nil_logger.rb +4 -0
  63. data/lib/gooddata/core/project.rb +4 -0
  64. data/lib/gooddata/core/rest.rb +14 -16
  65. data/lib/gooddata/core/user.rb +4 -0
  66. data/lib/gooddata/data/data.rb +4 -0
  67. data/lib/gooddata/data/guesser.rb +4 -0
  68. data/lib/gooddata/exceptions/attr_element_not_found.rb +4 -0
  69. data/lib/gooddata/exceptions/command_failed.rb +4 -0
  70. data/lib/gooddata/exceptions/exceptions.rb +4 -0
  71. data/lib/gooddata/exceptions/execution_limit_exceeded.rb +4 -0
  72. data/lib/gooddata/exceptions/filter_maqlization.rb +16 -0
  73. data/lib/gooddata/exceptions/malformed_user.rb +15 -0
  74. data/lib/gooddata/exceptions/no_project_error.rb +4 -0
  75. data/lib/gooddata/exceptions/object_migration.rb +28 -0
  76. data/lib/gooddata/exceptions/project_not_found.rb +5 -0
  77. data/lib/gooddata/exceptions/uncomputable_report.rb +5 -0
  78. data/lib/gooddata/exceptions/user_in_different_domain.rb +4 -0
  79. data/lib/gooddata/exceptions/validation_error.rb +4 -0
  80. data/lib/gooddata/extensions/big_decimal.rb +4 -0
  81. data/lib/gooddata/extensions/enumerable.rb +4 -0
  82. data/lib/gooddata/extensions/extensions.rb +4 -0
  83. data/lib/gooddata/extensions/false.rb +4 -0
  84. data/lib/gooddata/extensions/hash.rb +4 -0
  85. data/lib/gooddata/extensions/nil.rb +4 -0
  86. data/lib/gooddata/extensions/numeric.rb +4 -0
  87. data/lib/gooddata/extensions/object.rb +4 -0
  88. data/lib/gooddata/extensions/symbol.rb +4 -0
  89. data/lib/gooddata/extensions/true.rb +4 -0
  90. data/lib/gooddata/extract.rb +4 -0
  91. data/lib/gooddata/goodzilla/goodzilla.rb +87 -77
  92. data/lib/gooddata/helpers/auth_helpers.rb +6 -2
  93. data/lib/gooddata/helpers/csv_helper.rb +4 -0
  94. data/lib/gooddata/helpers/data_helper.rb +4 -0
  95. data/lib/gooddata/helpers/global_helpers.rb +35 -6
  96. data/lib/gooddata/helpers/global_helpers_params.rb +34 -7
  97. data/lib/gooddata/helpers/helpers.rb +4 -0
  98. data/lib/gooddata/mixins/author.rb +4 -0
  99. data/lib/gooddata/mixins/content_getter.rb +4 -0
  100. data/lib/gooddata/mixins/content_property_reader.rb +4 -0
  101. data/lib/gooddata/mixins/content_property_writer.rb +4 -0
  102. data/lib/gooddata/mixins/contributor.rb +4 -0
  103. data/lib/gooddata/mixins/data_getter.rb +4 -0
  104. data/lib/gooddata/mixins/data_property_reader.rb +4 -0
  105. data/lib/gooddata/mixins/data_property_writer.rb +4 -0
  106. data/lib/gooddata/mixins/inspector.rb +4 -0
  107. data/lib/gooddata/mixins/is_attribute.rb +4 -0
  108. data/lib/gooddata/mixins/is_dimension.rb +4 -0
  109. data/lib/gooddata/mixins/is_fact.rb +4 -0
  110. data/lib/gooddata/mixins/is_label.rb +4 -0
  111. data/lib/gooddata/mixins/links.rb +4 -0
  112. data/lib/gooddata/mixins/md_finders.rb +4 -0
  113. data/lib/gooddata/mixins/md_id_to_uri.rb +4 -0
  114. data/lib/gooddata/mixins/md_json.rb +4 -0
  115. data/lib/gooddata/mixins/md_lock.rb +4 -0
  116. data/lib/gooddata/mixins/md_object_id.rb +5 -1
  117. data/lib/gooddata/mixins/md_object_indexer.rb +4 -0
  118. data/lib/gooddata/mixins/md_object_query.rb +4 -0
  119. data/lib/gooddata/mixins/md_relations.rb +4 -0
  120. data/lib/gooddata/mixins/meta_getter.rb +4 -0
  121. data/lib/gooddata/mixins/meta_property_reader.rb +4 -0
  122. data/lib/gooddata/mixins/meta_property_writer.rb +4 -0
  123. data/lib/gooddata/mixins/mixins.rb +4 -0
  124. data/lib/gooddata/mixins/not_attribute.rb +4 -0
  125. data/lib/gooddata/mixins/not_exportable.rb +4 -0
  126. data/lib/gooddata/mixins/not_fact.rb +4 -0
  127. data/lib/gooddata/mixins/not_label.rb +4 -0
  128. data/lib/gooddata/mixins/not_metric.rb +6 -0
  129. data/lib/gooddata/mixins/obj_id.rb +4 -0
  130. data/lib/gooddata/mixins/rest_getters.rb +4 -0
  131. data/lib/gooddata/mixins/rest_resource.rb +4 -0
  132. data/lib/gooddata/mixins/root_key_getter.rb +4 -0
  133. data/lib/gooddata/mixins/root_key_setter.rb +4 -0
  134. data/lib/gooddata/mixins/timestamps.rb +4 -0
  135. data/lib/gooddata/models/blueprint/anchor_field.rb +4 -0
  136. data/lib/gooddata/models/blueprint/attribute_field.rb +4 -0
  137. data/lib/gooddata/models/blueprint/blueprint.rb +4 -0
  138. data/lib/gooddata/models/blueprint/blueprint_field.rb +4 -0
  139. data/lib/gooddata/models/blueprint/dashboard_builder.rb +4 -0
  140. data/lib/gooddata/models/blueprint/dataset_blueprint.rb +6 -0
  141. data/lib/gooddata/models/blueprint/date_dimension.rb +4 -0
  142. data/lib/gooddata/models/blueprint/fact_field.rb +4 -0
  143. data/lib/gooddata/models/blueprint/label_field.rb +4 -0
  144. data/lib/gooddata/models/blueprint/project_blueprint.rb +6 -0
  145. data/lib/gooddata/models/blueprint/project_builder.rb +4 -0
  146. data/lib/gooddata/models/blueprint/reference_field.rb +4 -0
  147. data/lib/gooddata/models/blueprint/schema_blueprint.rb +4 -0
  148. data/lib/gooddata/models/blueprint/schema_builder.rb +4 -0
  149. data/lib/gooddata/models/blueprint/to_manifest.rb +17 -1
  150. data/lib/gooddata/models/blueprint/to_wire.rb +4 -0
  151. data/lib/gooddata/models/datawarehouse.rb +5 -0
  152. data/lib/gooddata/models/domain.rb +25 -7
  153. data/lib/gooddata/models/execution.rb +4 -0
  154. data/lib/gooddata/models/execution_detail.rb +4 -0
  155. data/lib/gooddata/models/from_wire.rb +4 -0
  156. data/lib/gooddata/models/invitation.rb +4 -0
  157. data/lib/gooddata/models/links.rb +4 -0
  158. data/lib/gooddata/models/membership.rb +4 -0
  159. data/lib/gooddata/models/metadata.rb +37 -10
  160. data/lib/gooddata/models/metadata/attribute.rb +6 -0
  161. data/lib/gooddata/models/metadata/dashboard.rb +54 -16
  162. data/lib/gooddata/models/metadata/dashboard/dashboard_item.rb +60 -0
  163. data/lib/gooddata/models/metadata/dashboard/filter_item.rb +15 -0
  164. data/lib/gooddata/models/metadata/dashboard/report_item.rb +51 -0
  165. data/lib/gooddata/models/metadata/dashboard_tab.rb +88 -0
  166. data/lib/gooddata/models/metadata/dataset.rb +4 -0
  167. data/lib/gooddata/models/metadata/dimension.rb +4 -0
  168. data/lib/gooddata/models/metadata/fact.rb +6 -0
  169. data/lib/gooddata/models/metadata/label.rb +15 -0
  170. data/lib/gooddata/models/metadata/metadata.rb +4 -0
  171. data/lib/gooddata/models/metadata/metric.rb +5 -4
  172. data/lib/gooddata/models/metadata/report.rb +62 -16
  173. data/lib/gooddata/models/metadata/report_definition.rb +44 -47
  174. data/lib/gooddata/models/metadata/variable.rb +4 -0
  175. data/lib/gooddata/models/model.rb +85 -36
  176. data/lib/gooddata/models/models.rb +4 -0
  177. data/lib/gooddata/models/module_constants.rb +4 -0
  178. data/lib/gooddata/models/process.rb +4 -0
  179. data/lib/gooddata/models/profile.rb +13 -0
  180. data/lib/gooddata/models/project.rb +173 -92
  181. data/lib/gooddata/models/project_creator.rb +18 -10
  182. data/lib/gooddata/models/project_metadata.rb +4 -0
  183. data/lib/gooddata/models/project_role.rb +4 -0
  184. data/lib/gooddata/models/report_data_result.rb +217 -125
  185. data/lib/gooddata/models/schedule.rb +140 -65
  186. data/lib/gooddata/models/tab_builder.rb +4 -0
  187. data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +4 -0
  188. data/lib/gooddata/models/user_filters/user_filter.rb +4 -0
  189. data/lib/gooddata/models/user_filters/user_filter_builder.rb +98 -56
  190. data/lib/gooddata/models/user_filters/user_filters.rb +4 -0
  191. data/lib/gooddata/models/user_filters/variable_user_filter.rb +4 -0
  192. data/lib/gooddata/rest/client.rb +41 -38
  193. data/lib/gooddata/rest/connection.rb +91 -20
  194. data/lib/gooddata/rest/connections/rest_client_connection.rb +5 -1
  195. data/lib/gooddata/rest/object.rb +9 -1
  196. data/lib/gooddata/rest/object_factory.rb +5 -1
  197. data/lib/gooddata/rest/resource.rb +5 -1
  198. data/lib/gooddata/rest/rest.rb +4 -0
  199. data/lib/gooddata/version.rb +5 -1
  200. data/spec/bricks/bricks_spec.rb +4 -0
  201. data/spec/data/blueprints/test_project_model_spec.json +2 -2
  202. data/spec/data/gooddata_version_process/gooddata_version.rb +6 -0
  203. data/spec/data/hello_world_process/hello_world.rb +6 -0
  204. data/spec/data/manifests/test_project.json +5 -5
  205. data/spec/data/reports/left_attr_report.json +108 -0
  206. data/spec/data/reports/metric_only_one_line.json +83 -0
  207. data/spec/data/reports/report_1.json +197 -0
  208. data/spec/data/reports/top_attr_report.json +108 -0
  209. data/spec/data/ruby_params_process/ruby_params.rb +6 -0
  210. data/spec/data/ruby_process/process.rb +6 -0
  211. data/spec/environment/default.rb +5 -0
  212. data/spec/environment/develop.rb +10 -5
  213. data/spec/environment/environment.rb +4 -0
  214. data/spec/environment/hotfix.rb +5 -1
  215. data/spec/environment/production.rb +4 -0
  216. data/spec/environment/release.rb +4 -0
  217. data/spec/environment/staging.rb +30 -0
  218. data/spec/environment/staging_3.rb +37 -0
  219. data/spec/helpers/blueprint_helper.rb +4 -0
  220. data/spec/helpers/cli_helper.rb +4 -0
  221. data/spec/helpers/connection_helper.rb +24 -17
  222. data/spec/helpers/crypto_helper.rb +6 -0
  223. data/spec/helpers/csv_helper.rb +4 -0
  224. data/spec/helpers/process_helper.rb +5 -1
  225. data/spec/helpers/project_helper.rb +34 -29
  226. data/spec/helpers/schedule_helper.rb +4 -0
  227. data/spec/helpers/spec_helper.rb +4 -0
  228. data/spec/integration/blueprint_updates_spec.rb +28 -20
  229. data/spec/integration/command_datawarehouse_spec.rb +6 -0
  230. data/spec/integration/command_projects_spec.rb +6 -4
  231. data/spec/integration/create_from_template_spec.rb +6 -0
  232. data/spec/integration/create_project_spec.rb +6 -0
  233. data/spec/integration/deprecated_load_spec.rb +58 -0
  234. data/spec/integration/full_process_schedule_spec.rb +9 -0
  235. data/spec/integration/full_project_spec.rb +63 -9
  236. data/spec/integration/over_to_user_filters_spec.rb +7 -2
  237. data/spec/integration/partial_md_export_import_spec.rb +6 -0
  238. data/spec/integration/project_spec.rb +12 -6
  239. data/spec/integration/rest_spec.rb +6 -2
  240. data/spec/integration/schedule_spec.rb +627 -0
  241. data/spec/integration/user_filters_spec.rb +122 -21
  242. data/spec/integration/variables_spec.rb +8 -15
  243. data/spec/logging_in_logging_out_spec.rb +58 -0
  244. data/spec/spec_helper.rb +10 -5
  245. data/spec/unit/bricks/bricks_spec.rb +4 -0
  246. data/spec/unit/bricks/middleware/aws_middelware_spec.rb +4 -0
  247. data/spec/unit/bricks/middleware/bench_middleware_spec.rb +4 -0
  248. data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +4 -0
  249. data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +4 -0
  250. data/spec/unit/bricks/middleware/logger_middleware_spec.rb +4 -0
  251. data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +4 -0
  252. data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +4 -0
  253. data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +4 -0
  254. data/spec/unit/cli/cli_spec.rb +4 -0
  255. data/spec/unit/cli/commands/cmd_api_spec.rb +4 -0
  256. data/spec/unit/cli/commands/cmd_auth_spec.rb +4 -0
  257. data/spec/unit/cli/commands/cmd_domain_spec.rb +4 -0
  258. data/spec/unit/cli/commands/cmd_process_spec.rb +4 -0
  259. data/spec/unit/cli/commands/cmd_project_spec.rb +4 -0
  260. data/spec/unit/cli/commands/cmd_role_spec.rb +4 -0
  261. data/spec/unit/cli/commands/cmd_run_ruby_spec.rb +4 -0
  262. data/spec/unit/cli/commands/cmd_scaffold_spec.rb +6 -0
  263. data/spec/unit/cli/commands/cmd_user_spec.rb +6 -0
  264. data/spec/unit/commands/command_api_spec.rb +6 -0
  265. data/spec/unit/commands/command_auth_spec.rb +6 -0
  266. data/spec/unit/commands/command_dataset_spec.rb +10 -4
  267. data/spec/unit/commands/command_process_spec.rb +6 -0
  268. data/spec/unit/commands/command_projects_spec.rb +6 -0
  269. data/spec/unit/commands/command_scaffold_spec.rb +6 -0
  270. data/spec/unit/commands/command_user_spec.rb +6 -0
  271. data/spec/unit/core/connection_spec.rb +6 -0
  272. data/spec/unit/core/logging_spec.rb +4 -0
  273. data/spec/unit/core/nil_logger_spec.rb +4 -0
  274. data/spec/unit/core/project_spec.rb +4 -0
  275. data/spec/unit/data/guesser_spec.rb +6 -2
  276. data/spec/unit/extensions/hash_spec.rb +4 -0
  277. data/spec/unit/godzilla/goodzilla_spec.rb +4 -0
  278. data/spec/unit/helpers/csv_helper_spec.rb +4 -0
  279. data/spec/unit/helpers/data_helper_spec.rb +4 -0
  280. data/spec/unit/helpers/global_helpers_spec.rb +54 -0
  281. data/spec/unit/helpers_spec.rb +6 -1
  282. data/spec/unit/models/blueprint/attributes_spec.rb +5 -0
  283. data/spec/unit/models/blueprint/dataset_spec.rb +5 -0
  284. data/spec/unit/models/blueprint/labels_spec.rb +5 -0
  285. data/spec/unit/models/blueprint/project_blueprint_spec.rb +5 -0
  286. data/spec/unit/models/blueprint/reference_spec.rb +5 -0
  287. data/spec/unit/models/blueprint/schema_builder_spec.rb +4 -0
  288. data/spec/unit/models/blueprint/to_wire_spec.rb +5 -0
  289. data/spec/unit/models/domain_spec.rb +9 -7
  290. data/spec/unit/models/execution_spec.rb +6 -0
  291. data/spec/unit/models/from_wire_spec.rb +4 -0
  292. data/spec/unit/models/invitation_spec.rb +4 -0
  293. data/spec/unit/models/membership_spec.rb +4 -0
  294. data/spec/unit/models/metadata_spec.rb +46 -0
  295. data/spec/unit/models/metric_spec.rb +4 -0
  296. data/spec/unit/models/model_spec.rb +4 -0
  297. data/spec/unit/models/params_spec.rb +4 -0
  298. data/spec/unit/models/profile_spec.rb +4 -0
  299. data/spec/unit/models/project_creator_spec.rb +127 -0
  300. data/spec/unit/models/project_role_spec.rb +4 -0
  301. data/spec/unit/models/project_spec.rb +4 -0
  302. data/spec/unit/models/report_result_data_spec.rb +193 -0
  303. data/spec/unit/models/schedule_spec.rb +241 -386
  304. data/spec/unit/models/to_manifest_spec.rb +21 -0
  305. data/spec/unit/models/{unit_project.rb → unit_project_spec.rb} +21 -18
  306. data/spec/unit/models/user_filters_spec.rb +7 -1
  307. data/spec/unit/models/variable_spec.rb +6 -0
  308. data/spec/unit/rest/polling_spec.rb +8 -5
  309. data/spec/unit/rest/resource_spec.rb +4 -0
  310. metadata +190 -129
  311. data/.autotest +0 -2
  312. data/.travis.yml +0 -22
  313. data/examples.rb +0 -69
  314. data/lib/gooddata/models/data_result.rb +0 -38
  315. data/lib/gooddata/models/empty_result.rb +0 -57
  316. data/spec/unit/models/project_creator.rb +0 -73
@@ -1,3 +1,9 @@
1
+ # encoding: UTF-8
2
+ #
3
+ # Copyright (c) 2010-2015 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
+
1
7
  require 'gooddata/models/schedule'
2
8
 
3
9
  describe GoodData::Schedule do
@@ -14,9 +20,7 @@ describe GoodData::Schedule do
14
20
  end
15
21
 
16
22
  before(:each) do
17
- @client = ConnectionHelper.create_default_connection
18
23
 
19
- @project = ProjectHelper.get_default_project(:client => @client)
20
24
  @project_executable = 'graph/graph.grf'
21
25
  @test_cron = '0 15 27 7 *'
22
26
  @test_data = {
@@ -39,138 +43,49 @@ describe GoodData::Schedule do
39
43
  }
40
44
  end
41
45
 
42
- after(:each) do
43
- @client.disconnect
44
- end
45
-
46
- describe '#[]' do
47
- it 'Returns all schedules when :all passed' do
48
- res = @project.schedules
49
- res.should_not be_nil
50
- res.should be_a_kind_of(Array)
51
- res.each do |schedule|
52
- schedule.should be_a_kind_of(GoodData::Schedule)
53
- end
54
- end
55
-
56
- it 'Returns specific schedule when schedule ID passed' do
57
- res = @project.schedules(SCHEDULE_ID)
58
- res.should_not be_nil
59
- res.should be_a_kind_of(GoodData::Schedule)
60
- end
61
-
62
- it 'Returns specific schedule when schedule URL passed' do
63
- res = @project.schedules(SCHEDULE_ID)
64
- res.should_not be_nil
65
- res.should be_a_kind_of(GoodData::Schedule)
66
- end
67
- end
68
-
69
- describe '#all' do
70
- it 'Returns all schedules' do
71
- res = @project.schedules
72
- res.should_not be_nil
73
- res.should be_a_kind_of(Array)
74
- res.each do |schedule|
75
- schedule.should be_a_kind_of(GoodData::Schedule)
76
- end
77
- end
78
- end
79
-
80
46
  describe '#create' do
81
47
  it 'Creates new schedule if mandatory params passed' do
82
- begin
83
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
84
- expect(schedule).to be_truthy
85
- ensure
86
- schedule && schedule.delete
87
- end
48
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
49
+ expect(schedule).to be_truthy
88
50
  end
89
51
 
90
52
  it 'Creates new schedule if mandatory params passed and optional params are present' do
91
- begin
92
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
93
- expect(schedule).to be_truthy
94
- ensure
95
- schedule && schedule.delete
96
- end
53
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
54
+ expect(schedule).to be_truthy
97
55
  end
98
56
 
99
57
  it 'Throws exception when no process ID specified' do
100
58
  schedule = nil
101
- begin
102
- expect {
103
- schedule = @project.create_schedule(nil, @test_cron, @project_executable, @test_data)
104
- }.to raise_error 'Process ID has to be provided'
105
- ensure
106
- schedule && schedule.delete
107
- end
59
+ expect {
60
+ schedule = GoodData::Schedule.create(nil, @test_cron, @project_executable, @test_data)
61
+ }.to raise_error 'Process ID has to be provided'
108
62
  end
109
63
 
110
64
  it 'Throws exception when no executable specified' do
111
65
  schedule = nil
112
- begin
113
- expect {
114
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, nil, @test_data)
115
- }.to raise_error 'Executable has to be provided'
116
- ensure
117
- schedule && schedule.delete
118
- end
66
+ expect {
67
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, nil, @test_data)
68
+ }.to raise_error 'Executable has to be provided'
119
69
  end
120
70
 
121
71
  it 'Throws exception when no cron is specified' do
122
72
  data = GoodData::Helpers.deep_dup(@test_data)
123
73
  data[:cron] = nil
124
74
  schedule = nil
125
- begin
126
- expect {
127
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, nil, @project_executable, data)
128
- }.to raise_error 'trigger schedule has to be provided'
129
- ensure
130
- schedule && schedule.delete
131
- end
132
- end
133
-
134
- it 'Throws exception when no timezone specified' do
135
- data = GoodData::Helpers.deep_dup(@test_data)
136
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, data)
137
- schedule.timezone = nil
138
- begin
139
- expect {
140
- schedule.save
141
- }.to raise_error 'A timezone has to be provided'
142
- ensure
143
- schedule && schedule.delete
144
- end
145
- end
146
-
147
- it 'Throws exception when no schedule type is specified' do
148
- schedule = nil
149
- data = GoodData::Helpers.deep_dup(@test_data)
150
- begin
151
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, data)
152
- schedule.type = nil
153
- expect {
154
- schedule.save
155
- }.to raise_error 'Schedule type has to be provided'
156
- ensure
157
- schedule && schedule.delete
158
- end
75
+ expect {
76
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, nil, @project_executable, data)
77
+ }.to raise_error 'Trigger schedule has to be provided'
159
78
  end
160
79
  end
161
80
 
162
81
  describe '#cron' do
163
82
  it 'Should return cron as string' do
164
- begin
165
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
166
- res = schedule.cron
167
- res.should_not be_nil
168
- res.should_not be_empty
169
- res.should be_a_kind_of(String)
170
- expect(schedule.time_based?).to be_truthy
171
- ensure
172
- schedule && schedule.delete
173
- end
83
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
84
+ res = schedule.cron
85
+ expect(res).not_to be_nil
86
+ expect(res).not_to be_empty
87
+ expect(res).to be_a_kind_of(String)
88
+ expect(schedule.time_based?).to be_truthy
174
89
  end
175
90
  end
176
91
 
@@ -178,28 +93,22 @@ describe GoodData::Schedule do
178
93
  it 'Assigns the cron and marks the object dirty' do
179
94
  test_cron = '2 2 2 2 *'
180
95
 
181
- begin
182
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
183
- schedule.cron = test_cron
184
- expect(schedule.cron).to eq(test_cron)
185
- expect(schedule.dirty).to eq(true)
186
- ensure
187
- schedule && schedule.delete
188
- end
96
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
97
+ schedule.cron = test_cron
98
+ expect(schedule.cron).to eq(test_cron)
99
+ expect(schedule.dirty).to eq(true)
100
+ expect(schedule.to_hash[:cron]).to eq test_cron
101
+ expect(schedule.to_update_payload['schedule']['cron']).to eq test_cron
189
102
  end
190
103
  end
191
104
 
192
105
  describe '#executable' do
193
106
  it 'Should return executable as string' do
194
- begin
195
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
196
- res = schedule.executable
197
- res.should_not be_nil
198
- res.should_not be_empty
199
- res.should be_a_kind_of(String)
200
- ensure
201
- schedule && schedule.delete
202
- end
107
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
108
+ res = schedule.executable
109
+ expect(res).not_to be_nil
110
+ expect(res).not_to be_empty
111
+ expect(res).to be_a_kind_of(String)
203
112
  end
204
113
  end
205
114
 
@@ -207,154 +116,190 @@ describe GoodData::Schedule do
207
116
  it 'Assigns the executable and marks the object dirty' do
208
117
  test_executable = 'this/is/test.grf'
209
118
 
210
- begin
211
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
212
- schedule.executable = test_executable
213
- expect(schedule.executable).to eq(test_executable)
214
- expect(schedule.dirty).to eq(true)
215
- ensure
216
- schedule && schedule.delete
217
- end
119
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
120
+ schedule.executable = test_executable
121
+ expect(schedule.executable).to eq(test_executable)
122
+ expect(schedule.dirty).to eq(true)
123
+ expect(schedule.to_hash[:executable]).to eq test_executable
124
+ expect(schedule.to_update_payload['schedule']['params']['EXECUTABLE']).to eq test_executable
218
125
  end
219
126
  end
220
127
 
221
128
  describe '#execute' do
222
- it 'Waits for execution result by default' do
223
- begin
224
- process = @project.deploy_process('./spec/data/gooddata_version_process/gooddata_version.zip',
225
- type: 'RUBY',
226
- name: 'Test ETL zipped file GoodData Process')
227
- schedule = process.create_schedule('0 15 27 7 *', process.executables.first)
228
- res = schedule.execute
229
- expect(res).to be_an_instance_of(GoodData::Execution)
230
- expect([:ok, :error].include?(res.status)).to be_truthy
231
- ensure
232
- schedule && schedule.delete
233
- process && process.delete
234
- end
235
- end
236
-
237
- it 'can be overridden to do not wait for execution result' do
238
- begin
239
- process = @project.deploy_process('./spec/data/gooddata_version_process/gooddata_version.zip',
240
- type: 'RUBY',
241
- name: 'Test ETL zipped file GoodData Process')
242
- schedule = process.create_schedule('0 15 27 7 *', process.executables.first)
243
- res = schedule.execute(:wait => false)
244
- expect(res).to be_an_instance_of(GoodData::Execution)
245
- expect([:scheduled, :running].include?(res.status)).to be_truthy
246
- ensure
247
- schedule && schedule.delete
248
- process && process.delete
249
- end
129
+ it 'Cannot be executed if not saved' do
130
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
131
+ expect(schedule.execute).to be_nil
250
132
  end
251
133
  end
252
134
 
253
135
  describe '#execution_url' do
254
136
  it 'Should return execution URL as string' do
255
- begin
256
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
257
- res = schedule.execution_url
258
- res.should_not be_nil
259
- res.should_not be_empty
260
- res.should be_a_kind_of(String)
261
- ensure
262
- schedule && schedule.delete
263
- end
137
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
138
+ expect(schedule.execution_url).to be_nil
264
139
  end
265
140
  end
266
141
 
267
142
  describe '#type' do
268
143
  it 'Should return execution type as string' do
269
- begin
270
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
271
- res = schedule.type
272
- res.should_not be_nil
273
- res.should be_a_kind_of(String)
274
- ensure
275
- schedule && schedule.delete
276
- end
144
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
145
+ expect(schedule.type).to eq 'MSETL'
146
+ expect(schedule.to_hash[:type]).to eq 'MSETL'
147
+ expect(schedule.to_update_payload['schedule']['type']).to eq 'MSETL'
148
+ end
149
+ end
150
+
151
+ describe '#type=' do
152
+ it 'Assigns the type the object dirty' do
153
+ test_type = 'TEST'
154
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
155
+ schedule.type = test_type
156
+ expect(schedule.type).to eq(test_type)
157
+ expect(schedule.dirty).to eq(true)
158
+ expect(schedule.to_hash[:type]).to eq test_type
159
+ expect(schedule.to_update_payload['schedule']['type']).to eq test_type
277
160
  end
278
161
  end
279
162
 
280
163
  describe '#hidden_params' do
281
- it 'Should return execution hidden_params as hash' do
282
- begin
283
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
284
- res = schedule.hidden_params
285
- res.should_not be_nil
286
- res.should be_a_kind_of(Hash)
287
- ensure
288
- schedule && schedule.delete
289
- end
164
+ it 'Should return hidden_params as hash. Empty by default.' do
165
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
166
+ res = schedule.hidden_params
167
+ expect(res).not_to be_nil
168
+ expect(res).to be_a_kind_of(Hash)
169
+ end
170
+
171
+ it 'Should return hidden_params as hash. Filled by default if provided.' do
172
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data.merge(hidden_params: {'a' => 'b'}))
173
+ res = schedule.hidden_params
174
+ expect(res).not_to be_nil
175
+ expect(res).to be_a_kind_of(Hash)
176
+ expect(res['a']).to eq 'b'
290
177
  end
291
178
  end
292
179
 
293
180
  describe '#hidden_params=' do
294
181
  it 'Assigns the hidden params and marks the object dirty' do
295
- begin
296
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
297
- old_params = schedule.hidden_params
182
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
183
+ old_params = schedule.hidden_params
184
+
185
+ test_params = {
186
+ 'PROCESS_ID' => '1-2-3-4'
187
+ }
188
+
189
+ schedule.hidden_params = test_params
190
+ expect(schedule.hidden_params).to eq(old_params.merge(test_params))
191
+ expect(schedule.dirty).to eq(true)
192
+ expect(schedule.to_hash[:hidden_params]).to eq(test_params)
193
+ expect(schedule.to_update_payload['schedule']['hiddenParams']).to eq(test_params)
194
+ end
195
+ end
196
+
197
+ describe '#set_hidden_parameter' do
198
+ it 'Assigns the hidden parameter and marks the object dirty' do
199
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
200
+ old_params = schedule.hidden_params
201
+
202
+ test_parameter = {'test_parameter' => 'just_testing' }
203
+ schedule.set_hidden_parameter(test_parameter.keys.first, test_parameter.values.first)
204
+ expect(schedule.hidden_params).to eq(old_params.merge(test_parameter))
205
+ expect(schedule.dirty).to eq(true)
206
+ expect(schedule.to_hash[:hidden_params]).to eq(test_parameter)
207
+ expect(schedule.to_update_payload['schedule']['hiddenParams']).to eq(test_parameter)
208
+ end
209
+ end
298
210
 
299
- test_params = {
300
- 'PROCESS_ID' => '1-2-3-4'
301
- }
211
+ describe '#set_parameter' do
212
+ it 'Assigns the parameter and marks the object dirty' do
213
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
214
+ old_params = schedule.params
302
215
 
303
- schedule.hidden_params = test_params
304
- expect(schedule.hidden_params).to eq(old_params.merge(test_params))
305
- expect(schedule.dirty).to eq(true)
306
- ensure
307
- schedule && schedule.delete
308
- end
216
+ test_parameter = {'test_parameter' => 'just_testing' }
217
+ schedule.set_parameter(test_parameter.keys.first, test_parameter.values.first)
218
+ expect(schedule.params).to eq(old_params.merge(test_parameter))
219
+ expect(schedule.dirty).to eq(true)
220
+ expect(schedule.to_hash[:params]).to eq(old_params.merge(test_parameter))
221
+ expect(schedule.to_update_payload['schedule']['params']).to eq(old_params.merge(test_parameter))
309
222
  end
310
223
  end
311
224
 
225
+
312
226
  describe '#params' do
313
227
  it 'Should return execution params as hash' do
314
- begin
315
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
316
- res = schedule.params
317
- res.should_not be_nil
318
- res.should_not be_empty
319
- res.should be_a_kind_of(Hash)
320
- ensure
321
- schedule && schedule.delete
322
- end
228
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
229
+ res = schedule.params
230
+ expect(res).not_to be_nil
231
+ expect(res).to be_a_kind_of(Hash)
323
232
  end
324
233
  end
325
234
 
326
235
  describe '#params=' do
327
- it 'Assigns the params and marks the object dirty' do
328
- begin
329
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
330
- old_params = schedule.params
331
-
332
- test_params = {
333
- 'some_new_param' => '1-2-3-4'
334
- }
335
-
336
- schedule.params = test_params
337
- expect(schedule.params.keys).to eq(%w(PROCESS_ID EXECUTABLE some_new_param))
338
- expect(schedule.params['some_new_param']).to eq '1-2-3-4'
339
- expect(schedule.dirty).to eq(true)
340
- schedule.save
341
- ensure
342
- schedule && schedule.delete
343
- end
236
+ it 'Updates the params and marks the object dirty' do
237
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
238
+ old_params = schedule.params
239
+
240
+ test_params = {
241
+ 'some_new_param' => '1-2-3-4'
242
+ }
243
+
244
+ schedule.params = test_params
245
+ expect(schedule.params.keys).to eq(%w(PROCESS_ID EXECUTABLE some_new_param))
246
+ expect(schedule.params['some_new_param']).to eq '1-2-3-4'
247
+ expect(schedule.dirty).to eq(true)
248
+ end
249
+ end
250
+
251
+ describe '#update_params' do
252
+ it 'Updates the params and marks the object dirty' do
253
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data.merge({ params: { 'a' => 'b' } }))
254
+ old_params = schedule.params
255
+
256
+ test_params = {
257
+ 'some_new_param' => '1-2-3-4',
258
+ 'a' => 'c'
259
+ }
260
+
261
+ schedule.update_params(test_params)
262
+ expect(schedule.params.keys).to eq(%w(PROCESS_ID EXECUTABLE a some_new_param))
263
+ expect(schedule.params['some_new_param']).to eq '1-2-3-4'
264
+ expect(schedule.params['a']).to eq 'c'
265
+ expect(schedule.dirty).to eq(true)
266
+ end
267
+ end
268
+
269
+ describe '#update_hidden_params' do
270
+ it 'Updates the hidden params and marks the object dirty' do
271
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data.merge({ params: { 'a' => 'b' } }))
272
+ old_params = schedule.hidden_params
273
+
274
+ schedule.update_hidden_params({
275
+ 'some_new_param' => '1-2-3-4',
276
+ 'a' => 'c',
277
+ 'x' => ''
278
+ })
279
+ expect(schedule.hidden_params.keys.to_set).to eq(%w(x a some_new_param).to_set)
280
+ expect(schedule.hidden_params['some_new_param']).to eq '1-2-3-4'
281
+ expect(schedule.hidden_params['a']).to eq 'c'
282
+ expect(schedule.dirty).to eq(true)
283
+
284
+ schedule.update_hidden_params({
285
+ 'some_new_param' => '1-2-3-4',
286
+ 'a' => 'd'
287
+ })
288
+ expect(schedule.hidden_params.keys.to_set).to eq(%w(x a some_new_param).to_set)
289
+ expect(schedule.hidden_params['some_new_param']).to eq '1-2-3-4'
290
+ expect(schedule.hidden_params['a']).to eq 'd'
291
+ expect(schedule.hidden_params['x']).to eq ''
292
+ expect(schedule.dirty).to eq(true)
344
293
  end
345
294
  end
346
295
 
347
296
  describe '#process_id' do
348
297
  it 'Should return process id as string' do
349
- begin
350
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
351
- res = schedule.process_id
352
- res.should_not be_nil
353
- res.should_not be_empty
354
- res.should be_a_kind_of(String)
355
- ensure
356
- schedule && schedule.delete
357
- end
298
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
299
+ res = schedule.process_id
300
+ res.should_not be_nil
301
+ res.should_not be_empty
302
+ res.should be_a_kind_of(String)
358
303
  end
359
304
  end
360
305
 
@@ -362,83 +307,42 @@ describe GoodData::Schedule do
362
307
  it 'Assigns the process_id and marks the object dirty' do
363
308
  test_process_id = '1-2-3-4'
364
309
 
365
- begin
366
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
367
- schedule.process_id = test_process_id
368
- expect(schedule.process_id).to eq(test_process_id)
369
- expect(schedule.dirty).to eq(true)
370
- ensure
371
- schedule && schedule.delete
372
- end
310
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
311
+ schedule.process_id = test_process_id
312
+ expect(schedule.process_id).to eq(test_process_id)
313
+ expect(schedule.dirty).to eq(true)
314
+ expect(schedule.to_hash[:process_id]).to eq test_process_id
315
+ expect(schedule.to_update_payload['schedule']['params']['PROCESS_ID']).to eq test_process_id
373
316
  end
374
317
  end
375
318
 
376
- describe '#save' do
377
- it 'Should save a schedule' do
378
- begin
379
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
380
- expect(@project.schedules(schedule.uri)).to eq schedule
381
- expect(@project.schedules).to include(schedule)
382
- ensure
383
- schedule && schedule.delete
384
- end
385
- end
386
- end
387
319
 
388
320
  describe '#state' do
389
- it 'Should return execution state as string' do
390
- begin
391
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
392
- res = schedule.state
393
- res.should_not be_nil
394
- res.should_not be_empty
395
- res.should be_a_kind_of(String)
396
- ensure
397
- schedule && schedule.delete
398
- end
399
- end
400
- end
401
-
402
- describe '#type' do
403
- it 'Should return execution type as string' do
404
- begin
405
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
406
- res = schedule.type
407
- res.should_not be_nil
408
- res.should_not be_empty
409
- res.should be_a_kind_of(String)
410
- ensure
411
- schedule && schedule.delete
412
- end
321
+ it 'Should return schedule state as string' do
322
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
323
+ res = schedule.state
324
+ expect(res).not_to be_nil
325
+ expect(res).to eq 'ENABLED'
326
+ expect(schedule.to_hash[:state]).to eq 'ENABLED'
327
+ expect(schedule.to_update_payload['schedule']['state']).to eq 'ENABLED'
413
328
  end
414
- end
415
-
416
- describe '#type=' do
417
- it 'Assigns the type the object dirty' do
418
- test_type = 'TEST'
419
329
 
420
- begin
421
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
422
- schedule.type = test_type
423
- expect(schedule.type).to eq(test_type)
424
- expect(schedule.dirty).to eq(true)
425
- ensure
426
- schedule && schedule.delete
427
- end
330
+ it 'Should return schedule state as string as provided' do
331
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data.merge(:state => 'DISABLED'))
332
+ res = schedule.state
333
+ expect(res).not_to be_nil
334
+ expect(res).to eq 'DISABLED'
335
+ expect(schedule.to_hash[:state]).to eq 'DISABLED'
336
+ expect(schedule.to_update_payload['schedule']['state']).to eq 'DISABLED'
428
337
  end
429
338
  end
430
339
 
431
340
  describe '#timezone' do
432
341
  it 'Should return timezone as string' do
433
- begin
434
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
435
- res = schedule.timezone
436
- res.should_not be_nil
437
- res.should_not be_empty
438
- res.should be_a_kind_of(String)
439
- ensure
440
- schedule && schedule.delete
441
- end
342
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
343
+ res = schedule.timezone
344
+ expect(res).not_to be_nil
345
+ expect(res).to be_a_kind_of(String)
442
346
  end
443
347
  end
444
348
 
@@ -446,118 +350,69 @@ describe GoodData::Schedule do
446
350
  it 'Assigns the timezone and marks the object dirty' do
447
351
  test_timezone = 'PST'
448
352
 
449
- begin
450
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
451
- schedule.timezone = test_timezone
452
- expect(schedule.timezone).to eq(test_timezone)
453
- expect(schedule.dirty).to eq(true)
454
- ensure
455
- schedule && schedule.delete
456
- end
353
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
354
+ schedule.timezone = test_timezone
355
+ expect(schedule.timezone).to eq(test_timezone)
356
+ expect(schedule.dirty).to eq(true)
457
357
  end
458
358
  end
459
-
359
+
460
360
  describe '#reschedule' do
361
+ it 'Should return reschedule nil if not provided' do
362
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data)
363
+ expect(schedule.reschedule).to eq nil
364
+ end
365
+
461
366
  it 'Should return reschedule as integer' do
462
- begin
463
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
464
- res = schedule.reschedule
465
- res.should_not be_nil
466
- res.should be_a_kind_of(Integer)
467
- ensure
468
- schedule && schedule.delete
469
- end
367
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
368
+ expect(schedule.reschedule).to eq @test_data_with_optional_param[:reschedule]
369
+ expect(schedule.reschedule).to be_a_kind_of(Integer)
470
370
  end
471
371
  end
472
372
 
473
373
  describe '#reschedule=' do
474
374
  it 'Assigns the reschedule and marks the object dirty' do
475
375
  test_reschedule = 45
476
-
477
- begin
478
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
479
- schedule.reschedule = test_reschedule
480
- expect(schedule.reschedule).to eq(test_reschedule)
481
- expect(schedule.dirty).to eq(true)
482
- ensure
483
- schedule && schedule.delete
484
- end
485
- end
486
- end
487
-
488
- describe '#executions' do
489
- it 'Returns executions' do
490
- begin
491
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
492
- expect(schedule.executions).to be_empty
493
- schedule.execute
494
- ensure
495
- schedule && schedule.delete
496
- end
376
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
377
+ expect(schedule.reschedule).to eq @test_data_with_optional_param[:reschedule]
378
+ schedule.reschedule = test_reschedule
379
+ expect(schedule.reschedule).to eq(test_reschedule)
380
+ expect(schedule.dirty).to eq(true)
381
+ expect(schedule.to_hash[:reschedule]).to eq test_reschedule
382
+ expect(schedule.to_update_payload['schedule']['reschedule']).to eq test_reschedule
497
383
  end
498
384
  end
499
385
 
500
386
  describe '#name' do
501
- it 'should be able to get name of the schedule.' do
502
- begin
503
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
504
- expect(schedule.name).to eq 'graph.grf'
505
- ensure
506
- schedule && schedule.delete
507
- end
387
+ it 'Name is nil if not specified and not saved.' do
388
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
389
+ expect(schedule.name).to eq nil
390
+ expect(schedule.saved?).to eq false
391
+ schedule.name = 'MY NAME'
392
+ expect(schedule.name).to eq 'MY NAME'
508
393
  end
509
394
 
510
395
  it 'should be able to return your name if specified during creation.' do
511
- begin
512
- schedule = @project.create_schedule(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param.merge(name: 'My schedule name'))
513
- expect(schedule.name).to eq 'My schedule name'
514
- ensure
515
- schedule && schedule.delete
516
- end
517
- end
518
- end
519
-
520
- describe '#trigger_id=' do
521
- it 'should be able to set trigger_id of the schedule.' do
522
- begin
523
- process = @project.processes(ProcessHelper::PROCESS_ID)
524
- schedule = process.create_schedule(@test_cron, @project_executable, @test_data_with_optional_param)
525
- expect(schedule.dirty).to be_false
526
- schedule.trigger_id = 'some_other_id'
527
- expect(schedule.dirty).to be_true
528
- ensure
529
- schedule && schedule.delete
530
- end
396
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param.merge(name: 'My schedule name'))
397
+ expect(schedule.name).to eq 'My schedule name'
531
398
  end
532
399
  end
533
400
 
534
401
  describe '#trigger_id=' do
535
402
  it 'should be able to set trigger_id of the schedule.' do
536
- begin
537
- process = @project.processes(ProcessHelper::PROCESS_ID)
538
- schedule = process.create_schedule(@test_cron, @project_executable, @test_data_with_optional_param)
539
- expect(schedule.dirty).to be_false
540
- schedule.trigger_id = 'some_other_id'
541
- expect(schedule.dirty).to be_true
542
- ensure
543
- schedule && schedule.delete
544
- end
403
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
404
+ expect(schedule.dirty).to be_truthy
405
+ schedule.trigger_id = 'some_other_id'
406
+ expect(schedule.dirty).to be_truthy
407
+ expect(schedule.trigger_id).to eq 'some_other_id'
545
408
  end
546
409
  end
547
410
 
548
411
  describe '#name=' do
549
412
  it 'should be able to set name of the schedule.' do
550
- begin
551
- process = @project.processes(ProcessHelper::PROCESS_ID)
552
- schedule = process.create_schedule(@test_cron, @project_executable, @test_data_with_optional_param)
553
- expect(schedule.name).to eq 'graph.grf'
554
- schedule.name = 'MY NAME'
555
- schedule.save
556
- schedule2 = process.schedules.find { |s| s.obj_id == schedule.obj_id }
557
- expect(schedule2.name).to eq 'MY NAME'
558
- ensure
559
- schedule && schedule.delete
560
- end
413
+ schedule = GoodData::Schedule.create(ProcessHelper::PROCESS_ID, @test_cron, @project_executable, @test_data_with_optional_param)
414
+ schedule.name = 'MY NAME'
415
+ expect(schedule.name).to eq 'MY NAME'
561
416
  end
562
417
  end
563
418
  end