gooddata 0.6.20 → 0.6.22

Sign up to get free protection for your applications and to get access to all the features.
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