/*
* Copyright 2015 Hewlett-Packard Development Company, L.P.
* Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License.
*/
package com.hp.autonomy.frontend.find.hod.web;
import com.hp.autonomy.frontend.find.core.web.RequestMapper;
import com.hp.autonomy.frontend.find.core.web.RequestMapperTest;
import com.hp.autonomy.hod.client.api.resource.ResourceName;
import com.hp.autonomy.hod.client.api.textindex.query.search.Sort;
import com.hp.autonomy.hod.client.api.textindex.query.search.Summary;
import com.hp.autonomy.searchcomponents.hod.requests.HodRequestBuilderConfiguration;
import com.hp.autonomy.searchcomponents.hod.search.HodQueryRequest;
import com.hp.autonomy.searchcomponents.hod.search.HodQueryRequestBuilder;
import com.hp.autonomy.searchcomponents.hod.search.HodQueryRestrictions;
import com.hp.autonomy.searchcomponents.hod.search.HodQueryRestrictionsBuilder;
import org.apache.commons.io.IOUtils;
import org.junit.ClassRule;
import org.junit.Rule;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.rules.SpringClassRule;
import org.springframework.test.context.junit4.rules.SpringMethodRule;
import java.io.IOException;
import java.util.List;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertNull;
@SuppressWarnings("SpringJavaAutowiredMembersInspection")
@SpringBootTest(classes = HodRequestBuilderConfiguration.class)
public class HodRequestMapperTest extends RequestMapperTest<HodQueryRequest, HodQueryRestrictions, ResourceName> {
@ClassRule
public static final SpringClassRule SCR = new SpringClassRule();
@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();
@Autowired
private HodQueryRestrictionsBuilder queryRestrictionsBuilder;
@Autowired
private HodQueryRequestBuilder queryRequestBuilder;
@Override
protected RequestMapper<HodQueryRequest> constructRequestMapper() {
return new HodRequestMapper(queryRestrictionsBuilder, queryRequestBuilder);
}
@Override
protected String completeJsonObject() throws IOException {
return IOUtils.toString(HodRequestMapperTest.class.getResourceAsStream("/com/hp/autonomy/frontend/find/hod/web/search-request.json"));
}
@Override
protected String minimalJsonObject() throws IOException {
return IOUtils.toString(HodRequestMapperTest.class.getResourceAsStream("/com/hp/autonomy/frontend/find/hod/web/search-request-minimal.json"));
}
@Override
protected void validateDatabases(final List<ResourceName> databases) {
assertThat(databases, hasItem(is(new ResourceName("ClassicalDomain", "ClassicalLiterature"))));
assertThat(databases, hasItem(is(new ResourceName("ClassicalDomain", "EpicLiterature"))));
}
@Override
protected void validate(final HodQueryRequest queryRequest) {
assertThat(queryRequest.getSummary(), is(Summary.off.name()));
assertThat(queryRequest.getSort(), is(Sort.relevance.name()));
}
@Override
protected void validateMinimal(final HodQueryRequest queryRequest) {
assertThat(queryRequest.getSummary(), is(Summary.off.name()));
assertNull(queryRequest.getSort());
}
}