/** * Copyright (C) 2009-2012 the original author or authors. * See the notice.md file distributed with this work for additional * information regarding copyright ownership. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.fusesource.restygwt.client.complex; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.ws.rs.GET; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import org.fusesource.restygwt.client.Method; import org.fusesource.restygwt.client.MethodCallback; import org.fusesource.restygwt.client.RestService; import com.google.gwt.core.client.GWT; import com.google.gwt.junit.client.GWTTestCase; public class ObjectEncoderDecoderTestGwt extends GWTTestCase { @Override public String getModuleName() { return "org.fusesource.restygwt.ObjectEncoderDecoder"; } public static interface Properties { @GET @Path("{name}") Object getProperty(@PathParam("name") String name); @PUT @Path("{name}") void setProperty(@PathParam("name") String name, Object value); } @Path("/properties") public static interface PropertiesAsync extends RestService { @GET @Path("{name}") void getProperty(@PathParam("name") String name, MethodCallback<Object> callback); @PUT @Path("{name}") void setProperty(@PathParam("name") String name, Object value, MethodCallback<Void> callback); } private void performTest(final String property, final Object expected) { PropertiesAsync properties = GWT.create(PropertiesAsync.class); properties.getProperty(property, new MethodCallback<Object>() { @Override public void onFailure(Method method, Throwable exception) { fail(exception.getMessage()); } @Override public void onSuccess(Method method, Object response) { assertEquals(expected, response); finishTest(); } }); delayTestFinish(10000); } public void testNumber() { performTest("number", 123.0); } public void testString() { performTest("string", "Fred Fredstofferson"); } public void testBoolean() { performTest("boolean", true); } public void testArray() { List<Object> list = new ArrayList<Object>(); list.add(123.0); list.add(true); list.add("Fred Fredstofferson"); performTest("array", list); } public void testMap() { Map<String, Object> map = new HashMap<String, Object>(); map.put("blah", 123.0); performTest("object", map); } }