blob: 5f62d1b60db96bf7e802a1473d85e993923bef9c [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.io.IOException;
import org.apache.lucene.search.Query;
import org.apache.maven.index.expr.SourcedSearchExpression;
import org.apache.maven.index.search.grouping.GAGrouping;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.logging.LoggerManager;
public class Mindexer14HitLimitTest
extends AbstractNexusIndexerTest
{
protected File repo = new File( getBasedir(), "target/repo/mindexer14" );
@Override
protected void prepareNexusIndexer( NexusIndexer nexusIndexer )
throws Exception
{
// Put Plexus into DEBUG mode
lookup( LoggerManager.class ).setThresholds( Logger.LEVEL_DEBUG );
repo.mkdirs();
context =
nexusIndexer.addIndexingContext( "mindexer14", "mindexer14", repo, indexDir, null, null, MIN_CREATORS );
nexusIndexer.scan( context, false );
}
protected void createDummyAis( final String gid, final String aid, final int count )
throws IOException
{
int version = 0;
for ( int i = 0; i < count; i++ )
{
final ArtifactInfo ai = new ArtifactInfo( "mindexer14", gid, aid, String.valueOf( version++ ), null, "jar" );
final ArtifactContext ac = new ArtifactContext( null, null, null, ai, ai.calculateGav() );
nexusIndexer.addArtifactToIndex( ac, context );
}
}
public void testFlatSearchTotalHitsLie1k()
throws Exception
{
createDummyAis( "org.test", "mindexer14", 1010 );
Query query = nexusIndexer.constructQuery( MAVEN.GROUP_ID, new SourcedSearchExpression( "org.test" ) );
FlatSearchRequest request = new FlatSearchRequest( query );
FlatSearchResponse response = nexusIndexer.searchFlat( request );
assertEquals( 1010, response.getTotalHitsCount() );
response.close();
}
public void testFlatSearchUnlimited()
throws Exception
{
createDummyAis( "org.test", "mindexer14", 1010 );
Query query = nexusIndexer.constructQuery( MAVEN.GROUP_ID, new SourcedSearchExpression( "org.test" ) );
FlatSearchRequest request = new FlatSearchRequest( query );
FlatSearchResponse response = nexusIndexer.searchFlat( request );
assertEquals( 1010, response.getTotalHitsCount() );
assertEquals( 1010, response.getReturnedHitsCount() );
assertEquals( 1010, response.getResults().size() );
response.close();
}
public void testFlatSearchLimited()
throws Exception
{
createDummyAis( "org.test", "mindexer14", 1010 );
Query query = nexusIndexer.constructQuery( MAVEN.GROUP_ID, new SourcedSearchExpression( "org.test" ) );
FlatSearchRequest request = new FlatSearchRequest( query );
request.setCount( 234 );
FlatSearchResponse response = nexusIndexer.searchFlat( request );
assertEquals( 1010, response.getTotalHitsCount() );
assertEquals( 234, response.getReturnedHitsCount() );
assertEquals( 234, response.getResults().size() );
response.close();
}
public void testGroupedSearchTotalHitsLie1k()
throws Exception
{
createDummyAis( "org.test", "mindexer14", 1010 );
Query query = nexusIndexer.constructQuery( MAVEN.GROUP_ID, new SourcedSearchExpression( "org.test" ) );
GroupedSearchRequest request = new GroupedSearchRequest( query, new GAGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
assertEquals( 1010, response.getTotalHitsCount() );
// in case of GroupedSearch, grouping is the one that defines count
// we have 1010 dummies with same GA, and GA grouping, hence count is 1 just like the map has 1 entry
assertEquals( 1, response.getReturnedHitsCount() );
assertEquals( 1, response.getResults().size() );
response.close();
}
public void testIteratorSearchTotalHitsLie1k()
throws Exception
{
createDummyAis( "org.test", "mindexer14", 1010 );
Query query = nexusIndexer.constructQuery( MAVEN.GROUP_ID, new SourcedSearchExpression( "org.test" ) );
IteratorSearchRequest request = new IteratorSearchRequest( query );
IteratorSearchResponse response = nexusIndexer.searchIterator( request );
assertEquals( 1010, response.getTotalHitsCount() );
response.close();
}
}