package com.eclipsesource.tabris.xcallbackurl;
import static org.junit.Assert.assertEquals;
import java.util.Map;
import org.junit.Test;
public class XCallbackConfigurationTest {
@Test( expected = IllegalArgumentException.class )
public void testNullScheme() {
new XCallbackConfiguration( null, "action" );
}
@Test( expected = IllegalArgumentException.class )
public void testEmptyScheme() {
new XCallbackConfiguration( "", "action" );
}
@Test( expected = IllegalArgumentException.class )
public void testNullAction() {
new XCallbackConfiguration( "target", null );
}
@Test( expected = IllegalArgumentException.class )
public void testEmptyAction() {
new XCallbackConfiguration( "target", "" );
}
@Test
public void testGetScheme() {
XCallbackConfiguration configuration = new XCallbackConfiguration( "target", "action" );
String targetScheme = configuration.getTargetScheme();
assertEquals( "target", targetScheme );
}
@Test
public void testGetTargetAction() {
XCallbackConfiguration configuration = new XCallbackConfiguration( "target", "action" );
String targetAction = configuration.getTargetAction();
assertEquals( "action", targetAction );
}
@Test
public void testGetSource() {
XCallbackConfiguration configuration = new XCallbackConfiguration( "target", "action" );
configuration.setXSource( "source" );
String xSource = configuration.getXSource();
assertEquals( "source", xSource );
}
@Test( expected = IllegalArgumentException.class )
public void testSetSourceFailsWithNull() {
XCallbackConfiguration configuration = new XCallbackConfiguration( "target", "action" );
configuration.setXSource( null );
}
@Test( expected = IllegalArgumentException.class )
public void testSetSourceFailsWithEmptySource() {
XCallbackConfiguration configuration = new XCallbackConfiguration( "target", "action" );
configuration.setXSource( "" );
}
@Test
public void testAddParameters() {
XCallbackConfiguration configuration = new XCallbackConfiguration( "target", "action" );
configuration.addActionParameter( "foo1", "bar1" );
configuration.addActionParameter( "foo2", "bar2" );
Map<String, String> actionParameters = configuration.getActionParameters();
assertEquals( 2, actionParameters.size() );
assertEquals( "bar1", actionParameters.get( "foo1" ) );
assertEquals( "bar2", actionParameters.get( "foo2" ) );
}
@Test
public void testAddParametersIsASafeCopy() {
XCallbackConfiguration configuration = new XCallbackConfiguration( "target", "action" );
configuration.addActionParameter( "foo1", "bar1" );
Map<String, String> actionParameters = configuration.getActionParameters();
configuration.addActionParameter( "foo2", "bar2" );
assertEquals( 1, actionParameters.size() );
assertEquals( "bar1", actionParameters.get( "foo1" ) );
}
@Test( expected = IllegalArgumentException.class )
public void testAddParameterFailsWithNullKey() {
XCallbackConfiguration configuration = new XCallbackConfiguration( "target", "action" );
configuration.addActionParameter( null, "bar1" );
}
@Test( expected = IllegalArgumentException.class )
public void testAddParameterFailsWithEmptyKey() {
XCallbackConfiguration configuration = new XCallbackConfiguration( "target", "action" );
configuration.addActionParameter( "", "bar1" );
}
@Test( expected = IllegalArgumentException.class )
public void testAddParameterFailsWithNullValue() {
XCallbackConfiguration configuration = new XCallbackConfiguration( "target", "action" );
configuration.addActionParameter( "foo1", null );
}
@Test( expected = IllegalArgumentException.class )
public void testAddParameterFailsWithEmptyValue() {
XCallbackConfiguration configuration = new XCallbackConfiguration( "target", "action" );
configuration.addActionParameter( "foo1", "" );
}
}