package com.plugtree.solradvert.util;
/**
* Copyright 2011 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.
*/
import static org.junit.Assert.assertNull;
import java.util.Collection;
import java.util.Date;
import java.util.LinkedList;
import org.apache.lucene.search.Query;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.search.QParser;
import org.easymock.EasyMock;
import org.junit.After;
import org.junit.Rule;
import org.junit.rules.TemporaryFolder;
public abstract class AbstractAdvertTestCase {
private Collection<Object> mocks = null;
@Rule
public TemporaryFolder tmpFolder = new TemporaryFolder();
@Rule
public TestHarnessProvider harnessProvider = new TestHarnessProvider();
@After
public void validateMocks() {
if(mocks!=null) {
EasyMock.verify(mocks.toArray());
mocks = null;
}
}
protected <T> T createMock(Class<T> clazz) {
T mock = EasyMock.createMock(clazz);
if(mocks==null) {
mocks = new LinkedList<Object>();
}
mocks.add(mock);
return mock;
}
protected void replayAllMocks() {
if(mocks!=null) {
EasyMock.replay(mocks.toArray());
}
}
public String getDataDirectory() {
return tmpFolder.newFolder("data").getAbsolutePath();
}
protected Query getQuery(String qstr) throws Exception {
SolrQueryRequest req = newRequest("q", qstr);
QParser qparser = QParser.getParser(req.getParams().get(CommonParams.Q), "lucene", req);
return qparser.getQuery();
}
protected void assertAddDoc(String id, String product, String brand, String description, Date date, Double price) throws Exception {
assertNull(
"Error adding document",
harnessProvider.getHarness().validateAddDoc(
"id", id,
"product", product,
"brand", brand,
"description", description,
"price", price.toString())
);
}
protected void assertCommit() throws Exception {
assertNull("Error comitting", harnessProvider.getHarness().validateUpdate("<commit/>"));
}
protected SolrQueryRequest newRequest(String... args) {
return harnessProvider.getRequestFactory().makeRequest(args);
}
protected void assertQuery(SolrQueryRequest req, String... tests) throws Exception {
assertNull(harnessProvider.getHarness().validateQuery(req, tests));
}
}