rhoconnect 3.4.5 → 4.0.0.beta.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (337) hide show
  1. data/CHANGELOG.md +57 -3
  2. data/Gemfile +9 -7
  3. data/Gemfile.lock +37 -37
  4. data/Rakefile +18 -7
  5. data/bench/benchapp/Gemfile +1 -1
  6. data/bench/benchapp/config.ru +0 -3
  7. data/bench/benchapp/controllers/ruby/application.rb +17 -0
  8. data/bench/benchapp/controllers/ruby/application_controller.rb +17 -0
  9. data/bench/benchapp/controllers/ruby/mock_adapter_controller.rb +8 -0
  10. data/bench/benchapp/controllers/ruby/queue_mock_adapter_controller.rb +8 -0
  11. data/bench/benchapp/{sources → models/ruby}/mock_adapter.rb +1 -1
  12. data/bench/benchapp/{sources → models/ruby}/queue_mock_adapter.rb +0 -0
  13. data/bench/benchapp/spec/{sources → models/ruby}/mock_adapter_spec.rb +1 -1
  14. data/bench/benchapp/spec/{sources → models/ruby}/queue_mock_adapter_spec.rb +1 -1
  15. data/bench/benchapp/spec/spec_helper.rb +2 -2
  16. data/bench/blobapp/Gemfile +1 -1
  17. data/bench/blobapp/config.ru +0 -3
  18. data/bench/blobapp/controllers/ruby/application_controller.rb +17 -0
  19. data/bench/blobapp/controllers/ruby/blob_adapter_controller.rb +8 -0
  20. data/bench/blobapp/{sources → models/ruby}/blob_adapter.rb +9 -2
  21. data/bench/blobapp/spec/{sources → models/ruby}/blob_adapter_spec.rb +1 -1
  22. data/bench/blobapp/spec/spec_helper.rb +1 -1
  23. data/bench/lib/bench/cli.rb +1 -1
  24. data/bench/scripts/blob_cud_script.rb +1 -1
  25. data/bench/scripts/query_md_script.rb +1 -1
  26. data/bench/scripts/query_only_script.rb +1 -1
  27. data/bench/scripts/query_script.rb +1 -1
  28. data/bench/scripts/test_query_script.rb +7 -1
  29. data/bench/spec/mock_adapter_spec.rb +1 -1
  30. data/bench/spec/result_spec.rb +3 -3
  31. data/bin/rhoconnect +5 -3
  32. data/commands/dtach/dtach_install.rb +2 -2
  33. data/commands/execute.rb +8 -3
  34. data/commands/generators/app.rb +3 -3
  35. data/commands/generators/controller.rb +6 -0
  36. data/commands/generators/model.rb +6 -0
  37. data/commands/generators/source.rb +3 -3
  38. data/commands/generators/update.rb +1 -1
  39. data/commands/redis/redis_about.rb +2 -2
  40. data/commands/redis/redis_download.rb +1 -1
  41. data/commands/redis/redis_install.rb +4 -3
  42. data/commands/redis/redis_restart.rb +4 -4
  43. data/commands/redis/redis_start.rb +5 -4
  44. data/commands/redis/redis_startbg.rb +5 -4
  45. data/commands/redis/redis_status.rb +13 -0
  46. data/commands/redis/redis_stop.rb +3 -3
  47. data/commands/rhoconnect/config.rb +28 -16
  48. data/commands/rhoconnect/flushdb.rb +1 -2
  49. data/commands/rhoconnect/get_token.rb +15 -11
  50. data/commands/rhoconnect/restart.rb +13 -5
  51. data/commands/rhoconnect/set_admin_password.rb +8 -8
  52. data/commands/rhoconnect/start.rb +74 -16
  53. data/commands/rhoconnect/startbg.rb +1 -1
  54. data/commands/rhoconnect/startdebug.rb +1 -1
  55. data/commands/rhoconnect/stop.rb +13 -1
  56. data/commands/rhoconnect/web.rb +5 -5
  57. data/commands/rhoconnect_console/console.rb +7 -5
  58. data/commands/{rhoconnect → rhoconnect_spec}/spec.rb +0 -0
  59. data/commands/rhoconnect_war/war.rb +9 -9
  60. data/commands/utilities/blank_app.ru +56 -0
  61. data/commands/utilities/redis_runner.rb +54 -19
  62. data/doc/authentication.txt +80 -6
  63. data/doc/blob-sync.txt +104 -97
  64. data/doc/bulk-sync.txt +1 -1
  65. data/doc/client-java.txt +3 -3
  66. data/doc/client-objc.txt +2 -2
  67. data/doc/client.txt +4 -4
  68. data/doc/command-line.txt +105 -200
  69. data/doc/data-partitioning.txt +40 -0
  70. data/doc/deploying.txt +249 -77
  71. data/doc/extending-rhoconnect-server.txt +40 -57
  72. data/doc/heroku-addon.txt +2 -0
  73. data/doc/install.txt +45 -95
  74. data/doc/introduction.txt +1 -1
  75. data/doc/java-plugin.txt +365 -190
  76. data/doc/metadata.txt +1 -1
  77. data/doc/migration.txt +108 -142
  78. data/doc/preparing-production.txt +1 -1
  79. data/doc/push-backend-setup.txt +2 -0
  80. data/doc/push-client-setup-android.txt +78 -0
  81. data/doc/push-client-setup-bb.txt +81 -0
  82. data/doc/push-client-setup-ios.txt +70 -0
  83. data/doc/push-client-setup-rps.txt +200 -0
  84. data/doc/push-client-setup.txt +63 -66
  85. data/doc/push-server-setup.txt +67 -40
  86. data/doc/push-testing.txt +29 -0
  87. data/doc/push.txt +21 -6
  88. data/doc/rest-api.txt +128 -55
  89. data/doc/rhoconnect-redis-stack.txt +120 -0
  90. data/doc/settings.txt +4 -12
  91. data/doc/source-adapters-intro.txt +28 -0
  92. data/doc/source-adapters.txt +235 -272
  93. data/doc/stats-middleware.txt +9 -29
  94. data/doc/supported-platforms.txt +21 -30
  95. data/doc/testing.txt +40 -42
  96. data/doc/tutorial.txt +72 -57
  97. data/examples/simple/Gemfile +1 -1
  98. data/examples/simple/application.rb +4 -5
  99. data/examples/simple/my_server.rb +2 -2
  100. data/examples/simple/settings/settings.yml +1 -1
  101. data/generators/rhoconnect.rb +151 -50
  102. data/generators/templates/application/Gemfile +1 -1
  103. data/generators/templates/application/Rakefile +3 -3
  104. data/generators/templates/application/config.ru +1 -4
  105. data/generators/templates/application/controllers/application_controller.rb +17 -0
  106. data/generators/templates/application/controllers/js/application_controller.js +14 -0
  107. data/generators/templates/application/controllers/ruby/application_controller.rb +17 -0
  108. data/generators/templates/application/package.json +8 -0
  109. data/generators/templates/application/rcgemfile +2 -5
  110. data/generators/templates/application/settings/settings.yml +3 -3
  111. data/generators/templates/application/spec/application_controller_spec.rb +23 -0
  112. data/generators/templates/application/spec/js_spec.rb +25 -0
  113. data/generators/templates/application/spec/spec_helper.rb +21 -7
  114. data/generators/templates/source/controllers/js/controller.js +7 -0
  115. data/generators/templates/source/controllers/ruby/controller.rb +8 -0
  116. data/generators/templates/source/controllers/ruby/controller_spec.rb +27 -0
  117. data/generators/templates/source/models/js/model.js +46 -0
  118. data/generators/templates/source/{source_adapter.rb → models/ruby/model.rb} +15 -10
  119. data/generators/templates/source/{source_spec.rb → models/ruby/model_spec.rb} +1 -1
  120. data/install.sh +5 -5
  121. data/installer/unix-like/create_texts.rb +2 -2
  122. data/installer/unix-like/rho_connect_install_constants.rb +2 -2
  123. data/installer/unix-like/rho_connect_install_utilities.rb +1 -1
  124. data/installer/utils/constants.rb +4 -4
  125. data/js-adapters/ballroom.js +216 -0
  126. data/js-adapters/node.rb +52 -0
  127. data/js-adapters/node_channel.rb +181 -0
  128. data/js-adapters/request.js +27 -0
  129. data/js-adapters/response.js +57 -0
  130. data/js-adapters/rhoconnect_helpers.js +60 -0
  131. data/js-adapters/router.js +60 -0
  132. data/js-adapters/server.js +5 -0
  133. data/lib/rhoconnect/api/app/ans_login.rb +3 -3
  134. data/lib/rhoconnect/api/app/bulk_data.rb +10 -10
  135. data/lib/rhoconnect/api/app/fast_delete.rb +11 -10
  136. data/lib/rhoconnect/api/app/fast_insert.rb +11 -10
  137. data/lib/rhoconnect/api/app/fast_update.rb +11 -10
  138. data/lib/rhoconnect/api/app/login.rb +5 -5
  139. data/lib/rhoconnect/api/app/push_deletes.rb +12 -11
  140. data/lib/rhoconnect/api/app/push_objects.rb +12 -11
  141. data/lib/rhoconnect/api/app/query.rb +8 -7
  142. data/lib/rhoconnect/api/app/queue_updates.rb +98 -94
  143. data/lib/rhoconnect/api/app/search.rb +8 -7
  144. data/lib/rhoconnect/api/client/client_get_db_doc.rb +5 -5
  145. data/lib/rhoconnect/api/client/client_set_db_doc.rb +8 -8
  146. data/lib/rhoconnect/api/client/create.rb +7 -7
  147. data/lib/rhoconnect/api/client/get_client_params.rb +4 -4
  148. data/lib/rhoconnect/api/client/list_client_docs.rb +17 -17
  149. data/lib/rhoconnect/api/client/register.rb +12 -12
  150. data/lib/rhoconnect/api/client/reset.rb +5 -5
  151. data/lib/rhoconnect/api/readstate/set_refresh_time.rb +9 -9
  152. data/lib/rhoconnect/api/source/get_source_params.rb +4 -4
  153. data/lib/rhoconnect/api/source/list_sources.rb +16 -16
  154. data/lib/rhoconnect/api/source/update_source_params.rb +6 -6
  155. data/lib/rhoconnect/api/store/get_db_doc.rb +4 -4
  156. data/lib/rhoconnect/api/store/set_db_doc.rb +7 -7
  157. data/lib/rhoconnect/api/system/get_adapter.rb +4 -4
  158. data/lib/rhoconnect/api/system/get_license_info.rb +8 -8
  159. data/lib/rhoconnect/api/system/login.rb +15 -15
  160. data/lib/rhoconnect/api/system/reset.rb +11 -11
  161. data/lib/rhoconnect/api/system/save_adapter.rb +4 -4
  162. data/lib/rhoconnect/api/system/stats.rb +22 -22
  163. data/lib/rhoconnect/api/user/create_user.rb +7 -7
  164. data/lib/rhoconnect/api/user/delete_client.rb +6 -6
  165. data/lib/rhoconnect/api/user/delete_user.rb +11 -10
  166. data/lib/rhoconnect/api/user/list_clients.rb +4 -4
  167. data/lib/rhoconnect/api/user/list_source_docs.rb +10 -10
  168. data/lib/rhoconnect/api/user/list_users.rb +3 -3
  169. data/lib/rhoconnect/api/user/ping.rb +3 -3
  170. data/lib/rhoconnect/api/user/show_user.rb +3 -3
  171. data/lib/rhoconnect/api/user/update_user.rb +5 -5
  172. data/lib/rhoconnect/api/user/user_get_db_doc.rb +5 -5
  173. data/lib/rhoconnect/api/user/user_set_db_doc.rb +10 -10
  174. data/lib/rhoconnect/api_token.rb +5 -6
  175. data/lib/rhoconnect/app.rb +6 -46
  176. data/lib/rhoconnect/application/init.rb +5 -2
  177. data/lib/rhoconnect/async.rb +76 -39
  178. data/lib/rhoconnect/bulk_data/bulk_data.rb +6 -4
  179. data/lib/rhoconnect/client.rb +59 -9
  180. data/lib/rhoconnect/condition/admin_required.rb +27 -0
  181. data/lib/rhoconnect/condition/client_required.rb +50 -0
  182. data/lib/rhoconnect/condition/login_required.rb +22 -0
  183. data/lib/rhoconnect/condition/source_required.rb +49 -0
  184. data/lib/rhoconnect/condition/verbs.rb +17 -0
  185. data/lib/rhoconnect/condition/verify_success.rb +19 -0
  186. data/lib/rhoconnect/controller/app_base.rb +74 -0
  187. data/lib/rhoconnect/controller/base.rb +68 -0
  188. data/lib/rhoconnect/controller/clients_controller.rb +79 -0
  189. data/lib/rhoconnect/controller/dynamic_adapter_controller.rb +93 -0
  190. data/lib/rhoconnect/controller/js_base.rb +124 -0
  191. data/lib/rhoconnect/controller/read_state_controller.rb +22 -0
  192. data/lib/rhoconnect/controller/source_adapter_base.rb +14 -0
  193. data/lib/rhoconnect/controller/sources_controller.rb +44 -0
  194. data/lib/rhoconnect/controller/store_controller.rb +25 -0
  195. data/lib/rhoconnect/controller/system_controller.rb +67 -0
  196. data/lib/rhoconnect/controller/users_controller.rb +99 -0
  197. data/lib/rhoconnect/db_adapter.rb +1 -3
  198. data/lib/rhoconnect/document.rb +159 -50
  199. data/lib/rhoconnect/handler/authenticate/execute_methods.rb +77 -0
  200. data/lib/rhoconnect/handler/authenticate/runner.rb +49 -0
  201. data/lib/rhoconnect/handler/authenticate.rb +3 -0
  202. data/lib/rhoconnect/handler/bulk_data.rb +28 -0
  203. data/lib/rhoconnect/handler/changes/engine.rb +271 -0
  204. data/lib/rhoconnect/handler/changes/execute_methods.rb +88 -0
  205. data/lib/rhoconnect/handler/changes/pass_through_runner.rb +11 -0
  206. data/lib/rhoconnect/handler/changes/runner.rb +53 -0
  207. data/lib/rhoconnect/handler/changes.rb +31 -0
  208. data/lib/rhoconnect/handler/helpers/auth_method.rb +29 -0
  209. data/lib/rhoconnect/handler/helpers/binding.rb +18 -0
  210. data/lib/rhoconnect/handler/helpers/bulk_data.rb +53 -0
  211. data/lib/rhoconnect/handler/helpers/source_job.rb +14 -0
  212. data/lib/rhoconnect/handler/helpers.rb +4 -0
  213. data/lib/rhoconnect/handler/plugin_callbacks/execute_methods.rb +99 -0
  214. data/lib/rhoconnect/handler/plugin_callbacks/runner.rb +28 -0
  215. data/lib/rhoconnect/handler/plugin_callbacks.rb +67 -0
  216. data/lib/rhoconnect/handler/query/engine.rb +93 -0
  217. data/lib/rhoconnect/handler/query/execute_methods.rb +21 -0
  218. data/lib/rhoconnect/handler/query/pass_through_runner.rb +35 -0
  219. data/lib/rhoconnect/handler/query/runner.rb +270 -0
  220. data/lib/rhoconnect/handler/query.rb +19 -0
  221. data/lib/rhoconnect/handler/search/engine.rb +60 -0
  222. data/lib/rhoconnect/handler/search/execute_methods.rb +32 -0
  223. data/lib/rhoconnect/handler/search/pass_through_runner.rb +18 -0
  224. data/lib/rhoconnect/handler/search/runner.rb +104 -0
  225. data/lib/rhoconnect/handler/search.rb +26 -0
  226. data/lib/rhoconnect/handler/sync.rb +29 -0
  227. data/lib/rhoconnect/jobs/source_job.rb +13 -4
  228. data/lib/rhoconnect/js_adapter.rb +79 -0
  229. data/lib/rhoconnect/license.rb +10 -2
  230. data/lib/rhoconnect/middleware/current_user.rb +14 -1
  231. data/lib/rhoconnect/middleware/helpers.rb +10 -93
  232. data/lib/rhoconnect/middleware/x_domain_session_wrapper.rb +1 -1
  233. data/lib/rhoconnect/model/base.rb +229 -0
  234. data/lib/rhoconnect/model/dynamic_adapter_model.rb +90 -0
  235. data/lib/rhoconnect/model/js_base.rb +121 -0
  236. data/lib/rhoconnect/ping/android.rb +1 -1
  237. data/lib/rhoconnect/predefined_adapters/bench_adapter.rb +7 -4
  238. data/lib/rhoconnect/read_state.rb +3 -3
  239. data/lib/rhoconnect/server.rb +159 -190
  240. data/lib/rhoconnect/source.rb +100 -11
  241. data/lib/rhoconnect/stats/record.rb +10 -10
  242. data/lib/rhoconnect/store.rb +905 -591
  243. data/lib/rhoconnect/{model.rb → store_orm.rb} +53 -115
  244. data/lib/rhoconnect/tasks.rb +18 -4
  245. data/lib/rhoconnect/test_methods.rb +30 -17
  246. data/lib/rhoconnect/user.rb +35 -17
  247. data/lib/rhoconnect/utilities.rb +1 -1
  248. data/lib/rhoconnect/version.rb +2 -2
  249. data/lib/rhoconnect/web-console/server.rb +29 -14
  250. data/lib/rhoconnect/web-console/views/home.js +10 -10
  251. data/lib/rhoconnect/web-console/views/new_ping.js +1 -1
  252. data/lib/rhoconnect.rb +120 -51
  253. data/rhoconnect.gemspec +4 -3
  254. data/spec/api/api_helper.rb +1 -6
  255. data/spec/api/app/fast_delete_spec.rb +4 -4
  256. data/spec/api/app/fast_insert_spec.rb +4 -4
  257. data/spec/api/app/fast_update_spec.rb +8 -8
  258. data/spec/api/app/push_deletes_spec.rb +2 -2
  259. data/spec/api/app/push_objects_spec.rb +5 -5
  260. data/spec/api/client/client_get_db_doc_spec.rb +6 -4
  261. data/spec/api/client/client_set_db_doc_spec.rb +3 -2
  262. data/spec/api/client/get_client_params_spec.rb +14 -0
  263. data/spec/api/client/list_client_docs_spec.rb +30 -20
  264. data/spec/api/client/reset_spec.rb +36 -0
  265. data/spec/api/source/get_source_params_spec.rb +23 -17
  266. data/spec/api/system/get_license_info_spec.rb +0 -20
  267. data/spec/api/system/login_spec.rb +8 -0
  268. data/spec/api/system/reset_spec.rb +0 -1
  269. data/spec/api/system/stats_spec.rb +5 -5
  270. data/spec/api/user/create_user_spec.rb +14 -6
  271. data/spec/api/user/delete_user_spec.rb +20 -18
  272. data/spec/api/user/list_users_spec.rb +5 -6
  273. data/spec/api/user/update_user_spec.rb +5 -4
  274. data/spec/apps/rhotestapp/config.ru +16 -1
  275. data/spec/apps/rhotestapp/controllers/js/js_sample_controller.js +23 -0
  276. data/spec/apps/rhotestapp/controllers/js/sample2_controller.js +32 -0
  277. data/spec/apps/rhotestapp/controllers/ruby/application_controller.rb +21 -0
  278. data/spec/apps/rhotestapp/controllers/ruby/sample_adapter_controller.rb +8 -0
  279. data/spec/apps/rhotestapp/models/js/js_sample.js +55 -0
  280. data/spec/apps/rhotestapp/models/js/sample2.js +25 -0
  281. data/spec/apps/rhotestapp/{sources → models/ruby}/base_adapter.rb +0 -0
  282. data/spec/apps/rhotestapp/{sources → models/ruby}/fixed_schema_adapter.rb +0 -0
  283. data/spec/apps/rhotestapp/{sources → models/ruby}/other_adapter.rb +0 -0
  284. data/spec/apps/rhotestapp/{sources → models/ruby}/sample_adapter.rb +0 -0
  285. data/spec/apps/rhotestapp/{sources → models/ruby}/simple_adapter.rb +2 -2
  286. data/spec/apps/rhotestapp/{sources → models/ruby}/sub_adapter.rb +0 -0
  287. data/spec/apps/rhotestapp/settings/settings.yml +0 -1
  288. data/spec/bulk_data/bulk_data_spec.rb +20 -5
  289. data/spec/cli/cli_spec.rb +83 -0
  290. data/spec/client_spec.rb +20 -17
  291. data/spec/client_sync_spec.rb +244 -406
  292. data/spec/controllers/js_base_spec.rb +89 -0
  293. data/spec/doc/doc_spec.rb +18 -18
  294. data/spec/document_spec.rb +29 -13
  295. data/spec/dynamic_adapter_spec.rb +6 -6
  296. data/spec/generator/generator_spec.rb +7 -4
  297. data/spec/jobs/bulk_data_job_spec.rb +14 -10
  298. data/spec/jobs/source_job_spec.rb +8 -8
  299. data/spec/license_spec.rb +5 -2
  300. data/spec/models/js_model_spec.rb +39 -0
  301. data/spec/node_spec.rb +42 -0
  302. data/spec/perf/store_perf_spec.rb +67 -12
  303. data/spec/ping/android_spec.rb +1 -1
  304. data/spec/read_state_spec.rb +1 -1
  305. data/spec/rhoconnect_spec.rb +1 -1
  306. data/spec/server/cors_spec.rb +14 -18
  307. data/spec/server/server_spec.rb +265 -88
  308. data/spec/server/stats_spec.rb +1 -1
  309. data/spec/source_adapter_spec.rb +54 -27
  310. data/spec/source_spec.rb +8 -3
  311. data/spec/source_sync_spec.rb +538 -468
  312. data/spec/spec_helper.rb +35 -4
  313. data/spec/stats/record_spec.rb +10 -10
  314. data/spec/{model_spec.rb → store_orm_spec.rb} +56 -54
  315. data/spec/store_spec.rb +159 -179
  316. data/spec/support/shared_examples.rb +36 -27
  317. data/spec/sync_states_spec.rb +40 -33
  318. data/spec/test_methods_spec.rb +18 -14
  319. data/spec/user_spec.rb +17 -30
  320. metadata +156 -52
  321. data/bench/benchapp/application.rb +0 -39
  322. data/bench/blobapp/application.rb +0 -44
  323. data/commands/rhoconnect/clean_start.rb +0 -9
  324. data/commands/rhoconnect/create_user.rb +0 -18
  325. data/commands/rhoconnect/delete_device.rb +0 -9
  326. data/commands/rhoconnect/delete_user.rb +0 -8
  327. data/commands/rhoconnect/reset.rb +0 -16
  328. data/commands/rhoconnect/reset_refresh.rb +0 -11
  329. data/generators/templates/application/application.rb +0 -43
  330. data/lib/rhoconnect/client_sync.rb +0 -434
  331. data/lib/rhoconnect/dynamic_adapter.rb +0 -91
  332. data/lib/rhoconnect/middleware/admin_user.rb +0 -23
  333. data/lib/rhoconnect/middleware/current_request.rb +0 -16
  334. data/lib/rhoconnect/middleware/login_required.rb +0 -22
  335. data/lib/rhoconnect/source_adapter.rb +0 -132
  336. data/lib/rhoconnect/source_sync.rb +0 -464
  337. data/spec/apps/rhotestapp/application.rb +0 -23
