elasticsearch-dsl 0.1.6 → 0.1.10

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 (383) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +30 -8
  3. data/LICENSE.txt +199 -10
  4. data/README.md +62 -27
  5. data/Rakefile +29 -17
  6. data/elasticsearch-dsl.gemspec +40 -22
  7. data/lib/elasticsearch/dsl/search/aggregation.rb +21 -2
  8. data/lib/elasticsearch/dsl/search/aggregations/avg.rb +18 -1
  9. data/lib/elasticsearch/dsl/search/aggregations/cardinality.rb +18 -1
  10. data/lib/elasticsearch/dsl/search/aggregations/children.rb +18 -1
  11. data/lib/elasticsearch/dsl/search/aggregations/composite.rb +60 -0
  12. data/lib/elasticsearch/dsl/search/aggregations/date_histogram.rb +23 -5
  13. data/lib/elasticsearch/dsl/search/aggregations/date_range.rb +18 -1
  14. data/lib/elasticsearch/dsl/search/aggregations/extended_stats.rb +18 -1
  15. data/lib/elasticsearch/dsl/search/aggregations/filter.rb +18 -1
  16. data/lib/elasticsearch/dsl/search/aggregations/filters.rb +18 -1
  17. data/lib/elasticsearch/dsl/search/aggregations/geo_bounds.rb +18 -1
  18. data/lib/elasticsearch/dsl/search/aggregations/geo_distance.rb +18 -1
  19. data/lib/elasticsearch/dsl/search/aggregations/geohash_grid.rb +18 -1
  20. data/lib/elasticsearch/dsl/search/aggregations/global.rb +17 -0
  21. data/lib/elasticsearch/dsl/search/aggregations/histogram.rb +18 -1
  22. data/lib/elasticsearch/dsl/search/aggregations/ip_range.rb +18 -1
  23. data/lib/elasticsearch/dsl/search/aggregations/max.rb +18 -1
  24. data/lib/elasticsearch/dsl/search/aggregations/min.rb +18 -1
  25. data/lib/elasticsearch/dsl/search/aggregations/missing.rb +17 -0
  26. data/lib/elasticsearch/dsl/search/aggregations/nested.rb +18 -1
  27. data/lib/elasticsearch/dsl/search/aggregations/percentile_ranks.rb +18 -1
  28. data/lib/elasticsearch/dsl/search/aggregations/percentiles.rb +18 -1
  29. data/lib/elasticsearch/dsl/search/aggregations/pipeline/avg_bucket.rb +17 -0
  30. data/lib/elasticsearch/dsl/search/aggregations/pipeline/bucket_script.rb +17 -0
  31. data/lib/elasticsearch/dsl/search/aggregations/pipeline/bucket_selector.rb +17 -0
  32. data/lib/elasticsearch/dsl/search/aggregations/pipeline/bucket_sort.rb +106 -0
  33. data/lib/elasticsearch/dsl/search/aggregations/pipeline/cumulative_sum.rb +17 -0
  34. data/lib/elasticsearch/dsl/search/aggregations/pipeline/derivative.rb +17 -0
  35. data/lib/elasticsearch/dsl/search/aggregations/pipeline/extended_stats_bucket.rb +17 -0
  36. data/lib/elasticsearch/dsl/search/aggregations/pipeline/max_bucket.rb +17 -0
  37. data/lib/elasticsearch/dsl/search/aggregations/pipeline/min_bucket.rb +17 -0
  38. data/lib/elasticsearch/dsl/search/aggregations/pipeline/moving_avg.rb +17 -0
  39. data/lib/elasticsearch/dsl/search/aggregations/pipeline/percentiles_bucket.rb +17 -0
  40. data/lib/elasticsearch/dsl/search/aggregations/pipeline/serial_diff.rb +17 -0
  41. data/lib/elasticsearch/dsl/search/aggregations/pipeline/stats_bucket.rb +17 -0
  42. data/lib/elasticsearch/dsl/search/aggregations/pipeline/sum_bucket.rb +17 -0
  43. data/lib/elasticsearch/dsl/search/aggregations/range.rb +18 -1
  44. data/lib/elasticsearch/dsl/search/aggregations/reverse_nested.rb +18 -1
  45. data/lib/elasticsearch/dsl/search/aggregations/scripted_metric.rb +18 -1
  46. data/lib/elasticsearch/dsl/search/aggregations/significant_terms.rb +18 -1
  47. data/lib/elasticsearch/dsl/search/aggregations/significant_text.rb +62 -0
  48. data/lib/elasticsearch/dsl/search/aggregations/stats.rb +17 -0
  49. data/lib/elasticsearch/dsl/search/aggregations/sum.rb +18 -1
  50. data/lib/elasticsearch/dsl/search/aggregations/terms.rb +17 -0
  51. data/lib/elasticsearch/dsl/search/aggregations/top_hits.rb +18 -1
  52. data/lib/elasticsearch/dsl/search/aggregations/value_count.rb +18 -1
  53. data/lib/elasticsearch/dsl/search/base_aggregation_component.rb +20 -1
  54. data/lib/elasticsearch/dsl/search/base_component.rb +30 -1
  55. data/lib/elasticsearch/dsl/search/base_compound_filter_component.rb +20 -1
  56. data/lib/elasticsearch/dsl/search/collapse.rb +95 -0
  57. data/lib/elasticsearch/dsl/search/filter.rb +21 -2
  58. data/lib/elasticsearch/dsl/search/filters/and.rb +18 -1
  59. data/lib/elasticsearch/dsl/search/filters/bool.rb +23 -4
  60. data/lib/elasticsearch/dsl/search/filters/exists.rb +18 -1
  61. data/lib/elasticsearch/dsl/search/filters/geo_bounding_box.rb +18 -1
  62. data/lib/elasticsearch/dsl/search/filters/geo_distance.rb +18 -1
  63. data/lib/elasticsearch/dsl/search/filters/geo_distance_range.rb +18 -1
  64. data/lib/elasticsearch/dsl/search/filters/geo_polygon.rb +18 -1
  65. data/lib/elasticsearch/dsl/search/filters/geo_shape.rb +18 -1
  66. data/lib/elasticsearch/dsl/search/filters/geohash_cell.rb +18 -1
  67. data/lib/elasticsearch/dsl/search/filters/has_child.rb +18 -1
  68. data/lib/elasticsearch/dsl/search/filters/has_parent.rb +18 -1
  69. data/lib/elasticsearch/dsl/search/filters/ids.rb +18 -1
  70. data/lib/elasticsearch/dsl/search/filters/indices.rb +19 -2
  71. data/lib/elasticsearch/dsl/search/filters/limit.rb +18 -1
  72. data/lib/elasticsearch/dsl/search/filters/match_all.rb +18 -1
  73. data/lib/elasticsearch/dsl/search/filters/missing.rb +18 -1
  74. data/lib/elasticsearch/dsl/search/filters/nested.rb +27 -1
  75. data/lib/elasticsearch/dsl/search/filters/not.rb +21 -2
  76. data/lib/elasticsearch/dsl/search/filters/or.rb +18 -1
  77. data/lib/elasticsearch/dsl/search/filters/prefix.rb +18 -1
  78. data/lib/elasticsearch/dsl/search/filters/query.rb +18 -1
  79. data/lib/elasticsearch/dsl/search/filters/range.rb +18 -1
  80. data/lib/elasticsearch/dsl/search/filters/regexp.rb +18 -1
  81. data/lib/elasticsearch/dsl/search/filters/script.rb +18 -1
  82. data/lib/elasticsearch/dsl/search/filters/term.rb +18 -1
  83. data/lib/elasticsearch/dsl/search/filters/terms.rb +18 -1
  84. data/lib/elasticsearch/dsl/search/filters/type.rb +18 -1
  85. data/lib/elasticsearch/dsl/search/highlight.rb +18 -1
  86. data/lib/elasticsearch/dsl/search/options.rb +20 -2
  87. data/lib/elasticsearch/dsl/search/queries/bool.rb +24 -7
  88. data/lib/elasticsearch/dsl/search/queries/boosting.rb +18 -1
  89. data/lib/elasticsearch/dsl/search/queries/common.rb +18 -1
  90. data/lib/elasticsearch/dsl/search/queries/constant_score.rb +18 -1
  91. data/lib/elasticsearch/dsl/search/queries/dis_max.rb +18 -1
  92. data/lib/elasticsearch/dsl/search/queries/exists.rb +17 -0
  93. data/lib/elasticsearch/dsl/search/queries/filtered.rb +18 -1
  94. data/lib/elasticsearch/dsl/search/queries/function_score.rb +19 -1
  95. data/lib/elasticsearch/dsl/search/queries/fuzzy.rb +18 -1
  96. data/lib/elasticsearch/dsl/search/queries/fuzzy_like_this.rb +18 -1
  97. data/lib/elasticsearch/dsl/search/queries/fuzzy_like_this_field.rb +18 -1
  98. data/lib/elasticsearch/dsl/search/queries/geo_shape.rb +18 -1
  99. data/lib/elasticsearch/dsl/search/queries/has_child.rb +18 -1
  100. data/lib/elasticsearch/dsl/search/queries/has_parent.rb +18 -1
  101. data/lib/elasticsearch/dsl/search/queries/ids.rb +18 -1
  102. data/lib/elasticsearch/dsl/search/queries/indices.rb +18 -1
  103. data/lib/elasticsearch/dsl/search/queries/inner_hits.rb +133 -0
  104. data/lib/elasticsearch/dsl/search/queries/match.rb +18 -1
  105. data/lib/elasticsearch/dsl/search/queries/match_all.rb +18 -1
  106. data/lib/elasticsearch/dsl/search/queries/match_phrase.rb +17 -0
  107. data/lib/elasticsearch/dsl/search/queries/match_phrase_prefix.rb +17 -0
  108. data/lib/elasticsearch/dsl/search/queries/more_like_this.rb +18 -1
  109. data/lib/elasticsearch/dsl/search/queries/multi_match.rb +18 -1
  110. data/lib/elasticsearch/dsl/search/queries/nested.rb +18 -1
  111. data/lib/elasticsearch/dsl/search/queries/prefix.rb +18 -1
  112. data/lib/elasticsearch/dsl/search/queries/query_string.rb +20 -4
  113. data/lib/elasticsearch/dsl/search/queries/range.rb +18 -1
  114. data/lib/elasticsearch/dsl/search/queries/regexp.rb +18 -1
  115. data/lib/elasticsearch/dsl/search/queries/simple_query_string.rb +18 -1
  116. data/lib/elasticsearch/dsl/search/queries/span_first.rb +18 -1
  117. data/lib/elasticsearch/dsl/search/queries/span_multi.rb +18 -1
  118. data/lib/elasticsearch/dsl/search/queries/span_near.rb +18 -1
  119. data/lib/elasticsearch/dsl/search/queries/span_not.rb +18 -1
  120. data/lib/elasticsearch/dsl/search/queries/span_or.rb +18 -1
  121. data/lib/elasticsearch/dsl/search/queries/span_term.rb +18 -1
  122. data/lib/elasticsearch/dsl/search/queries/template.rb +18 -1
  123. data/lib/elasticsearch/dsl/search/queries/term.rb +18 -1
  124. data/lib/elasticsearch/dsl/search/queries/terms.rb +18 -1
  125. data/lib/elasticsearch/dsl/search/queries/top_children.rb +18 -1
  126. data/lib/elasticsearch/dsl/search/queries/wildcard.rb +18 -1
  127. data/lib/elasticsearch/dsl/search/query.rb +21 -2
  128. data/lib/elasticsearch/dsl/search/sort.rb +18 -1
  129. data/lib/elasticsearch/dsl/search/suggest.rb +18 -1
  130. data/lib/elasticsearch/dsl/search.rb +46 -4
  131. data/lib/elasticsearch/dsl/utils.rb +17 -0
  132. data/lib/elasticsearch/dsl/version.rb +18 -1
  133. data/lib/elasticsearch/dsl.rb +19 -1
  134. data/lib/elasticsearch-dsl.rb +17 -0
  135. data/spec/elasticsearch/dsl/search/aggregations/avg_spec.rb +43 -0
  136. data/spec/elasticsearch/dsl/search/aggregations/cardinality_spec.rb +110 -0
  137. data/spec/elasticsearch/dsl/search/aggregations/children_spec.rb +66 -0
  138. data/spec/elasticsearch/dsl/search/aggregations/composite_spec.rb +99 -0
  139. data/spec/elasticsearch/dsl/search/aggregations/date_histogram_spec.rb +182 -0
  140. data/spec/elasticsearch/dsl/search/aggregations/date_range_spec.rb +89 -0
  141. data/spec/elasticsearch/dsl/search/aggregations/extended_stats_spec.rb +43 -0
  142. data/spec/elasticsearch/dsl/search/aggregations/filter_spec.rb +48 -0
  143. data/spec/elasticsearch/dsl/search/aggregations/filters_spec.rb +89 -0
  144. data/spec/elasticsearch/dsl/search/aggregations/geo_bounds_spec.rb +77 -0
  145. data/spec/elasticsearch/dsl/search/aggregations/geo_distance_spec.rb +113 -0
  146. data/spec/elasticsearch/dsl/search/aggregations/geo_grid_spec.rb +100 -0
  147. data/spec/elasticsearch/dsl/search/aggregations/global_spec.rb +62 -0
  148. data/spec/elasticsearch/dsl/search/aggregations/historgram_spec.rb +122 -0
  149. data/spec/elasticsearch/dsl/search/aggregations/ip_range_spec.rb +93 -0
  150. data/spec/elasticsearch/dsl/search/aggregations/max_spec.rb +43 -0
  151. data/spec/elasticsearch/dsl/search/aggregations/min_spec.rb +43 -0
  152. data/spec/elasticsearch/dsl/search/aggregations/missing_spec.rb +81 -0
  153. data/spec/elasticsearch/dsl/search/aggregations/nested_spec.rb +86 -0
  154. data/spec/elasticsearch/dsl/search/aggregations/percentile_ranks_spec.rb +126 -0
  155. data/spec/elasticsearch/dsl/search/aggregations/percentiles_spec.rb +125 -0
  156. data/spec/elasticsearch/dsl/search/aggregations/pipeline/avg_bucket_spec.rb +88 -0
  157. data/spec/elasticsearch/dsl/search/aggregations/pipeline/bucket_script_spec.rb +99 -0
  158. data/spec/elasticsearch/dsl/search/aggregations/pipeline/bucket_selector_spec.rb +88 -0
  159. data/spec/elasticsearch/dsl/search/aggregations/pipeline/bucket_sort_spec.rb +104 -0
  160. data/spec/elasticsearch/dsl/search/aggregations/pipeline/cumulative_sum_spec.rb +77 -0
  161. data/spec/elasticsearch/dsl/search/aggregations/pipeline/derivative_spec.rb +88 -0
  162. data/spec/elasticsearch/dsl/search/aggregations/pipeline/extended_stats_bucket_spec.rb +88 -0
  163. data/spec/elasticsearch/dsl/search/aggregations/pipeline/max_bucket_spec.rb +88 -0
  164. data/spec/elasticsearch/dsl/search/aggregations/pipeline/min_bucket_spec.rb +88 -0
  165. data/spec/elasticsearch/dsl/search/aggregations/pipeline/moving_avg_test_spec.rb +132 -0
  166. data/spec/elasticsearch/dsl/search/aggregations/pipeline/percentiles_bucket_spec.rb +99 -0
  167. data/spec/elasticsearch/dsl/search/aggregations/pipeline/serial_diff_spec.rb +99 -0
  168. data/spec/elasticsearch/dsl/search/aggregations/pipeline/stats_bucket_spec.rb +88 -0
  169. data/spec/elasticsearch/dsl/search/aggregations/pipeline/sum_bucket_spec.rb +88 -0
  170. data/spec/elasticsearch/dsl/search/aggregations/range_spec.rb +119 -0
  171. data/spec/elasticsearch/dsl/search/aggregations/reverse_nested_spec.rb +32 -0
  172. data/spec/elasticsearch/dsl/search/aggregations/scripted_metric_spec.rb +121 -0
  173. data/spec/elasticsearch/dsl/search/aggregations/significant_terms_spec.rb +176 -0
  174. data/spec/elasticsearch/dsl/search/aggregations/significant_text_spec.rb +176 -0
  175. data/spec/elasticsearch/dsl/search/aggregations/stats_spec.rb +56 -0
  176. data/spec/elasticsearch/dsl/search/aggregations/sum_spec.rb +43 -0
  177. data/spec/elasticsearch/dsl/search/aggregations/terms_spec.rb +165 -0
  178. data/spec/elasticsearch/dsl/search/aggregations/top_hits_spec.rb +88 -0
  179. data/spec/elasticsearch/dsl/search/aggregations/value_count_spec.rb +43 -0
  180. data/spec/elasticsearch/dsl/search/collapse_spec.rb +93 -0
  181. data/spec/elasticsearch/dsl/search/filters/and_spec.rb +74 -0
  182. data/spec/elasticsearch/dsl/search/filters/bool_spec.rb +213 -0
  183. data/spec/elasticsearch/dsl/search/filters/exists_spec.rb +66 -0
  184. data/spec/elasticsearch/dsl/search/filters/geo_bounding_box_spec.rb +144 -0
  185. data/spec/elasticsearch/dsl/search/filters/geo_distance_range_spec.rb +103 -0
  186. data/spec/elasticsearch/dsl/search/filters/geo_distance_spec.rb +126 -0
  187. data/spec/elasticsearch/dsl/search/filters/geo_polygon_spec.rb +66 -0
  188. data/spec/elasticsearch/dsl/search/filters/geo_shape_spec.rb +77 -0
  189. data/spec/elasticsearch/dsl/search/filters/geohash_cell_spec.rb +99 -0
  190. data/spec/elasticsearch/dsl/search/filters/has_child_spec.rb +139 -0
  191. data/spec/elasticsearch/dsl/search/filters/has_parent_spec.rb +128 -0
  192. data/spec/elasticsearch/dsl/search/filters/ids_spec.rb +78 -0
  193. data/spec/elasticsearch/dsl/search/filters/indices_spec.rb +109 -0
  194. data/spec/elasticsearch/dsl/search/filters/limit_spec.rb +66 -0
  195. data/spec/elasticsearch/dsl/search/filters/match_all_spec.rb +32 -0
  196. data/spec/elasticsearch/dsl/search/filters/missing_spec.rb +66 -0
  197. data/spec/elasticsearch/dsl/search/filters/nested_spec.rb +91 -0
  198. data/spec/elasticsearch/dsl/search/filters/not_spec.rb +59 -0
  199. data/spec/elasticsearch/dsl/search/filters/or_spec.rb +75 -0
  200. data/spec/elasticsearch/dsl/search/filters/prefix_spec.rb +46 -0
  201. data/spec/elasticsearch/dsl/search/filters/query_spec.rb +59 -0
  202. data/spec/elasticsearch/dsl/search/filters/range_spec.rb +111 -0
  203. data/spec/elasticsearch/dsl/search/filters/regexp_spec.rb +88 -0
  204. data/spec/elasticsearch/dsl/search/filters/script_spec.rb +77 -0
  205. data/spec/elasticsearch/dsl/search/filters/term_spec.rb +57 -0
  206. data/spec/elasticsearch/dsl/search/filters/terms_spec.rb +46 -0
  207. data/spec/elasticsearch/dsl/search/filters/type_spec.rb +66 -0
  208. data/spec/elasticsearch/dsl/search/queries/bool_spec.rb +267 -0
  209. data/spec/elasticsearch/dsl/search/queries/boosting_spec.rb +90 -0
  210. data/spec/elasticsearch/dsl/search/queries/common_spec.rb +132 -0
  211. data/spec/elasticsearch/dsl/search/queries/constant_score_spec.rb +90 -0
  212. data/spec/elasticsearch/dsl/search/queries/dis_max_spec.rb +88 -0
  213. data/spec/elasticsearch/dsl/search/queries/exists_spec.rb +66 -0
  214. data/spec/elasticsearch/dsl/search/queries/filtered_spec.rb +93 -0
  215. data/spec/elasticsearch/dsl/search/queries/function_score_spec.rb +175 -0
  216. data/spec/elasticsearch/dsl/search/queries/fuzzy_like_this_field_spec.rb +132 -0
  217. data/spec/elasticsearch/dsl/search/queries/fuzzy_like_this_spec.rb +134 -0
  218. data/spec/elasticsearch/dsl/search/queries/fuzzy_spec.rb +110 -0
  219. data/spec/elasticsearch/dsl/search/queries/geo_shape_spec.rb +77 -0
  220. data/spec/elasticsearch/dsl/search/queries/has_child_spec.rb +126 -0
  221. data/spec/elasticsearch/dsl/search/queries/has_parent_spec.rb +100 -0
  222. data/spec/elasticsearch/dsl/search/queries/ids_spec.rb +78 -0
  223. data/spec/elasticsearch/dsl/search/queries/indices_spec.rb +89 -0
  224. data/spec/elasticsearch/dsl/search/queries/inner_hits_spec.rb +144 -0
  225. data/spec/elasticsearch/dsl/search/queries/match_all_spec.rb +66 -0
  226. data/spec/elasticsearch/dsl/search/queries/match_phrase_prefix_spec.rb +103 -0
  227. data/spec/elasticsearch/dsl/search/queries/match_phrase_spec.rb +114 -0
  228. data/spec/elasticsearch/dsl/search/queries/match_spec.rb +107 -0
  229. data/spec/elasticsearch/dsl/search/queries/more_like_this_spec.rb +87 -0
  230. data/spec/elasticsearch/dsl/search/queries/multi_match_spec.rb +74 -0
  231. data/spec/elasticsearch/dsl/search/queries/nested_spec.rb +98 -0
  232. data/spec/elasticsearch/dsl/search/queries/prefix_spec.rb +70 -0
  233. data/spec/elasticsearch/dsl/search/queries/query_string_spec.rb +85 -0
  234. data/spec/elasticsearch/dsl/search/queries/range_spec.rb +78 -0
  235. data/spec/elasticsearch/dsl/search/queries/regexp_spec.rb +82 -0
  236. data/spec/elasticsearch/dsl/search/queries/simple_query_string_spec.rb +74 -0
  237. data/spec/elasticsearch/dsl/search/queries/span_first_spec.rb +69 -0
  238. data/spec/elasticsearch/dsl/search/queries/span_multi_spec.rb +69 -0
  239. data/spec/elasticsearch/dsl/search/queries/span_near_spec.rb +72 -0
  240. data/spec/elasticsearch/dsl/search/queries/span_not_spec.rb +73 -0
  241. data/spec/elasticsearch/dsl/search/queries/span_or_spec.rb +69 -0
  242. data/spec/elasticsearch/dsl/search/queries/span_term_spec.rb +46 -0
  243. data/spec/elasticsearch/dsl/search/queries/template_spec.rb +84 -0
  244. data/spec/elasticsearch/dsl/search/queries/term_spec.rb +57 -0
  245. data/spec/elasticsearch/dsl/search/queries/terms_spec.rb +46 -0
  246. data/spec/elasticsearch/dsl/search/queries/top_children_spec.rb +93 -0
  247. data/spec/elasticsearch/dsl/search/queries/wildcard_spec.rb +81 -0
  248. data/spec/elasticsearch/dsl/search_spec.rb +385 -0
  249. data/spec/spec_helper.rb +24 -0
  250. data/test/integration/search_aggregation_children_test.rb +44 -37
  251. data/test/integration/search_aggregation_geo_test.rb +27 -16
  252. data/test/integration/search_aggregation_nested_test.rb +32 -20
  253. data/test/integration/search_aggregations_test.rb +28 -13
  254. data/test/integration/search_filters_test.rb +33 -22
  255. data/test/integration/search_options_test.rb +20 -3
  256. data/test/integration/search_query_test.rb +24 -11
  257. data/test/integration/search_size_from_test.rb +22 -5
  258. data/test/integration/search_sort_test.rb +20 -7
  259. data/test/integration/search_suggest_test.rb +30 -19
  260. data/test/integration/search_test.rb +21 -8
  261. data/test/test_helper.rb +30 -23
  262. data/test/unit/dsl_test.rb +17 -0
  263. data/test/unit/search_aggregation_test.rb +17 -0
  264. data/test/unit/search_base_aggregation_component_test.rb +17 -0
  265. data/test/unit/search_base_component_test.rb +17 -0
  266. data/test/unit/search_filter_test.rb +17 -0
  267. data/test/unit/search_highlight_test.rb +17 -0
  268. data/test/unit/search_options_test.rb +25 -0
  269. data/test/unit/search_query_test.rb +17 -0
  270. data/test/unit/search_size_from_test.rb +17 -0
  271. data/test/unit/search_sort_test.rb +17 -0
  272. data/test/unit/search_suggest_test.rb +17 -0
  273. data/test/unit/search_test.rb +24 -0
  274. data/test/unit/utils_test.rb +17 -0
  275. metadata +278 -270
  276. data/test/unit/aggregations/avg_test.rb +0 -24
  277. data/test/unit/aggregations/cardinality_test.rb +0 -40
  278. data/test/unit/aggregations/children_test.rb +0 -36
  279. data/test/unit/aggregations/date_histogram_test.rb +0 -49
  280. data/test/unit/aggregations/date_range_test.rb +0 -42
  281. data/test/unit/aggregations/extended_stats_test.rb +0 -24
  282. data/test/unit/aggregations/filter_test.rb +0 -31
  283. data/test/unit/aggregations/filters_test.rb +0 -52
  284. data/test/unit/aggregations/geo_bounds_test.rb +0 -37
  285. data/test/unit/aggregations/geo_distance_test.rb +0 -45
  286. data/test/unit/aggregations/geohash_grid_test.rb +0 -40
  287. data/test/unit/aggregations/global_test.rb +0 -38
  288. data/test/unit/aggregations/histogram_test.rb +0 -42
  289. data/test/unit/aggregations/ip_range_test.rb +0 -41
  290. data/test/unit/aggregations/max_test.rb +0 -24
  291. data/test/unit/aggregations/min_test.rb +0 -24
  292. data/test/unit/aggregations/missing_test.rb +0 -39
  293. data/test/unit/aggregations/nested_test.rb +0 -48
  294. data/test/unit/aggregations/percentile_ranks_test.rb +0 -41
  295. data/test/unit/aggregations/percentiles_test.rb +0 -40
  296. data/test/unit/aggregations/pipeline/avg_bucket_test.rb +0 -39
  297. data/test/unit/aggregations/pipeline/bucket_script_test.rb +0 -39
  298. data/test/unit/aggregations/pipeline/bucket_selector_test.rb +0 -38
  299. data/test/unit/aggregations/pipeline/cumulative_sum_test.rb +0 -37
  300. data/test/unit/aggregations/pipeline/derivative_test.rb +0 -39
  301. data/test/unit/aggregations/pipeline/extended_stats_bucket_test.rb +0 -38
  302. data/test/unit/aggregations/pipeline/max_bucket_test.rb +0 -38
  303. data/test/unit/aggregations/pipeline/min_bucket_test.rb +0 -38
  304. data/test/unit/aggregations/pipeline/moving_avg_test.rb +0 -41
  305. data/test/unit/aggregations/pipeline/percentiles_bucket_test.rb +0 -39
  306. data/test/unit/aggregations/pipeline/serial_diff_test.rb +0 -39
  307. data/test/unit/aggregations/pipeline/stats_bucket_test.rb +0 -38
  308. data/test/unit/aggregations/pipeline/sum_bucket_test.rb +0 -38
  309. data/test/unit/aggregations/range_test.rb +0 -59
  310. data/test/unit/aggregations/reverse_nested_test.rb +0 -20
  311. data/test/unit/aggregations/scripted_metric_test.rb +0 -41
  312. data/test/unit/aggregations/significant_terms_test.rb +0 -46
  313. data/test/unit/aggregations/stats_test.rb +0 -32
  314. data/test/unit/aggregations/sum_test.rb +0 -24
  315. data/test/unit/aggregations/terms_test.rb +0 -51
  316. data/test/unit/aggregations/top_hits_test.rb +0 -38
  317. data/test/unit/aggregations/value_count_test.rb +0 -24
  318. data/test/unit/filters/and_test.rb +0 -69
  319. data/test/unit/filters/bool_test.rb +0 -98
  320. data/test/unit/filters/exists_test.rb +0 -36
  321. data/test/unit/filters/geo_bounding_box_test.rb +0 -45
  322. data/test/unit/filters/geo_distance_range_test.rb +0 -51
  323. data/test/unit/filters/geo_distance_test.rb +0 -58
  324. data/test/unit/filters/geo_polygon_test.rb +0 -36
  325. data/test/unit/filters/geo_shape_test.rb +0 -37
  326. data/test/unit/filters/geohash_cell_test.rb +0 -43
  327. data/test/unit/filters/has_child_test.rb +0 -54
  328. data/test/unit/filters/has_parent_test.rb +0 -54
  329. data/test/unit/filters/ids_test.rb +0 -38
  330. data/test/unit/filters/indices_test.rb +0 -52
  331. data/test/unit/filters/limit_test.rb +0 -36
  332. data/test/unit/filters/match_all_test.rb +0 -20
  333. data/test/unit/filters/missing_test.rb +0 -38
  334. data/test/unit/filters/nested_test.rb +0 -40
  335. data/test/unit/filters/not_test.rb +0 -35
  336. data/test/unit/filters/or_test.rb +0 -53
  337. data/test/unit/filters/prefix_test.rb +0 -25
  338. data/test/unit/filters/query_test.rb +0 -33
  339. data/test/unit/filters/range_test.rb +0 -48
  340. data/test/unit/filters/regexp_test.rb +0 -42
  341. data/test/unit/filters/script_test.rb +0 -38
  342. data/test/unit/filters/term_test.rb +0 -27
  343. data/test/unit/filters/terms_test.rb +0 -24
  344. data/test/unit/filters/type_test.rb +0 -36
  345. data/test/unit/queries/bool_test.rb +0 -147
  346. data/test/unit/queries/boosting_test.rb +0 -41
  347. data/test/unit/queries/common_test.rb +0 -42
  348. data/test/unit/queries/constant_score_test.rb +0 -47
  349. data/test/unit/queries/dis_max_test.rb +0 -38
  350. data/test/unit/queries/exists_test.rb +0 -36
  351. data/test/unit/queries/filtered_test.rb +0 -51
  352. data/test/unit/queries/function_score_test.rb +0 -70
  353. data/test/unit/queries/fuzzy_like_this_field_test.rb +0 -42
  354. data/test/unit/queries/fuzzy_like_this_test.rb +0 -44
  355. data/test/unit/queries/fuzzy_test.rb +0 -40
  356. data/test/unit/queries/geo_shape_test.rb +0 -37
  357. data/test/unit/queries/has_child_test.rb +0 -55
  358. data/test/unit/queries/has_parent_test.rb +0 -41
  359. data/test/unit/queries/ids_test.rb +0 -38
  360. data/test/unit/queries/indices_test.rb +0 -39
  361. data/test/unit/queries/match_all_test.rb +0 -36
  362. data/test/unit/queries/match_phrase_prefix_test.rb +0 -62
  363. data/test/unit/queries/match_phrase_test.rb +0 -63
  364. data/test/unit/queries/match_test.rb +0 -65
  365. data/test/unit/queries/more_like_this_test.rb +0 -53
  366. data/test/unit/queries/multi_match_test.rb +0 -42
  367. data/test/unit/queries/nested_test.rb +0 -52
  368. data/test/unit/queries/prefix_test.rb +0 -37
  369. data/test/unit/queries/query_string_test.rb +0 -56
  370. data/test/unit/queries/range_test.rb +0 -41
  371. data/test/unit/queries/regexp_test.rb +0 -43
  372. data/test/unit/queries/simple_query_string_test.rb +0 -41
  373. data/test/unit/queries/span_first_test.rb +0 -36
  374. data/test/unit/queries/span_multi_test.rb +0 -36
  375. data/test/unit/queries/span_near_test.rb +0 -39
  376. data/test/unit/queries/span_not_test.rb +0 -40
  377. data/test/unit/queries/span_or_test.rb +0 -36
  378. data/test/unit/queries/span_term_test.rb +0 -24
  379. data/test/unit/queries/template_test.rb +0 -43
  380. data/test/unit/queries/term_test.rb +0 -27
  381. data/test/unit/queries/terms_test.rb +0 -24
  382. data/test/unit/queries/top_children_test.rb +0 -53
  383. data/test/unit/queries/wildcard_test.rb +0 -43
