package com.enonic.cms.core.plugin.ext;
import java.util.List;
import org.junit.Test;
import com.enonic.cms.api.plugin.ext.http.HttpProcessor;
import static org.junit.Assert.*;
public abstract class HttpProcessorExtensionsTest<E extends HttpProcessor, P extends HttpProcessorExtensions<E>>
extends ExtensionPointTest<E, P>
{
public HttpProcessorExtensionsTest( final Class<E> type )
{
super( type );
}
protected abstract E createExt();
private E create( final int priority, final String pattern )
{
final E ext = createExt();
ext.setPriority( priority );
ext.setUrlPattern( pattern );
return ext;
}
@Override
protected final E createOne()
{
return create( 1, "/path/a" );
}
@Override
protected final E createTwo()
{
return create( 2, "/path/b" );
}
@Test
public void testFindMatching()
{
final List<E> list1 = this.extensions.findMatching( "/path" );
assertEquals( 0, list1.size() );
this.extensions.addExtension( this.ext1 );
this.extensions.addExtension( this.ext2 );
final List<E> list2 = this.extensions.findMatching( "/path/a" );
assertEquals( 1, list2.size() );
assertSame( this.ext1, list2.get( 0 ) );
final List<E> list3 = this.extensions.findMatching( "/path/c" );
assertEquals( 0, list3.size() );
}
}