@@ -4,7 +4,11 @@ describe "Sync Server States" do
4
4
  it_behaves_like "SharedRhoconnectHelper", :rhoconnect_data => true do
5
5
  before(:each) do
6
6
  @s = Source.load(@s_fields[:name],@s_params)
7
- @cs = ClientSync.new(@s,@c,2)
7
+ @model = Rhoconnect::Model::Base.create(@s)
8
+ rhcud = lambda { @model.send(params[:operation].to_sym, params["#{params[:operation]}_object".to_sym]) }
9
+ @sscud = Rhoconnect::Handler::Changes::Runner.new(['create', 'update', 'delete'], @model, @c, rhcud, {})
10
+ rh = lambda { @model.query(params[:query]) }
11
+ @ssq = Rhoconnect::Handler::Query::Runner.new(@model, @c, rh, {})
8
12
  end
9
13
 
10
14
  describe "client creates objects" do
@@ -13,34 +17,36 @@ describe "Sync Server States" do
13
17
  @product1['link'] = 'temp1'
14
18
  params = {'create'=>{'1'=>@product1}}
15
19
  backend_data = {'backend_id'=>@product1}
16
- set_state(@cs.client.docname(:cd_size) => 0,
17
- @s.docname(:md_size) => 0)
20
+ set_doc_state(@sscud.client, :cd_size => 0)
21
+ set_doc_state(@s, :md_size => 0)
18
22
  @s.read_state.refresh_time = Time.now.to_i + 3600