@@ -1,59 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Aggregations
6
- class RangeTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Aggregations
8
-
9
- context "Range aggregation" do
10
-
11
- should "take a Hash" do
12
- subject = Range.new( { field: 'test', ranges: [ { to: 50 } ] } )
13
- assert_equal({ range: { field: "test", ranges: [ {to: 50} ] } }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = Range.new
18
-
19
- subject.field 'foo'
20
- subject.script 'bar*2'
21
-
22
- assert_equal %w[ field script ], subject.to_hash[:range].keys.map(&:to_s).sort
23
- assert_equal 'foo', subject.to_hash[:range][:field]
24
- end
25
-
26
- should "take a block with keyed ranges" do
27
- subject = Range.new field: 'test' do
28
- key 'foo', to: 10
29
- key 'bar', from: 10, to: 20
30
- end
31
-
32
- assert_equal({ range: { field: "test", keyed: true, ranges: [ {to: 10, key: 'foo'}, { from: 10, to: 20, key: 'bar'}]}}, subject.to_hash)
33
- end
34
-
35
- should "let you set keyed to false explicitly" do
36
- subject = Range.new do
37
- keyed false
38
- field 'test'
39
- key 'foo', to: 10
40
- key 'bar', from: 10, to: 20
41
- end
42
-
43
- assert_equal({ range: { field: "test", keyed: false, ranges: [ {to: 10, key: 'foo'}, { from: 10, to: 20, key: 'bar'}]}}, subject.to_hash)
44
- end
45
-
46
- should "define field in the block" do
47
- subject = Range.new do
48
- field 'test'
49
- key 'foo', to: 10
50
- key 'bar', from: 10, to: 20
51
- end
52
-
53
- assert_equal({ range: { field: "test", keyed: true, ranges: [ {to: 10, key: 'foo'}, { from: 10, to: 20, key: 'bar'}]}}, subject.to_hash)
54
- end
55
- end
56
- end
57
- end
58
- end
59
- end
@@ -1,20 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Aggregations
6
- class ReverseNestedTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Aggregations
8
-
9
- context "ReverseNested aggregation" do
10
- subject { ReverseNested.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ reverse_nested: {} }, subject.to_hash)
14
- end
15
-
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,41 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Aggregations
6
- class ScriptedMetricTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Aggregations
8
-
9
- context "ScriptedMetric agg" do
10
- subject { ScriptedMetric.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ scripted_metric: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = ScriptedMetric.new
18
-
19
- subject.init_script 'bar'
20
- subject.map_script 'bar'
21
- subject.combine_script 'bar'
22
- subject.reduce_script 'bar'
23
- subject.params 'bar'
24
- subject.lang 'bar'
25
-
26
- assert_equal %w[ combine_script init_script lang map_script params reduce_script ],
27
- subject.to_hash[:scripted_metric].keys.map(&:to_s).sort
28
- assert_equal 'bar', subject.to_hash[:scripted_metric][:init_script]
29
- end
30
-
31
- should "take a block" do
32
- subject = ScriptedMetric.new do
33
- init_script 'bar'
34
- end
35
- assert_equal({scripted_metric: { init_script: 'bar' } }, subject.to_hash)
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,46 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Aggregations
6
- class SignificantTermsTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Aggregations
8
-
9
- context "SignificantTerms aggregation" do
10
- subject { SignificantTerms.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ significant_terms: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = SignificantTerms.new
18
-
19
- subject.field 'bar'
20
- subject.size 'bar'
21
- subject.shard_size 'bar'
22
- subject.min_doc_count 'bar'
23
- subject.shard_min_doc_count 'bar'
24
- subject.include 'bar'
25
- subject.exclude 'bar'
26
- subject.background_filter 'bar'
27
- subject.mutual_information 'bar'
28
- subject.chi_square 'bar'
29
- subject.gnd 'bar'
30
-
31
- assert_equal %w[ background_filter chi_square exclude field gnd include min_doc_count mutual_information shard_min_doc_count shard_size size ],
32
- subject.to_hash[:significant_terms].keys.map(&:to_s).sort
33
- assert_equal 'bar', subject.to_hash[:significant_terms][:field]
34
- end
35
-
36
- should "take a block" do
37
- subject = SignificantTerms.new do
38
- field 'bar'
39
- end
40
- assert_equal({significant_terms: { field: 'bar' } }, subject.to_hash)
41
- end
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,32 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Aggregations
6
- class StatsTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Aggregations
8
-
9
- context "Stats agg" do
10
- subject { Stats.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ stats: {} }, subject.to_hash)
14
- end
15
-
16
- should "take a Hash" do
17
- subject = Stats.new foo: 'bar'
18
- assert_equal({ stats: { foo: 'bar' } }, subject.to_hash)
19
- end
20
-
21
- should "take a block" do
22
- subject = Stats.new do
23
- field 'bar'
24
- end
25
-
26
- assert_equal({stats: { field: 'bar' } }, subject.to_hash)
27
- end
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,24 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Aggregations
6
- class SumTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Aggregations
8
-
9
- context "Sum agg" do
10
- subject { Sum.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ sum: {} }, subject.to_hash)
14
- end
15
-
16
- should "take a Hash" do
17
- subject = Sum.new foo: 'bar'
18
- assert_equal({ sum: { foo: 'bar' } }, subject.to_hash)
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,51 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Aggregations
6
- class TermsTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Aggregations
8
-
9
- context "Terms aggregation" do
10
- subject { Terms.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ terms: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = Terms.new
18
-
19
- subject.field 'bar'
20
- subject.size 'bar'
21
- subject.shard_size 'bar'
22
- subject.order 'bar'
23
- subject.min_doc_count 'bar'
24
- subject.shard_min_doc_count 'bar'
25
- subject.script 'bar'
26
- subject.include 'bar'
27
- subject.exclude 'bar'
28
-
29
- assert_equal %w[ exclude field include min_doc_count order script shard_min_doc_count shard_size size ],
30
- subject.to_hash[:terms].keys.map(&:to_s).sort
31
- assert_equal 'bar', subject.to_hash[:terms][:field]
32
- end
33
-
34
- should "take a Hash" do
35
- subject = Terms.new field: 'test'
36
-
37
- assert_equal({:terms=>{:field=>"test"}}, subject.to_hash)
38
- end
39
-
40
- should "take a block" do
41
- subject = Terms.new do
42
- field 'bar'
43
- end
44
-
45
- assert_equal({terms: { field: 'bar' } }, subject.to_hash)
46
- end
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,38 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Aggregations
6
- class TopHitsTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Aggregations
8
-
9
- context "TopHits agg" do
10
- subject { TopHits.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ top_hits: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = TopHits.new
18
-
19
- subject.from 'bar'
20
- subject.size 'bar'
21
- subject.sort 'bar'
22
-
23
- assert_equal %w[ from size sort ],
24
- subject.to_hash[:top_hits].keys.map(&:to_s).sort
25
- assert_equal 'bar', subject.to_hash[:top_hits][:from]
26
- end
27
-
28
- should "take a block" do
29
- subject = TopHits.new do
30
- from 'bar'
31
- end
32
- assert_equal({top_hits: { from: 'bar' } }, subject.to_hash)
33
- end
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,24 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Aggregations
6
- class ValueCountTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Aggregations
8
-
9
- context "ValueCount agg" do
10
- subject { ValueCount.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ value_count: {} }, subject.to_hash)
14
- end
15
-
16
- should "take a Hash" do
17
- subject = ValueCount.new foo: 'bar'
18
- assert_equal({ value_count: { foo: 'bar' } }, subject.to_hash)
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,69 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Filters
6
- class AndTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Filters
8
-
9
- context "And filter" do
10
- subject { And.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ and: {} }, subject.to_hash)
14
- end
15
-
16
- should "take a Hash" do
17
- subject = And.new filters: [ { term: { foo: 'bar' } } ]
18
- assert_equal({ and: { filters: [ { term: { foo: 'bar' } } ] } }, subject.to_hash)
19
- end
20
-
21
- should "take a block" do
22
- subject = And.new do
23
- term foo: 'bar'
24
- term moo: 'mam'
25
- end
26
- assert_equal({and: [ {term: { foo: 'bar'}}, {term: { moo: 'mam'}} ]}, subject.to_hash)
27
- end
28
-
29
- should "behave like an Enumerable" do
30
- subject = And.new
31
- subject << { term: { foo: 'bar' } }
32
- subject << { term: { moo: 'mam' } }
33
-
34
- assert_equal 2, subject.size
35
- assert_equal 'bar', subject[0][:term][:foo]
36
- assert subject.any? { |d| d[:term] == { foo: 'bar' } }
37
- end
38
-
39
- should "behave like an Enumerable with a block" do
40
- subject = And.new do
41
- term foo: 'bar'
42
- term moo: 'mam'
43
- end
44
-
45
- subject.call
46
- assert_equal 2, subject.size
47
-
48
- hash = subject.to_hash
49
- assert_equal 'bar', hash[:and][0][:term][:foo]
50
- assert hash[:and].any? { |d| d[:term] == { foo: 'bar' } }
51
- end
52
-
53
- should "behave like an Array" do
54
- subject = And.new
55
-
56
- assert subject.empty?
57
-
58
- subject << { term: { foo: 'bar' } }
59
- subject << { term: { moo: 'xam' } }
60
-
61
- assert ! subject.empty?
62
-
63
- assert_equal({ and: [ { term: { foo: 'bar' } }, { term: { moo: 'xam' } } ] }, subject.to_hash)
64
- end
65
- end
66
- end
67
- end
68
- end
69
- end
@@ -1,98 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Filters
6
- class BoolTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Filters
8
-
9
- context "Bool Filter" do
10
- subject { Bool.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ bool: {} }, subject.to_hash)
14
- end
15
-
16
- should "take a Hash" do
17
- subject = Bool.new must: [ {term: { foo: 'bar' } } ]
18
-
19
- assert_equal( { bool: { must: [ {term: { foo: 'bar' } } ] } }, subject.to_hash )
20
- end
21
-
22
- should "take a block" do
23
- subject = Bool.new do
24
- must { term foo: 'bar' }
25
- end
26
-
27
- assert_equal( { bool: { must: [ {term: { foo: 'bar' }} ] } }, subject.to_hash )
28
- end
29
-
30
- should "take a block with multiple methods" do
31
- subject = Bool.new do
32
- must { term foo: 'bar' }
33
- must_not { term moo: 'bam' }
34
- should { term xoo: 'bax' }
35
- end
36
-
37
- assert_equal( { bool:
38
- { must: [ {term: { foo: 'bar' }} ],
39
- must_not: [ {term: { moo: 'bam' }} ],
40
- should: [ {term: { xoo: 'bax' }} ]
41
- }
42
- },
43
- subject.to_hash )
44
- end
45
-
46
- should "take a block with multiple conditions" do
47
- subject = Bool.new do
48
- must { term foo: 'bar' }
49
- must { term moo: 'bam' }
50
-
51
- should { term xoo: 'bax' }
52
- should { term zoo: 'baz' }
53
- end
54
-
55
- # Make sure we're not additive
56
- subject.to_hash
57
- subject.to_hash
58
-
59
- assert_equal( { bool:
60
- { must: [ {term: { foo: 'bar' }}, {term: { moo: 'bam' }} ],
61
- should: [ {term: { xoo: 'bax' }}, {term: { zoo: 'baz' }} ]
62
- }
63
- },
64
- subject.to_hash )
65
- end
66
-
67
- should "take method calls" do
68
- subject = Bool.new
69
-
70
- subject.must { term foo: 'bar' }
71
- assert_equal( { bool: { must: [ {term: { foo: 'bar' }} ] } }, subject.to_hash )
72
-
73
- subject.must { term moo: 'bam' }
74
- assert_equal( { bool: { must: [ {term: { foo: 'bar' }}, {term: { moo: 'bam' }} ]} },
75
- subject.to_hash )
76
-
77
- subject.should { term xoo: 'bax' }
78
- assert_equal( { bool:
79
- { must: [ {term: { foo: 'bar' }}, {term: { moo: 'bam' }} ],
80
- should: [ {term: { xoo: 'bax' }} ] }
81
- },
82
- subject.to_hash )
83
- end
84
-
85
- should "be chainable" do
86
- subject = Bool.new
87
-
88
- assert_instance_of Bool, subject.must { term foo: 'bar' }
89
- assert_instance_of Bool, subject.must { term foo: 'bar' }.must { term moo: 'bam' }
90
- assert_instance_of Bool, subject.must_not { term foo: 'bar' }
91
- assert_instance_of Bool, subject.should { term foo: 'bar' }
92
- end
93
-
94
- end
95
- end
96
- end
97
- end
98
- end
@@ -1,36 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Filters
6
- class ExistsTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Filters
8
-
9
- context "Exists filter" do
10
- subject { Exists.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ exists: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = Exists.new
18
-
19
- subject.field 'bar'
20
-
21
- assert_equal %w[ field ],
22
- subject.to_hash[:exists].keys.map(&:to_s).sort
23
- assert_equal 'bar', subject.to_hash[:exists][:field]
24
- end
25
-
26
- should "take a block" do
27
- subject = Exists.new do
28
- field 'bar'
29
- end
30
- assert_equal({ exists: { field: 'bar' } }, subject.to_hash)
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,45 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Filters
6
- class GeoBoundingBoxTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Filters
8
-
9
- context "GeoBoundingBox filter" do
10
- subject { GeoBoundingBox.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ geo_bounding_box: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = GeoBoundingBox.new :foo
18
-
19
- subject.top_left 'bar'
20
- subject.bottom_right 'bar'
21
- subject.top_right 'bar'
22
- subject.bottom_left 'bar'
23
- subject.top 'bar'
24
- subject.left 'bar'
25
- subject.bottom 'bar'
26
- subject.right 'bar'
27
-
28
- assert_equal %w[ bottom bottom_left bottom_right left right top top_left top_right ],
29
- subject.to_hash[:geo_bounding_box][:foo].keys.map(&:to_s).sort
30
- assert_equal 'bar', subject.to_hash[:geo_bounding_box][:foo][:top_left]
31
- end
32
-
33
- should "take a block" do
34
- subject = GeoBoundingBox.new :foo do
35
- top_left [0,1]
36
- bottom_right [3,2]
37
- end
38
-
39
- assert_equal({geo_bounding_box: { foo: { top_left: [0,1], bottom_right: [3,2] } }}, subject.to_hash)
40
- end
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,51 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Elasticsearch
4
- module Test
5
- module Filters
6
- class GeoDistanceRangeTest < ::Elasticsearch::Test::UnitTestCase
7
- include Elasticsearch::DSL::Search::Filters
8
-
9
- context "GeoDistanceRange filter" do
10
- subject { GeoDistanceRange.new }
11
-
12
- should "be converted to a Hash" do
13
- assert_equal({ geo_distance_range: {} }, subject.to_hash)
14
- end
15
-
16
- should "have option methods" do
17
- subject = GeoDistanceRange.new :foo
18
-
19
- subject.lat 'bar'
20
- subject.lon 'bar'
21
-
22
- assert_equal %w[ lat lon ],
23
- subject.to_hash[:geo_distance_range][:foo].keys.map(&:to_s).sort
24
- assert_equal 'bar', subject.to_hash[:geo_distance_range][:foo][:lat]
25
- end
26
-
27
- should "take a block" do
28
- subject = GeoDistanceRange.new :foo do
29
- lat 40
30
- lon -70
31
- end
32
- assert_equal({geo_distance_range: { foo: { lat: 40, lon: -70 } } }, subject.to_hash)
33
- end
34
-
35
- should "take a Hash" do
36
- subject = GeoDistanceRange.new from: '10km', to: '20km', foo: { lat: 40, lon: -70 }
37
- assert_equal({geo_distance_range: { foo: { lat: 40, lon: -70 }, from: '10km', to: '20km' }}, subject.to_hash)
38
- end
39
-
40
- should "take options" do
41
- subject = GeoDistanceRange.new :foo, from: '10km', to: '20km' do
42
- lat 40
43
- lon -70
44
- end
45
- assert_equal({geo_distance_range: { foo: { lat: 40, lon: -70 }, from: '10km', to: '20km' }}, subject.to_hash)
46
- end
47
- end
48
- end
49
- end
50
- end
51
- end