package org.deegree.securityproxy.authentication.ows.domain;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import org.deegree.securityproxy.request.OwsServiceVersion;
import org.junit.Test;
/**
* @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz</a>
* @author last edited by: $Author: lyn $
*
* @version $Revision: $, $Date: $
*/
public class LimitedOwsServiceVersionTest {
private static final OwsServiceVersion VERSION_090 = new OwsServiceVersion( 0, 9, 0 );
private static final OwsServiceVersion VERSION_100 = new OwsServiceVersion( 1, 0, 0 );
private static final OwsServiceVersion VERSION_110 = new OwsServiceVersion( 1, 1, 0 );
@Test
public void testConstructorEqualSingle()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "= 1.1.0" );
assertThat( parsed.getVersion(), is( VERSION_110 ) );
assertThat( parsed.getLimitType(), is( "==" ) );
}
@Test
public void testConstructorEqualMultiple()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "== 1.1.0" );
assertThat( parsed.getVersion(), is( VERSION_110 ) );
assertThat( parsed.getLimitType(), is( "==" ) );
}
@Test
public void testConstructorSmallerThanSingle()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "< 1.1.0" );
assertThat( parsed.getVersion(), is( VERSION_110 ) );
assertThat( parsed.getLimitType(), is( "<" ) );
}
@Test
public void testConstructorGreaterThanSingle()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "> 1.1.0" );
assertThat( parsed.getVersion(), is( VERSION_110 ) );
assertThat( parsed.getLimitType(), is( ">" ) );
}
@Test
public void testConstructorSmallerThanMultiple()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "<= 1.1.0" );
assertThat( parsed.getVersion(), is( VERSION_110 ) );
assertThat( parsed.getLimitType(), is( "<=" ) );
}
@Test
public void testConstructorSmallerThanMultipleSwitched()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "=< 1.1.0" );
assertThat( parsed.getVersion(), is( VERSION_110 ) );
assertThat( parsed.getLimitType(), is( "<=" ) );
}
@Test
public void testConstructorGreaterThanMultiple()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( ">= 1.0.0" );
assertThat( parsed.getVersion(), is( VERSION_100 ) );
assertThat( parsed.getLimitType(), is( ">=" ) );
}
@Test
public void testConstructorGreaterThanMultipleSwitched()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "=> 1.0.0" );
assertThat( parsed.getVersion(), is( VERSION_100 ) );
assertThat( parsed.getLimitType(), is( ">=" ) );
}
@Test
public void testConstructorWithSimpleVersion()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "1.1.0" );
assertThat( parsed.getVersion(), is( VERSION_110 ) );
assertThat( parsed.getLimitType(), is( "==" ) );
}
@Test(expected = IllegalArgumentException.class)
public void testConstructorNull() {
new LimitedOwsServiceVersion( null );
}
@Test(expected = IllegalArgumentException.class)
public void testConstructorEmpty() {
new LimitedOwsServiceVersion( "" );
}
@Test(expected = IllegalArgumentException.class)
public void testConstructorNotMatching() {
new LimitedOwsServiceVersion( "greater 1.0.0" );
}
@Test
public void testContainsInLimitGreaterEqual()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "=> 1.0.0" );
assertThat( parsed.contains( VERSION_110 ), is( true ) );
}
@Test
public void testContainsInLimitEqualGreaterEqual()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "=> 1.0.0" );
assertThat( parsed.contains( VERSION_100 ), is( true ) );
}
@Test
public void testContainsOutOfLimitGreaterEqual()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "=> 1.0.0" );
assertThat( parsed.contains( VERSION_090 ), is( false ) );
}
@Test
public void testContainsInLimitGreater()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "> 1.0.0" );
assertThat( parsed.contains( VERSION_110 ), is( true ) );
}
@Test
public void testContainsInLimitEqualGreater()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "> 1.0.0" );
assertThat( parsed.contains( VERSION_100 ), is( false ) );
}
@Test
public void testContainsOutOfLimitGreater()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "> 1.0.0" );
assertThat( parsed.contains( VERSION_090 ), is( false ) );
}
@Test
public void testContainsInLimitEqual()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "= 1.0.0" );
assertThat( parsed.contains( VERSION_110 ), is( false ) );
}
@Test
public void testContainsInLimitEqualEqua()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "= 1.0.0" );
assertThat( parsed.contains( VERSION_100 ), is( true ) );
}
@Test
public void testContainsOutOfLimitEqual()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "= 1.0.0" );
assertThat( parsed.contains( VERSION_090 ), is( false ) );
}
@Test
public void testContainsInLimitLessEqual()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "<= 1.0.0" );
assertThat( parsed.contains( VERSION_110 ), is( false ) );
}
@Test
public void testContainsInLimitEqualLessEqual()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "=< 1.0.0" );
assertThat( parsed.contains( VERSION_100 ), is( true ) );
}
@Test
public void testContainsOutOfLimitLessEqual()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "<= 1.0.0" );
assertThat( parsed.contains( VERSION_090 ), is( true ) );
}
@Test
public void testContainsInLimitLess()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "< 1.0.0" );
assertThat( parsed.contains( VERSION_110 ), is( false ) );
}
@Test
public void testContainsInLimitEqualLess()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "< 1.0.0" );
assertThat( parsed.contains( VERSION_100 ), is( false ) );
}
@Test
public void testContainsOutOfLimitLess()
throws Exception {
LimitedOwsServiceVersion parsed = new LimitedOwsServiceVersion( "< 1.0.0" );
assertThat( parsed.contains( VERSION_090 ), is( true ) );
}
}