19
- @cs.receive_cud(params)
20
- verify_result(@c.docname(:create) => {},
21
- @c.docname(:cd_size) => "1",
22
- @s.docname(:md_size) => "1",
23
- @c.docname(:cd) => backend_data,
24
- @c.docname(:create_links) => {'1'=>{'l'=>'backend_id'}},
25
- @s.docname(:md) => backend_data)
23
+ @sscud.params = params
24
+ @sscud.run
25
+ verify_source_queue_data(@s, :create => [])
26
+ verify_doc_result(@c, {:cd_size => "1",
27
+ :cd => backend_data,
28
+ :create_links => {'1'=>{'l'=>'backend_id'}}})
29
+ verify_doc_result(@s, {:md_size => "1",
30
+ :md => backend_data})
26
31
  end
27
32
 
28
33
  it "should create object and send link to client" do
29
34
  @product1['link'] = 'temp1'
30
35
  params = {'create'=>{'1'=>@product1}}
31
36
  backend_data = {'backend_id'=>@product1}
32
- set_state(@cs.client.docname(:cd_size) => 0,
33
- @s.docname(:md_size) => 0)
37
+ set_doc_state(@sscud.client, :cd_size => 0)
38
+ set_doc_state(@s, :md_size => 0)
34
39
  @s.read_state.refresh_time = Time.now.to_i + 3600
