/* * Copyright 2015 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.annotation; import com.github.nmorel.gwtjackson.client.GwtJacksonTestCase; import com.github.nmorel.gwtjackson.client.JsonSerializationContext; import com.github.nmorel.gwtjackson.client.ObjectWriter; import com.github.nmorel.gwtjackson.client.annotation.JsonMixIns.JsonMixIn; import com.github.nmorel.gwtjackson.shared.ObjectWriterTester; import com.github.nmorel.gwtjackson.shared.annotations.JsonIncludeTester; import com.github.nmorel.gwtjackson.shared.annotations.JsonIncludeTester.BeanJsonInclude; import com.github.nmorel.gwtjackson.shared.annotations.JsonIncludeTester.BeanJsonIncludeOnProperties; import com.github.nmorel.gwtjackson.shared.annotations.JsonIncludeTester.MixInIncludeAlways; import com.github.nmorel.gwtjackson.shared.annotations.JsonIncludeTester.MixInIncludeNonAbsent; import com.github.nmorel.gwtjackson.shared.annotations.JsonIncludeTester.MixInIncludeNonDefault; import com.github.nmorel.gwtjackson.shared.annotations.JsonIncludeTester.MixInIncludeNonEmpty; import com.github.nmorel.gwtjackson.shared.annotations.JsonIncludeTester.MixInIncludeNonNull; import com.github.nmorel.gwtjackson.shared.annotations.JsonIncludeTester.MixInIncludeUseDefaults; import com.google.gwt.core.client.GWT; /** * @author Nicolas Morel */ public class JsonIncludeGwtTest extends GwtJacksonTestCase { private JsonIncludeTester tester = JsonIncludeTester.INSTANCE; /* ################################ */ public interface BeanJsonIncludeDefaultMapper extends ObjectWriter<BeanJsonInclude>, ObjectWriterTester<BeanJsonInclude> { static BeanJsonIncludeDefaultMapper INSTANCE = GWT.create( BeanJsonIncludeDefaultMapper.class ); } public void testSerializeDefault() { tester.testSerializeDefault( createWriter( BeanJsonIncludeDefaultMapper.INSTANCE ) ); } /* ################################ */ @JsonMixIns( value = {@JsonMixIn( target = BeanJsonInclude.class, mixIn = MixInIncludeAlways.class )} ) public interface BeanJsonIncludeAlwaysMapper extends ObjectWriter<BeanJsonInclude>, ObjectWriterTester<BeanJsonInclude> { static BeanJsonIncludeAlwaysMapper INSTANCE = GWT.create( BeanJsonIncludeAlwaysMapper.class ); } public void testSerializeAlways() { tester.testSerializeAlways( createWriter( BeanJsonIncludeAlwaysMapper.INSTANCE, JsonSerializationContext.builder() .serializeNulls( false ).build() ) ); } /* ################################ */ @JsonMixIns( value = {@JsonMixIn( target = BeanJsonInclude.class, mixIn = MixInIncludeNonDefault.class )} ) public interface BeanJsonIncludeNonDefaultMapper extends ObjectWriter<BeanJsonInclude>, ObjectWriterTester<BeanJsonInclude> { static BeanJsonIncludeNonDefaultMapper INSTANCE = GWT.create( BeanJsonIncludeNonDefaultMapper.class ); } public void testSerializeNonDefault() { tester.testSerializeNonDefault( BeanJsonIncludeNonDefaultMapper.INSTANCE ); } /* ################################ */ @JsonMixIns( value = {@JsonMixIn( target = BeanJsonInclude.class, mixIn = MixInIncludeNonEmpty.class )} ) public interface BeanJsonIncludeNonEmptyMapper extends ObjectWriter<BeanJsonInclude>, ObjectWriterTester<BeanJsonInclude> { static BeanJsonIncludeNonEmptyMapper INSTANCE = GWT.create( BeanJsonIncludeNonEmptyMapper.class ); } public void testSerializeNonEmpty() { tester.testSerializeNonEmpty( BeanJsonIncludeNonEmptyMapper.INSTANCE ); } /* ################################ */ @JsonMixIns( value = {@JsonMixIn( target = BeanJsonInclude.class, mixIn = MixInIncludeNonNull.class )} ) public interface BeanJsonIncludeNonNullMapper extends ObjectWriter<BeanJsonInclude>, ObjectWriterTester<BeanJsonInclude> { static BeanJsonIncludeNonNullMapper INSTANCE = GWT.create( BeanJsonIncludeNonNullMapper.class ); } public void testSerializeNonNull() { tester.testSerializeNonNull( BeanJsonIncludeNonNullMapper.INSTANCE ); } /* ################################ */ @JsonMixIns( value = {@JsonMixIn( target = BeanJsonInclude.class, mixIn = MixInIncludeNonAbsent.class )} ) public interface BeanJsonIncludeNonAbsentMapper extends ObjectWriter<BeanJsonInclude>, ObjectWriterTester<BeanJsonInclude> { static BeanJsonIncludeNonAbsentMapper INSTANCE = GWT.create( BeanJsonIncludeNonAbsentMapper.class ); } public void testSerializeNonAbsent() { tester.testSerializeNonAbsent( BeanJsonIncludeNonAbsentMapper.INSTANCE ); } /* ################################ */ @JsonMixIns( value = {@JsonMixIn( target = BeanJsonInclude.class, mixIn = MixInIncludeUseDefaults.class )} ) public interface BeanJsonIncludeUseDefaultsMapper extends ObjectWriter<BeanJsonInclude>, ObjectWriterTester<BeanJsonInclude> { static BeanJsonIncludeUseDefaultsMapper INSTANCE = GWT.create( BeanJsonIncludeUseDefaultsMapper.class ); } public void testSerializeUseDefaults() { tester.testSerializeUseDefaults( BeanJsonIncludeUseDefaultsMapper.INSTANCE ); } /* ################################ */ public interface BeanJsonIncludeOnPropertiesMapper extends ObjectWriter<BeanJsonIncludeOnProperties>, ObjectWriterTester<BeanJsonIncludeOnProperties> { static BeanJsonIncludeOnPropertiesMapper INSTANCE = GWT.create( BeanJsonIncludeOnPropertiesMapper.class ); } public void testSerializeProperties() { tester.testSerializeProperties( BeanJsonIncludeOnPropertiesMapper.INSTANCE ); } }