public void testSearchGroupedClasses()
throws Exception
{
{
Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "com/thoughtworks/qdox", SearchType.SCORED );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GAGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
assertEquals( r.toString(), 2, r.size() ); // qdox and testng
assertTrue( r.containsKey( "qdox : qdox" ) );
assertTrue( r.containsKey( "org.testng : testng" ) );
assertEquals( "qdox : qdox", r.get( "qdox : qdox" ).getGroupKey() );
assertEquals( "org.testng : testng", r.get( "org.testng : testng" ).getGroupKey() );
}
{
Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "com.thoughtworks.qdox", SearchType.SCORED );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GAGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
assertEquals( r.toString(), 2, r.size() );
assertTrue( r.containsKey( "qdox : qdox" ) );
assertTrue( r.containsKey( "org.testng : testng" ) );
assertEquals( "qdox : qdox", r.get( "qdox : qdox" ).getGroupKey() );
assertEquals( "org.testng : testng", r.get( "org.testng : testng" ).getGroupKey() );
}
{
Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "thoughtworks", SearchType.SCORED );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GAGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
assertEquals( r.toString(), 2, r.size() );
assertTrue( r.containsKey( "qdox : qdox" ) );
assertTrue( r.containsKey( "org.testng : testng" ) );
assertEquals( "qdox : qdox", r.get( "qdox : qdox" ).getGroupKey() );
assertEquals( "org.testng : testng", r.get( "org.testng : testng" ).getGroupKey() );
}
{
// an implicit class name wildcard
Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "Logger", SearchType.SCORED );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
assertEquals( r.toString(), 2, r.size() );
Iterator<ArtifactInfoGroup> it = r.values().iterator();
ArtifactInfoGroup ig1 = it.next();
assertEquals( r.toString(), "org.slf4j", ig1.getGroupKey() );
ArtifactInfoGroup ig2 = it.next();
assertEquals( r.toString(), "org.testng", ig2.getGroupKey() );
}
{
// a lower case search
Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "logger", SearchType.SCORED );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
assertEquals( r.toString(), 2, r.size() );
Iterator<ArtifactInfoGroup> it = r.values().iterator();
ArtifactInfoGroup ig1 = it.next();
assertEquals( r.toString(), "org.slf4j", ig1.getGroupKey() );
ArtifactInfoGroup ig2 = it.next();
assertEquals( r.toString(), "org.testng", ig2.getGroupKey() );
}
{
// explicit class name wildcard without terminator
// Since 4.0 query starting with * is illegal
// Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "*.Logger", SearchType.SCORED );
Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, ".Logger", SearchType.SCORED );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
assertEquals( r.toString(), 2, r.size() );
Iterator<ArtifactInfoGroup> it = r.values().iterator();
ArtifactInfoGroup ig1 = it.next();
assertEquals( r.toString(), "org.slf4j", ig1.getGroupKey() );
ArtifactInfoGroup ig2 = it.next();
assertEquals( r.toString(), "org.testng", ig2.getGroupKey() );
}
{
// explicit class name wildcard with terminator
// Since 4.0 query starting with * is illegal
// Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "*.Logger ", SearchType.SCORED );
Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, ".Logger ", SearchType.SCORED );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
assertEquals( r.toString(), 2, r.size() );
Iterator<ArtifactInfoGroup> it = r.values().iterator();
ArtifactInfoGroup ig1 = it.next();
assertEquals( r.toString(), "org.slf4j", ig1.getGroupKey() );
ArtifactInfoGroup ig2 = it.next();
assertEquals( r.toString(), "org.testng", ig2.getGroupKey() );
}
{
// a class name wildcard
// Since 4.0 query starting with * is illegal
// Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "*Logger", SearchType.SCORED );
Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "Logger", SearchType.SCORED );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
// Results are less, since no PREFIX searches anymore!
// assertEquals( r.toString(), 3, r.size() );
assertEquals( r.toString(), 2, r.size() );
Iterator<ArtifactInfoGroup> it = r.values().iterator();
// Results are less, since no PREFIX searches anymore!
// ArtifactInfoGroup ig1 = it.next();
// assertEquals( r.toString(), "commons-logging", ig1.getGroupKey() ); // Jdk14Logger and LogKitLogger
ArtifactInfoGroup ig2 = it.next();
assertEquals( r.toString(), "org.slf4j", ig2.getGroupKey() );
ArtifactInfoGroup ig3 = it.next();
assertEquals( r.toString(), "org.testng", ig3.getGroupKey() );
}
{
// exact class name
Query q =
nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "org/apache/commons/logging/LogConfigurationException",
SearchType.SCORED );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GAGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
assertEquals( r.toString(), 2, r.size() ); // jcl104-over-slf4j and commons-logging
}
{
// implicit class name pattern
Query q =
nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "org.apache.commons.logging.LogConfigurationException",
SearchType.SCORED );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GAGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
assertEquals( r.toString(), 2, r.size() ); // jcl104-over-slf4j and commons-logging
}
{
// exact class name
Query q =
nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "org.apache.commons.logging.LogConfigurationException",
SearchType.EXACT );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GAGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
assertEquals( r.toString(), 2, r.size() ); // jcl104-over-slf4j and commons-logging
}
{
// package name prefix
Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "org.apache.commons.logging", SearchType.SCORED );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GAGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
assertEquals( r.toString(), 2, r.size() ); // jcl104-over-slf4j and commons-logging
}
{
// Since 4.0, queries cannot start with '*'
// Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "*slf4j*Logg*", SearchType.SCORED );
Query q = nexusIndexer.constructQuery( MAVEN.CLASSNAMES, "slf4j.Logg*", SearchType.SCORED );
GroupedSearchRequest request = new GroupedSearchRequest( q, new GAGrouping() );
GroupedSearchResponse response = nexusIndexer.searchGrouped( request );
Map<String, ArtifactInfoGroup> r = response.getResults();
// Error is fixed, see below
assertEquals( r.toString(), 1, r.size() );