blob: b8700d1c45cf543e070051a67ce7d7b291ef61b9 [file] [log] [blame]
package org.apache.maven.index;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. 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.
*/
import java.io.File;
import java.util.Set;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.WildcardQuery;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
import org.apache.maven.index.context.IndexingContext;
public class Nexus3177HitLimitChecks
extends AbstractNexusIndexerTest
{
protected File repo = new File( getBasedir(), "src/test/repo" );
protected Directory secondIndexDir = new RAMDirectory();
protected IndexingContext secondContext;
@Override
protected void prepareNexusIndexer( NexusIndexer nexusIndexer )
throws Exception
{
context =
nexusIndexer.addIndexingContext( "nexus-3177", "nexus-3177", repo, indexDir, null, null, DEFAULT_CREATORS );
secondContext =
nexusIndexer.addIndexingContext( "nexus-3177b", "nexus-3177b", repo, secondIndexDir, null, null,
DEFAULT_CREATORS );
nexusIndexer.scan( context );
nexusIndexer.scan( secondContext );
}
@Override
protected void unprepareNexusIndexer( NexusIndexer nexusIndexer )
throws Exception
{
super.unprepareNexusIndexer( nexusIndexer );
nexusIndexer.removeIndexingContext( secondContext, false );
}
// ===================================================================
// NOTE: This test, with testing search limits lost it's original meaning,
// since version 4.1.0 there is no notion of hit limit.
// See http://jira.codehaus.org/browse/MINDEXER-14
// Hence, some of the tests, that can keep still original semantics were updated and left in place
// but the two test explicitly testing LIMIT_EXCEEDED were just removed/commented out.
public void testHitLimitNotReachedSingleContext()
throws Exception
{
WildcardQuery q = new WildcardQuery( new Term( ArtifactInfo.UINFO, "*testng*" ) );
FlatSearchRequest request = new FlatSearchRequest( q );
request.setCount( 5 );
// request.setResultHitLimit( 5 );
request.getContexts().add( context );
FlatSearchResponse response = nexusIndexer.searchFlat( request );
Set<ArtifactInfo> r = response.getResults();
assertEquals( r.toString(), 4, r.size() );
assertEquals( r.toString(), 4, response.getTotalHitsCount() );
}
public void testHitLimitEqualSingleContext()
throws Exception
{
WildcardQuery q = new WildcardQuery( new Term( ArtifactInfo.UINFO, "*testng*" ) );
FlatSearchRequest request = new FlatSearchRequest( q );
request.setCount( 4 );
// request.setResultHitLimit( 4 );
request.getContexts().add( context );
FlatSearchResponse response = nexusIndexer.searchFlat( request );
Set<ArtifactInfo> r = response.getResults();
assertEquals( r.toString(), 4, r.size() );
assertEquals( r.toString(), 4, response.getTotalHitsCount() );
}
// See NOTE above
// public void testHitLimitExceededSingleContext()
// throws Exception
// {
// WildcardQuery q = new WildcardQuery( new Term( ArtifactInfo.UINFO, "*testng*" ) );
//
// FlatSearchRequest request = new FlatSearchRequest( q );
// request.setResultHitLimit( 3 );
// request.getContexts().add( context );
//
// FlatSearchResponse response = nexusIndexer.searchFlat( request );
// Set<ArtifactInfo> r = response.getResults();
// assertEquals( r.toString(), 0, r.size() );
// assertEquals( r.toString(), AbstractSearchResponse.LIMIT_EXCEEDED, response.getTotalHits() );
// }
public void testHitLimitNotReachedMultipleContexts()
throws Exception
{
WildcardQuery q = new WildcardQuery( new Term( ArtifactInfo.UINFO, "*testng*" ) );
FlatSearchRequest request = new FlatSearchRequest( q );
request.setCount( 9 );
// request.setResultHitLimit( 9 );
request.setArtifactInfoComparator( ArtifactInfo.REPOSITORY_VERSION_COMPARATOR );
request.getContexts().add( context );
request.getContexts().add( secondContext );
FlatSearchResponse response = nexusIndexer.searchFlat( request );
Set<ArtifactInfo> r = response.getResults();
assertEquals( r.toString(), 8, r.size() );
assertEquals( r.toString(), 8, response.getTotalHitsCount() );
}
public void testHitLimitEqualMultipleContexts()
throws Exception
{
WildcardQuery q = new WildcardQuery( new Term( ArtifactInfo.UINFO, "*testng*" ) );
FlatSearchRequest request = new FlatSearchRequest( q );
request.setCount( 8 );
// request.setResultHitLimit( 8 );
request.setArtifactInfoComparator( ArtifactInfo.REPOSITORY_VERSION_COMPARATOR );
request.getContexts().add( context );
request.getContexts().add( secondContext );
FlatSearchResponse response = nexusIndexer.searchFlat( request );
Set<ArtifactInfo> r = response.getResults();
assertEquals( r.toString(), 8, r.size() );
assertEquals( r.toString(), 8, response.getTotalHitsCount() );
}
// See NOTE above
// public void testHitLimitExceededMultipleContexts()
// throws Exception
// {
// WildcardQuery q = new WildcardQuery( new Term( ArtifactInfo.UINFO, "*testng*" ) );
//
// FlatSearchRequest request = new FlatSearchRequest( q );
// request.setResultHitLimit( 7 );
// request.setArtifactInfoComparator( ArtifactInfo.REPOSITORY_VERSION_COMPARATOR );
// request.getContexts().add( context );
// request.getContexts().add( secondContext );
//
// FlatSearchResponse response = nexusIndexer.searchFlat( request );
// Set<ArtifactInfo> r = response.getResults();
// assertEquals( r.toString(), 0, r.size() );
// assertEquals( r.toString(), AbstractSearchResponse.LIMIT_EXCEEDED, response.getTotalHits() );
// }
}