/*******************************************************************************
* Copyright (c) 2015 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* EclipseSource - initial API and implementation
******************************************************************************/
package org.eclipse.rap.rwt.internal.client;
import static org.eclipse.rap.rwt.internal.protocol.RemoteObjectFactory.getRemoteObject;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import java.util.Collection;
import java.util.List;
import org.eclipse.rap.json.JsonArray;
import org.eclipse.rap.json.JsonObject;
import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.client.service.StartupParameters;
import org.eclipse.rap.rwt.internal.remote.RemoteObjectImpl;
import org.eclipse.rap.rwt.remote.OperationHandler;
import org.eclipse.rap.rwt.testfixture.TestContext;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
public class StartupParametersImpl_Test {
private static final String TYPE = "rwt.client.StartupParameters";
@Rule
public TestContext context = new TestContext();
private StartupParameters service;
@Before
public void setUp() {
service = RWT.getClient().getService( StartupParameters.class );
}
@Test
public void testGetParametersNames() {
JsonObject parameters = new JsonObject()
.add( "param1", new JsonArray().add( "foo" ) )
.add( "param2", new JsonArray().add( "bar" ) );
fakeParameters( parameters );
Collection<String> parameterNames = service.getParameterNames();
assertEquals( 2, parameterNames.size() );
assertTrue( parameterNames.contains( "param1" ) );
assertTrue( parameterNames.contains( "param2" ) );
}
@Test( expected = NullPointerException.class )
public void testGetParameter_nullName() {
service.getParameter( null );
}
@Test( expected = IllegalArgumentException.class )
public void testGetParameter_emptyStringName() {
service.getParameter( "" );
}
@Test
public void testGetParameter() {
JsonObject parameters = new JsonObject()
.add( "param1", new JsonArray().add( "foo" ) );
fakeParameters( parameters );
assertEquals( "foo", service.getParameter( "param1" ) );
}
@Test
public void testGetParameter_multipleValues() {
JsonObject parameters = new JsonObject()
.add( "param1", new JsonArray().add( "foo" ).add( "bar" ) );
fakeParameters( parameters );
assertEquals( "foo", service.getParameter( "param1" ) );
}
@Test
public void testGetParameter_missingParameter() {
JsonObject parameters = new JsonObject()
.add( "param1", new JsonArray().add( "foo" ) );
fakeParameters( parameters );
assertNull( service.getParameter( "param2" ) );
}
@Test( expected = NullPointerException.class )
public void testGetParameterValues_nullName() {
service.getParameterValues( null );
}
@Test( expected = IllegalArgumentException.class )
public void testGetParameterValues_emptyStringName() {
service.getParameterValues( "" );
}
@Test
public void testGetParameterValues() {
JsonObject parameters = new JsonObject()
.add( "param1", new JsonArray().add( "foo" ).add( "bar" ) );
fakeParameters( parameters );
List<String> parameterValues = service.getParameterValues( "param1" );
assertEquals( 2, parameterValues.size() );
assertEquals( "foo", parameterValues.get( 0 ) );
assertEquals( "bar", parameterValues.get( 1 ) );
}
@Test
public void testGetParameterValues_missingParameter() {
JsonObject parameters = new JsonObject()
.add( "param1", new JsonArray().add( "foo" ) );
fakeParameters( parameters );
assertNull( service.getParameterValues( "param2" ) );
}
private void fakeParameters( JsonObject parameters ) {
OperationHandler handler = ( ( RemoteObjectImpl )getRemoteObject( TYPE ) ).getHandler();
handler.handleSet( new JsonObject().add( "parameters", parameters ) );
}
}