package de.axone.web;
import static org.assertj.core.api.Assertions.*;
import static org.testng.Assert.*;
import org.assertj.core.api.AbstractAssert;
import org.assertj.core.api.AbstractIterableAssert;
import de.axone.web.SuperURL.Encode;
public class SuperURLAssert
extends AbstractAssert<SuperURLAssert, SuperURL> {
protected SuperURLAssert( SuperURL actual ) {
super( actual, SuperURLAssert.class );
}
public SuperURLAssert isEqualTo( SuperURL expected ){
assertEquals( actual.getScheme(), expected.getScheme() );
assertThat( actual.getHost() ).isEqualTo( expected.getHost() );
assertEquals( actual.getPort(), expected.getPort() );
assertThat( actual.getPath() ).isEqualTo( expected.getPath() );
assertThat( actual.getQuery() ).isEqualTo( expected.getQuery() );
assertEquals( actual.getPath(), expected.getPath() );
for( Encode encode : Encode.values() ){
assertThat( actual.toStringEncode( encode ) )
.as( encode.toString() )
.isEqualTo( expected.toStringEncode( encode ) );
}
assertEquals( actual, expected );
return this;
}
public static class HostAssert extends AbstractIterableAssert<HostAssert, SuperURL.Host, String> {
protected HostAssert( SuperURL.Host actual ) {
super( actual, HostAssert.class );
}
public HostAssert isEqualTo( SuperURL.Host expected ){
assertThat( actual.toList() )
.isEqualTo( expected.toList() )
;
return myself;
}
public HostAssert hostEquals( String string ) {
assertThat( actual.getHost() )
.isEqualTo( string )
;
return this;
}
public HostAssert netContains( String string, int i ) {
assertThat( actual.getNet() )
.hasSize( i+1 )
.contains( string, atIndex( i ) )
;
return this;
}
public HostAssert tldEquals( String string ) {
assertThat( actual.getTld() )
.isEqualTo( string )
;
return this;
}
public HostAssert netAsStringEquals( String string ) {
assertThat( actual.getNetAsString() )
.isEqualTo( string )
;
return this;
}
public HostAssert asStringEquals( SuperURL.Encode encode, String hostStr ) {
assertThat( actual.toStringEncode( encode ) )
.isEqualTo( hostStr )
;
return this;
}
}
public static class PathAssert extends AbstractIterableAssert<PathAssert, SuperURL.Path, String> {
protected PathAssert( SuperURL.Path actual ) {
super( actual, PathAssert.class );
}
public PathAssert isEqualTo( SuperURL.Path other ){
assertThat( actual.toList() )
.isEqualTo( other.toList() );
;
return myself;
}
}
public static class QueryAssert extends AbstractIterableAssert<QueryAssert, SuperURL.Query, SuperURL.Query.QueryPart> {
protected QueryAssert( SuperURL.Query actual ) {
super( actual, QueryAssert.class );
}
public QueryAssert contains( String string, String string2 ) {
contains( new SuperURL.Query.QueryPart( string, string2 ) );
return myself;
}
}
public static class QueryPartAssert extends AbstractAssert<QueryPartAssert, SuperURL.Query.QueryPart> {
protected QueryPartAssert( SuperURL.Query.QueryPart actual ) {
super( actual, QueryAssert.class );
}
}
}