/** * Copyright Plugtree LLC * * Licensed 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. */ package com.plugtree.solrmeter.extractor; import java.io.FileNotFoundException; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; import org.apache.solr.common.SolrInputDocument; import com.plugtree.solrmeter.BaseTestCase; import com.plugtree.solrmeter.model.FileUtils; public class FileInputDocumentExtractorTestCase extends BaseTestCase { public void testSingleDoc() throws FileNotFoundException { FileInputDocumentExtractorSpy extractor = new FileInputDocumentExtractorSpy(FileUtils.findFileAsString("FileInputDocumentExtractorTestCase1.txt")); assertEquals(1, extractor.getParsedDocuments().size()); for(int i = 0; i < 10; i++) { SolrInputDocument document = extractor.getRandomDocument(); // fieldName1=value1;fieldName2=value2;fieldName3=value3 Iterator<Object> values = document.getFieldValues("fieldName1").iterator(); assertEquals("value1", values.next()); assertEquals("value2", values.next()); assertEquals("value2", document.getFieldValue("fieldName2")); assertEquals("value3", document.getFieldValue("fieldName3")); } } public void testManyDocs() throws FileNotFoundException { FileInputDocumentExtractorSpy extractor = new FileInputDocumentExtractorSpy(FileUtils.findFileAsString("FileInputDocumentExtractorTestCase2.txt")); assertEquals(21, extractor.getParsedDocuments().size()); Set<Integer> set = new HashSet<Integer>(); for(int i = 0; i < 100; i++) { SolrInputDocument document = extractor.getRandomDocument(); // fieldName1=value1;fieldName2=value2;fieldName3=value3 assertNotNull(document.getFieldValue("fieldName1")); set.add(Integer.parseInt((String)document.getFieldValue("fieldName1"))); assertEquals("value2", document.getFieldValue("fieldName2")); assertEquals("value3", document.getFieldValue("fieldName3")); } assertTrue(set.size() > 1 && set.size() <=21); } public void testLoadDocuments() throws FileNotFoundException { FileInputDocumentExtractorSpy executor = new FileInputDocumentExtractorSpy(FileUtils.findFileAsString("FileInputDocumentExtractorTestCase3.txt")); List<SolrInputDocument> documents = executor.getParsedDocuments(); assertEquals(5, documents.size()); SolrInputDocument document = documents.get(0); assertEquals("1", document.getFieldValue("documentId")); assertEquals("11", document.getFieldValue("entryId")); assertEquals("ABC", document.getFieldValue("type")); assertEquals("F", document.getFieldValue("active")); assertEquals("2", document.getFieldValue("value")); assertEquals("Mon Mar 06 00:00:00 ART 2006", document.getFieldValue("date")); } public void testEscapedChars() throws FileNotFoundException { FileInputDocumentExtractorSpy executor = new FileInputDocumentExtractorSpy(FileUtils.findFileAsString("FileInputDocumentExtractorTestCase4.txt")); List<SolrInputDocument> documents = executor.getParsedDocuments(); assertEquals(5, documents.size()); SolrInputDocument document = documents.get(0); assertEquals("1", document.getFieldValue("documentId")); assertEquals("11;2", document.getFieldValue("entryId")); assertEquals("ABC\\", document.getFieldValue("type")); assertEquals("F\\\\", document.getFieldValue("active")); assertEquals("2:5", document.getFieldValue("value")); assertEquals("Mon Mar 06 00:00:00 ART 2006", document.getFieldValue("date")); } }