| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You 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.apache.sling.models.impl; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertNotNull; |
| |
| import javax.inject.Inject; |
| |
| import org.apache.sling.api.resource.Resource; |
| import org.apache.sling.models.annotations.Default; |
| import org.apache.sling.models.annotations.Model; |
| import org.junit.Before; |
| import org.junit.Test; |
| import org.junit.runner.RunWith; |
| import org.mockito.Mock; |
| import org.mockito.runners.MockitoJUnitRunner; |
| |
| @RunWith(MockitoJUnitRunner.class) |
| public class ExtraDefaultTests { |
| |
| @Mock |
| private Resource resource; |
| |
| private ModelAdapterFactory factory; |
| |
| @Before |
| public void setup() { |
| factory = AdapterFactoryTest.createModelAdapterFactory(); |
| factory.adapterImplementations.addClassesAsAdapterAndImplementation(EmptyDefaultsModel.class, WrongTypeDefaultsModel.class); |
| } |
| |
| @Test |
| public void testEmptyDefaults() { |
| EmptyDefaultsModel model = factory.getAdapter(resource, EmptyDefaultsModel.class); |
| assertNotNull(model); |
| assertNotNull(model.booleanArray); |
| assertEquals(0, model.booleanArray.length); |
| assertNotNull(model.doubleArray); |
| assertEquals(0, model.doubleArray.length); |
| assertNotNull(model.floatArray); |
| assertEquals(0, model.floatArray.length); |
| assertNotNull(model.intArray); |
| assertEquals(0, model.intArray.length); |
| assertNotNull(model.longArray); |
| assertEquals(0, model.longArray.length); |
| assertNotNull(model.shortArray); |
| assertEquals(0, model.shortArray.length); |
| assertNotNull(model.booleanWrapperArray); |
| assertEquals(0, model.booleanWrapperArray.length); |
| assertNotNull(model.doubleWrapperArray); |
| assertEquals(0, model.doubleWrapperArray.length); |
| assertNotNull(model.floatWrapperArray); |
| assertEquals(0, model.floatWrapperArray.length); |
| assertNotNull(model.intWrapperArray); |
| assertEquals(0, model.intWrapperArray.length); |
| assertNotNull(model.longWrapperArray); |
| assertEquals(0, model.longWrapperArray.length); |
| assertNotNull(model.shortWrapperArray); |
| assertEquals(0, model.shortWrapperArray.length); |
| assertNotNull(model.stringArray); |
| assertEquals(0, model.stringArray.length); |
| assertEquals(false, model.singleBoolean); |
| assertEquals(0d, model.singleDouble, 0.0001); |
| assertEquals(0f, model.singleFloat, 0.0001); |
| assertEquals(0, model.singleInt); |
| assertEquals(0l, model.singleLong); |
| assertEquals((short) 0, model.singleShort); |
| assertEquals(false, model.singleBooleanWrapper); |
| assertEquals(0d, model.singleDoubleWrapper, 0.0001); |
| assertEquals(0f, model.singleFloatWrapper, 0.0001); |
| assertEquals(0, model.singleIntWrapper.intValue()); |
| assertEquals((short) 0, model.singleShortWrapper.shortValue()); |
| assertEquals(0l, model.singleLongWrapper.longValue()); |
| assertEquals("", model.singleString); |
| } |
| |
| @Test |
| public void testWrongDefaultValues() { |
| WrongTypeDefaultsModel model = factory.getAdapter(resource, WrongTypeDefaultsModel.class); |
| assertNotNull(model); |
| assertNotNull(model.booleanArray); |
| assertEquals(0, model.booleanArray.length); |
| assertNotNull(model.doubleArray); |
| assertEquals(0, model.doubleArray.length); |
| assertNotNull(model.floatArray); |
| assertEquals(0, model.floatArray.length); |
| assertNotNull(model.intArray); |
| assertEquals(0, model.intArray.length); |
| assertNotNull(model.longArray); |
| assertEquals(0, model.longArray.length); |
| assertNotNull(model.shortArray); |
| assertEquals(0, model.shortArray.length); |
| assertNotNull(model.stringArray); |
| assertEquals(0, model.stringArray.length); |
| } |
| |
| @Model(adaptables = Resource.class) |
| public static class EmptyDefaultsModel { |
| |
| @Inject |
| @Default |
| private boolean[] booleanArray; |
| |
| @Inject |
| @Default |
| private double[] doubleArray; |
| |
| @Inject |
| @Default |
| private float[] floatArray; |
| |
| @Inject |
| @Default |
| private int[] intArray; |
| |
| @Inject |
| @Default |
| private long[] longArray; |
| |
| @Inject |
| @Default |
| private short[] shortArray; |
| |
| @Inject |
| @Default |
| private Boolean[] booleanWrapperArray; |
| |
| @Inject |
| @Default |
| private Double[] doubleWrapperArray; |
| |
| @Inject |
| @Default |
| private Float[] floatWrapperArray; |
| |
| @Inject |
| @Default |
| private Integer[] intWrapperArray; |
| |
| @Inject |
| @Default |
| private Long[] longWrapperArray; |
| |
| @Inject |
| @Default |
| private Short[] shortWrapperArray; |
| |
| @Inject |
| @Default |
| private String[] stringArray; |
| |
| @Inject |
| @Default |
| private boolean singleBoolean; |
| |
| @Inject |
| @Default |
| private double singleDouble; |
| |
| @Inject |
| @Default |
| private float singleFloat; |
| |
| @Inject |
| @Default |
| private int singleInt; |
| |
| @Inject |
| @Default |
| private long singleLong; |
| |
| @Inject |
| @Default |
| private short singleShort; |
| |
| @Inject |
| @Default |
| private Boolean singleBooleanWrapper; |
| |
| @Inject |
| @Default |
| private Double singleDoubleWrapper; |
| |
| @Inject |
| @Default |
| private Float singleFloatWrapper; |
| |
| @Inject |
| @Default |
| private Integer singleIntWrapper; |
| |
| @Inject |
| @Default |
| private Long singleLongWrapper; |
| |
| @Inject |
| @Default |
| private Short singleShortWrapper; |
| |
| @Inject |
| @Default |
| private String singleString; |
| |
| } |
| |
| @Model(adaptables = Resource.class) |
| public static class WrongTypeDefaultsModel { |
| |
| @Inject |
| @Default(intValues = { 1, 1 }) |
| private boolean[] booleanArray; |
| |
| @Inject |
| @Default(intValues = { 1, 1 }) |
| private double[] doubleArray; |
| |
| @Inject |
| @Default(intValues = { 1, 1 }) |
| private float[] floatArray; |
| |
| @Inject |
| @Default(longValues = { 1, 1 }) |
| private int[] intArray; |
| |
| @Inject |
| @Default(intValues = { 1, 1 }) |
| private long[] longArray; |
| |
| @Inject |
| @Default(intValues = { 1, 1 }) |
| private short[] shortArray; |
| |
| @Inject |
| @Default(intValues = { 1, 1 }) |
| private String[] stringArray; |
| |
| } |
| } |