35
- @cs.receive_cud(params)
36
- verify_result(@c.docname(:create) => {},
37
- @c.docname(:cd_size) => "1",
38
- @s.docname(:md_size) => "1",
39
- @c.docname(:cd) => backend_data,
40
- @c.docname(:create_links) => {'1'=>{'l'=>'backend_id'}},
41
- @s.docname(:md) => backend_data)
42
- res = @cs.send_cud
43
- res.should == [{'version'=>ClientSync::SYNC_VERSION},{"token"=>res[1]['token']},
40
+ @sscud.params = params
41
+ @sscud.run
42
+ verify_source_queue_data(@s, :create => [])
43
+ verify_doc_result(@c, {:cd_size => "1",
44
+ :cd => backend_data,
45
+ :create_links => {'1'=>{'l'=>'backend_id'}}})
46
+ verify_doc_result(@s, {:md_size => "1",
47
+ :md => backend_data})
48
+ res = @ssq.run
49
+ res.should == [{'version'=>Rhoconnect::SYNC_VERSION},{"token"=>res[1]['token']},
44
50
  {"count"=>0}, {"progress_count"=>0}, {"total_count"=>1},
45
51
  {"links"=> {'1'=>{'l'=>'backend_id'}}}]
46
52
 
@@ -52,19 +58,20 @@ describe "Sync Server States" do
52
58
  params = {'delete'=>{'1'=>@product1}}
53
59
  data = {'1'=>@product1,'2'=>@product2,'3'=>@product3}
54
60
  expected = {'2'=>@product2,'3'=>@product3}
55
- set_state(@cs.client.docname(:cd) => data,
56
- @cs.client.docname(:cd_size) => data.size,
57
- @s.docname(:md) => data,
58
- @s.docname(:md_size) => data.size)
61
+ set_doc_state(@sscud.client, {:cd => data,
62
+ :cd_size => data.size})
63
+ set_doc_state(@s, {:md => data,
64
+ :md_size => data.size})
59
65
  @s.read_state.refresh_time = Time.now.to_i + 3600
60
- @cs.receive_cud(params)
61
- verify_result(@cs.client.docname(:delete) => {},
62
- @cs.client.docname(:cd) => expected,
63
- @s.docname(:md) => expected,
64
- @cs.client.docname(:delete_page) => {},
65
- @cs.client.docname(:cd_size) => "2",
66
- @s.docname(:md_size) => "2",
67
- 'test_delete_storage' => {'1'=>@product1})
66
+ @sscud.params = params
67
+ @sscud.run
68
+ verify_source_queue_data(@s, :delete => [])
69
+ verify_doc_result(@sscud.client, {:cd => expected,
70
+ :delete_page => {},
71
+ :cd_size => "2"})
72
+ verify_doc_result(@s, {:md => expected,
73
+ :md_size => "2"})
74
+ verify_result('test_delete_storage' => {'1'=>@product1})
68
75
  end
69
76
  end
70
77
  end
@@ -17,8 +17,12 @@ describe "TestMethods" do
17
17
  it "should setup_test_for an adapter and user" do
18
18
  @u.is_a?(User).should == true
19
19
  @s.is_a?(Source).should == true
20
- @ss.is_a?(SourceSync).should == true
21
- @ss.adapter.is_a?(SampleAdapter).should == true
20
+ @query_engine.is_a?(Rhoconnect::Handler::Query::Engine).should == true
21
+ @cud_engine.is_a?(Rhoconnect::Handler::Changes::Engine).should == true
22
+ @search_engine.is_a?(Rhoconnect::Handler::Search::Engine).should == true
23
+ @query_engine.model.is_a?(SampleAdapter).should == true
24
+ @cud_engine.model.is_a?(SampleAdapter).should == true
25
+ @search_engine.model.is_a?(SampleAdapter).should == true
22
26
  @u.login.should == 'user1'
23
27
  @s.name.should == 'SampleAdapter'
24
28
  @c.id.size.should == 32
@@ -33,7 +37,7 @@ describe "TestMethods" do
33
37
  mock_schema_method([SampleAdapter]) do
34
38
  expected = {'1'=>@product1,'2'=>@product2}
35
39
  set_state('test_db_storage' => expected)
36
- @ss.process_query
40
+ @query_engine.do_sync
37
41
  JSON.parse(test_schema).should == JSON.parse(schema_string)
38
42
  end
39
43
  end
@@ -42,7 +46,7 @@ describe "TestMethods" do
42
46
  mock_metadata_method([SampleAdapter]) do
43
47
  expected = {'1'=>@product1,'2'=>@product2}
44
48
  set_state('test_db_storage' => expected)
45
- @ss.process_query
49
+ @query_engine.do_sync
46
50
  JSON.parse(test_metadata).should == JSON.parse(foo_bar)
47
51
  end
48
52
  end
@@ -62,7 +66,7 @@ describe "TestMethods" do
62
66
 
63
67
  it "should include query_errors helper" do
64
68
  expected = {"query-error"=>{'message'=>'failed'}}
65
- set_state(@s.docname(:errors) => expected)
69
+ set_doc_state(@s, :errors => expected)
66
70
  query_errors.should == expected
67
71
  end
68
72
 
@@ -78,55 +82,55 @@ describe "TestMethods" do
78
82
 
79
83
  it "should include create_errors helper" do
80
84
  expected = {"create-error"=>{'message'=>'failed'}}
81
- set_state(@c.docname(:create_errors) => expected)
85
+ set_doc_state(@c, :create_errors => expected)
82
86
  create_errors.should == expected
83
87
  end
84
88
 
85
89
  it "should include test_update helper" do
86
90
  record = {'4'=> { 'price' => '199.99' }}
87
91
  test_update(record)
88
- verify_zresult(@s.docname(:update) => [])
92
+ verify_source_queue_data(@s, :update => [])
89
93
  end
90
94
 
91
95
  it "should include test_update helper when pass through" do
92
96
  record = {'4'=> { 'price' => '199.99' }}
93
97
  @s.pass_through = 'true'
94
98
  test_update(record).should == {'processed' => ["4"]}.to_json
95
- verify_zresult(@s.docname(:update) => [])
99
+ verify_source_queue_data(@s, :update => [])
96
100
  end
97
101
 
98
102
  it "should include update_errors helper" do
99
103
  expected = {"update-error"=>{'message'=>'failed'}}
100
- set_state(@c.docname(:update_errors) => expected)
104
+ set_doc_state(@c, :update_errors => expected)
101
105
  update_errors.should == expected
102
106
  end
103
107
 
104
108
  it "should include test_delete helper" do
105
109
  record = {'4'=> { 'price' => '199.99' }}
106
110
  test_delete(record)
107
- verify_zresult(@s.docname(:delete) => [])
111
+ verify_source_queue_data(@s, :delete => [])
108
112
  end
109
113
 
110
114
  it "should include test_delete helper when pass through" do
111
115
  record = {'4'=> { 'price' => '199.99' }}
112
116
  @s.pass_through = 'true'
113
117
  test_delete(record).should == {'processed' => ["4"]}.to_json
114
- verify_zresult(@s.docname(:delete) => [])
118
+ verify_source_queue_data(@s, :delete => [])
115
119
  end
116
120
 
117
121
  it "should include delete_errors helper" do
118
122
  expected = {"delete-error"=>{'message'=>'failed'}}
119
- set_state(@c.docname(:delete_errors) => expected)
123
+ set_doc_state(@c, :delete_errors => expected)
120
124
  delete_errors.should == expected
121
125
  end
122
126
 
123
127
  it "should include md helper" do
124
- set_state(@s.docname(:md) => @data)
128
+ set_doc_state(@s, :md => @data)
125
129
  md.should == @data
126
130
  end
127
131
 
128
132
  it "should include cd helper" do
129
- set_state(@c.docname(:cd) => @data)
133
+ set_doc_state(@c, :cd => @data)
130
134
  cd.should == @data
131
135
  end
132
136
 
data/spec/user_spec.rb CHANGED
@@ -6,20 +6,20 @@ STATS_RECORD_SIZE = 8 unless defined? STATS_RECORD_SIZE
6
6
  describe "User" do
7
7
  it_behaves_like "SharedRhoconnectHelper", :rhoconnect_data => true do
8
8
  it "should not allow user created with reserved login" do
9
- Store.get_value('user:count').should == "1"
9
+ Store.get_value('user:count').should == "2"
10
10
  lambda {
11
11
  User.create({:login => '__shared__'})
12
12
  }.should raise_error(ArgumentError, 'Reserved user id __shared__')
13
- Store.get_value('user:count').should == "1"
13
+ Store.get_value('user:count').should == "2"
14
14
  end
15
-
16
- it "should create user with fields" do
15
+
16
+ it "should load user with fields" do
17
17
  @u.id.should == @u_fields[:login]
18
18
  @u1 = User.load(@u_fields[:login])
19
19
  @u1.id.should == @u.id
20
20
  @u1.login.should == @u_fields[:login]
21
21
  @u1.email.should == @u_fields[:email]
22
- Store.get_value('user:count').should == "1"
22
+ Store.get_value('user:count').should == "2"
23
23
  end
24
24
 
25
25
  it "should delete seats for user's clients" do
@@ -44,18 +44,17 @@ describe "User" do
44
44
  end
45
45
 
46
46
  it "should use token provisioned in settings if one" do
47
- token = @u.create_token
47
+ token = User.load('rhoadmin').token_id
48
48
  token.should == Rhoconnect.api_token
49
49
  ApiToken.is_exist?(token).should == true
50
50
  end
51
-
51
+
52
52
  it "should delete token if one exists" do
53
- token = @u.create_token
54
- token.should == Rhoconnect.api_token
55
- ApiToken.is_exist?(token).should == true
56
53
  token = @u.create_token
57
54
  ApiToken.is_exist?(token).should == true
58
- @u.delete
55
+ token2 = @u.create_token
56
+ ApiToken.is_exist?(token).should == false
57
+ ApiToken.is_exist?(token2).should == true
59
58
  end
60
59
 
61
60
  it "should assign token to existing user" do
@@ -83,9 +82,9 @@ describe "User" do
83
82
 
84
83
  it "should delete user and user clients" do
85
84
  @c.put_data(:cd,@data)
86
- cid = @c.id
85
+ cid = @c.id
87
86
  @u.delete
88
- Store.get_value('user:count').should == "0"
87
+ Store.get_value('user:count').should == "1"
89
88
  User.is_exist?(@u_fields[:login]).should == false
90
89
  Client.is_exist?(cid).should == false
91
90
  @c.get_data(:cd).should == {}
@@ -103,24 +102,12 @@ describe "User" do
103
102
  Store.stub!(:lock).and_yield
104
103
  end
105
104
 
106
- before(:each) do
107
- Rhoconnect::Stats::Record.reset('users')
108
- end
109
-
110
- after(:each) do
111
- Rhoconnect::Stats::Record.reset('users')
112
- end
113
-
114
- after(:all) do
115
- Store.flash_data('stat:users*')
116
- end
117
-
118
105
  it "should increment user stats on create" do
119
106
  Time.stub!(:now).and_return(10)
120
107
  Rhoconnect.stats = true
121
108
  User.create({:login => 'testuser2'})
122
- Rhoconnect::Stats::Record.range('users',0,-1).should == ["2:10"]
123
- Store.get_value('user:count').should == "2"
109
+ Rhoconnect::Stats::Record.range('users',0,-1).should == ["3:10"]
110
+ Store.get_value('user:count').should == "3"
124
111
  Rhoconnect.stats = false
125
112
  end
126
113
 
@@ -128,10 +115,10 @@ describe "User" do
128
115
  Time.stub!(:now).and_return(10)
129
116
  Rhoconnect.stats = true
130
117
  u = User.create({:login => 'testuser1'})
131
- Rhoconnect::Stats::Record.range('users',0,-1).should == ["2:10"]
118
+ Rhoconnect::Stats::Record.range('users',0,-1).should == ["3:10"]
132
119
  u.delete
133
- Rhoconnect::Stats::Record.range('users',0,-1).should == ["1:10"]
134
- Store.get_value('user:count').should == "1"
120
+ Rhoconnect::Stats::Record.range('users',0,-1).should == ["2:10"]
121
+ Store.get_value('user:count').should == "2"
135
122
  Rhoconnect.stats = false
136
123
  end
137
124
  end