/* * Copyright 2014 Nicolas Morel * * 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 com.github.nmorel.gwtjackson.client.mixins; import com.github.nmorel.gwtjackson.client.GwtJacksonTestCase; import com.github.nmorel.gwtjackson.client.ObjectWriter; import com.github.nmorel.gwtjackson.client.annotation.JsonMixIns; import com.github.nmorel.gwtjackson.client.annotation.JsonMixIns.JsonMixIn; import com.github.nmorel.gwtjackson.shared.ObjectWriterTester; import com.github.nmorel.gwtjackson.shared.mixins.MixinSerForMethodsTester; import com.github.nmorel.gwtjackson.shared.mixins.MixinSerForMethodsTester.BaseClass; import com.github.nmorel.gwtjackson.shared.mixins.MixinSerForMethodsTester.LeafClass; import com.github.nmorel.gwtjackson.shared.mixins.MixinSerForMethodsTester.MixIn; import com.github.nmorel.gwtjackson.shared.mixins.MixinSerForMethodsTester.ObjectMixIn; import com.github.nmorel.gwtjackson.shared.mixins.MixinSerForMethodsTester.SimpleBean; import com.google.gwt.core.client.GWT; /** * @author Nicolas Morel */ public class MixinSerForMethodsGwtTest extends GwtJacksonTestCase { private MixinSerForMethodsTester tester = MixinSerForMethodsTester.INSTANCE; /////// @JsonMixIns({@JsonMixIn(target = BaseClass.class, mixIn = MixIn.class)}) public interface BaseClassMixinWriter extends ObjectWriter<BaseClass>, ObjectWriterTester<BaseClass> { static BaseClassMixinWriter INSTANCE = GWT.create( BaseClassMixinWriter.class ); } public void testLeafMixin() { tester.testLeafMixin( BaseClassMixinWriter.INSTANCE ); } /////// @JsonMixIns({@JsonMixIn(target = BaseClass.class, mixIn = MixIn.class)}) public interface LeafClassMixinWriter extends ObjectWriter<LeafClass>, ObjectWriterTester<LeafClass> { static LeafClassMixinWriter INSTANCE = GWT.create( LeafClassMixinWriter.class ); } public void testIntermediateMixin() { tester.testIntermediateMixin( LeafClassMixinWriter.INSTANCE ); } /////// // MixIn added via MixInConfiguration public interface SimpleBeanMixinWriter extends ObjectWriter<SimpleBean>, ObjectWriterTester<SimpleBean> { static SimpleBeanMixinWriter INSTANCE = GWT.create( SimpleBeanMixinWriter.class ); } public void testIntermediateMixin2() { tester.testIntermediateMixin2( SimpleBeanMixinWriter.INSTANCE ); } /////// @JsonMixIns({@JsonMixIn(target = Object.class, mixIn = ObjectMixIn.class)}) public interface ObjectMixinWriter extends ObjectWriter<BaseClass>, ObjectWriterTester<BaseClass> { static ObjectMixinWriter INSTANCE = GWT.create( ObjectMixinWriter.class ); } public void testObjectMixin() { tester.testObjectMixin( ObjectMixinWriter.INSTANCE ); } }