From 90e5428e8f27524a4432d5c70101559454bb6ccf Mon Sep 17 00:00:00 2001 From: Macartur Sousa Date: Wed, 8 Jun 2016 16:45:03 -0300 Subject: [PATCH] Adding initial test --- plugins/elasticsearch/Gemfile | 2 +- plugins/elasticsearch/lib/elasticsearch_indexed_model.rb | 6 +++--- plugins/elasticsearch/lib/ext/article.rb | 13 ------------- plugins/elasticsearch/lib/ext/community.rb | 3 +-- plugins/elasticsearch/lib/ext/event.rb | 3 +-- plugins/elasticsearch/lib/ext/person.rb | 3 +-- plugins/elasticsearch/lib/ext/text_article.rb | 3 +-- plugins/elasticsearch/lib/ext/uploaded_file.rb | 3 +-- plugins/elasticsearch/test/test_helper.rb | 20 ++++++++++++++++++++ plugins/elasticsearch/test/unit/elasticsearch_test.rb | 20 ++++++++++++++++++++ plugins/elasticsearch/test/unit/index_models_test.rb | 21 --------------------- 11 files changed, 49 insertions(+), 48 deletions(-) delete mode 100644 plugins/elasticsearch/lib/ext/article.rb create mode 100644 plugins/elasticsearch/test/test_helper.rb create mode 100644 plugins/elasticsearch/test/unit/elasticsearch_test.rb delete mode 100644 plugins/elasticsearch/test/unit/index_models_test.rb diff --git a/plugins/elasticsearch/Gemfile b/plugins/elasticsearch/Gemfile index 8a9e481..fb6db74 100644 --- a/plugins/elasticsearch/Gemfile +++ b/plugins/elasticsearch/Gemfile @@ -1,5 +1,5 @@ source 'https://rubygems.org' gem 'elasticsearch-model' -gem 'elasticsearch-rails' +gem 'elasticsearch-rails' gem 'elasticsearch-extensions' diff --git a/plugins/elasticsearch/lib/elasticsearch_indexed_model.rb b/plugins/elasticsearch/lib/elasticsearch_indexed_model.rb index 6e503ff..06c412e 100644 --- a/plugins/elasticsearch/lib/elasticsearch_indexed_model.rb +++ b/plugins/elasticsearch/lib/elasticsearch_indexed_model.rb @@ -2,10 +2,11 @@ module ElasticsearchIndexedModel def self.included base base.send :include, Elasticsearch::Model + base.extend ClassMethods base.class_eval do settings index: { number_of_shards: 1 } do mappings dynamic: 'false' do - base::SEARCHABLE_FIELDS.each do |field, value| + base.indexable_fields.each do |field, value| indexes field print '.' end @@ -20,8 +21,7 @@ module ElasticsearchIndexedModel } end end - base.extend ClassMethods - base.send :import + base.send :import end module ClassMethods diff --git a/plugins/elasticsearch/lib/ext/article.rb b/plugins/elasticsearch/lib/ext/article.rb deleted file mode 100644 index ff88a31..0000000 --- a/plugins/elasticsearch/lib/ext/article.rb +++ /dev/null @@ -1,13 +0,0 @@ -require_dependency 'article' -require_relative '../elasticsearch_indexed_model' - -class Article - include ElasticsearchIndexedModel - - def self.control_fields - [ - :advertise, - :published, - ] - end -end diff --git a/plugins/elasticsearch/lib/ext/community.rb b/plugins/elasticsearch/lib/ext/community.rb index 3eaebc4..6dd34b6 100644 --- a/plugins/elasticsearch/lib/ext/community.rb +++ b/plugins/elasticsearch/lib/ext/community.rb @@ -2,9 +2,8 @@ require_dependency 'community' require_relative '../elasticsearch_indexed_model' class Community - include ElasticsearchIndexedModel - def self.control_fields [] end + include ElasticsearchIndexedModel end diff --git a/plugins/elasticsearch/lib/ext/event.rb b/plugins/elasticsearch/lib/ext/event.rb index a245ded..6866649 100644 --- a/plugins/elasticsearch/lib/ext/event.rb +++ b/plugins/elasticsearch/lib/ext/event.rb @@ -2,12 +2,11 @@ require_dependency 'event' require_relative '../elasticsearch_indexed_model' class Event - include ElasticsearchIndexedModel - def self.control_fields [ :advertise, :published, ] end + include ElasticsearchIndexedModel end diff --git a/plugins/elasticsearch/lib/ext/person.rb b/plugins/elasticsearch/lib/ext/person.rb index 46df50f..46cefef 100644 --- a/plugins/elasticsearch/lib/ext/person.rb +++ b/plugins/elasticsearch/lib/ext/person.rb @@ -2,12 +2,11 @@ require_dependency 'person' require_relative '../elasticsearch_indexed_model' class Person - include ElasticsearchIndexedModel - def self.control_fields [ :visible, :public_profile, ] end + include ElasticsearchIndexedModel end diff --git a/plugins/elasticsearch/lib/ext/text_article.rb b/plugins/elasticsearch/lib/ext/text_article.rb index 81fb595..7f81991 100644 --- a/plugins/elasticsearch/lib/ext/text_article.rb +++ b/plugins/elasticsearch/lib/ext/text_article.rb @@ -2,12 +2,11 @@ require_dependency 'text_article' require_relative '../elasticsearch_indexed_model' class TextArticle - include ElasticsearchIndexedModel - def self.control_fields [ :advertise, :published, ] end + include ElasticsearchIndexedModel end diff --git a/plugins/elasticsearch/lib/ext/uploaded_file.rb b/plugins/elasticsearch/lib/ext/uploaded_file.rb index 8776d1e..aa7f4b5 100644 --- a/plugins/elasticsearch/lib/ext/uploaded_file.rb +++ b/plugins/elasticsearch/lib/ext/uploaded_file.rb @@ -2,12 +2,11 @@ require_dependency 'uploaded_file' require_relative '../elasticsearch_indexed_model' class UploadedFile - include ElasticsearchIndexedModel - def self.control_fields [ :advertise, :published, ] end + include ElasticsearchIndexedModel end diff --git a/plugins/elasticsearch/test/test_helper.rb b/plugins/elasticsearch/test/test_helper.rb new file mode 100644 index 0000000..9cfe880 --- /dev/null +++ b/plugins/elasticsearch/test/test_helper.rb @@ -0,0 +1,20 @@ +require 'test_helper' + + +require 'elasticsearch/extensions/test/cluster' +require 'elasticsearch/extensions/test/cluster/tasks' + + +def start_cluster + if not Elasticsearch::Extensions::Test::Cluster.running?(on: 9250) + Elasticsearch::Extensions::Test::Cluster.start + end +end + +def stop_cluster + if Elasticsearch::Extensions::Test::Cluster.running?(on: 9250) + Elasticsearch::Extensions::Test::Cluster.stop + end +end + + diff --git a/plugins/elasticsearch/test/unit/elasticsearch_test.rb b/plugins/elasticsearch/test/unit/elasticsearch_test.rb new file mode 100644 index 0000000..3799580 --- /dev/null +++ b/plugins/elasticsearch/test/unit/elasticsearch_test.rb @@ -0,0 +1,20 @@ +require "#{File.dirname(__FILE__)}/../test_helper" + +class ElasticsearchTest < ActiveSupport::TestCase + def setup + start_cluster + @environment = Environment.default + @environment.enable_plugin(ElasticsearchPlugin) + @profile = create_user('testing').person + end + + def teardown + stop_cluster + end + + + should ' be return yellow for health status' do + cluster = Elasticsearch::Model.client.cluster + assert_equal 'yellow', cluster.health["status"] + end +end diff --git a/plugins/elasticsearch/test/unit/index_models_test.rb b/plugins/elasticsearch/test/unit/index_models_test.rb deleted file mode 100644 index fb27f7e..0000000 --- a/plugins/elasticsearch/test/unit/index_models_test.rb +++ /dev/null @@ -1,21 +0,0 @@ -require 'test_helper' - -class IndexModelsTest < ActiveSupport::TestCase - - should "check index models on elasticsearch" do - fields = [] - mappings = [] - - ActiveRecord::Base.descendants.each do |model| - if model.const_defined?("SEARCHABLE_FIELDS") - mappings << model.mappings.instance_values['mapping'].keys.sort - fields << model::SEARCHABLE_FIELDS.keys.sort - end - end - - mappings.count.times do |i| - assert_equal mappings[i], fields[i] - end - end - -end -- libgit2 0.21.2