| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| require 'test/unit' |
| require 'solr' |
| |
| class Solr::Indexer |
| attr_reader :added |
| def add_docs(doc) |
| @added ||= [] |
| @added << doc |
| end |
| end |
| |
| class IndexerTest < Test::Unit::TestCase |
| def test_mapping_or_mapping |
| mapping = {:field => "foo"} |
| indexer = Solr::Indexer.new([1,2,3], mapping, :debug => true) |
| indexer.index |
| assert_equal 3, indexer.added.size |
| |
| indexer = Solr::Indexer.new([1,2,3,4], Solr::Importer::Mapper.new(mapping), :debug => true) |
| indexer.index |
| assert_equal 4, indexer.added.size |
| end |
| |
| def test_batch |
| mapping = {:field => "foo"} |
| indexer = Solr::Indexer.new([1,2,3], mapping, :debug => true, :buffer_docs => 2) |
| indexer.index |
| assert_equal 2, indexer.added.size |
| end |
| |
| end |
| |
| |
| # source = DataSource.new |
| # |
| # mapping = { |
| # :id => :isbn, |
| # :name => :author, |
| # :source => "BOOKS", |
| # :year => Proc.new {|record| record.date[0,4] }, |
| # } |
| # |
| # Solr::Indexer.index(source, mapper) do |orig_data, solr_document| |
| # solr_document[:timestamp] = Time.now |
| # end |