| /******************************************************************************** |
| * Copyright (c) 2015-2018 Contributors to the Eclipse Foundation |
| * |
| * See the NOTICE file(s) distributed with this work for additional |
| * information regarding copyright ownership. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0. |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| ********************************************************************************/ |
| |
| package org.eclipse.mdm.businessobjects.service; |
| |
| import static org.assertj.core.api.Assertions.assertThat; |
| import static org.junit.Assert.fail; |
| |
| import java.util.ArrayList; |
| import java.util.HashMap; |
| import java.util.Map; |
| |
| import org.eclipse.mdm.api.atfxadapter.ATFXContextFactory; |
| import org.eclipse.mdm.api.base.model.ContextRoot; |
| import org.eclipse.mdm.api.base.model.Unit; |
| import org.eclipse.mdm.api.dflt.ApplicationContext; |
| import org.eclipse.mdm.api.dflt.model.EntityFactory; |
| import org.eclipse.mdm.api.dflt.model.Pool; |
| import org.eclipse.mdm.businessobjects.entity.MDMEntity; |
| import org.junit.BeforeClass; |
| import org.junit.Test; |
| |
| import io.vavr.collection.List; |
| import io.vavr.control.Try; |
| |
| public class EntityServiceTest { |
| |
| private static EntityFactory entityFactory; |
| |
| @BeforeClass |
| public static void init() { |
| Map<String, String> map = io.vavr.collection.HashMap |
| .of("atfxfile", "src/test/resources/mdm_complete_application_model_500.xml", // |
| "freetext.active", "false", // |
| "entityConfigRepositoryLoaderClass", |
| "org.eclipse.mdm.api.odsadapter.lookup.config.DefaultEntityConfigRepositoryLoader") // |
| .toJavaMap(); |
| |
| try { |
| ApplicationContext context = new ATFXContextFactory().connect(map); |
| entityFactory = context.getEntityFactory().get(); |
| } catch (Exception e1) { |
| fail("ATFXContextFactory could not be initialized"); |
| } |
| } |
| |
| @Test |
| public void testSatisfiesParameters() throws Exception { |
| EntityService entityService = new EntityService(); |
| |
| Class<?>[] parameter = new Class[] { java.util.List.class, ContextRoot.class }; |
| List<Class<?>> required = List.of(ArrayList.class, ContextRoot.class); |
| |
| assertThat(entityService.satisfiesParameters(parameter, required)).isTrue(); |
| } |
| |
| @Test |
| public void testSatisfiesParametersNotSubClassSuperClass() throws Exception { |
| EntityService entityService = new EntityService(); |
| |
| Class<?>[] parameter = new Class[] { ArrayList.class, ContextRoot.class }; |
| List<Class<?>> required = List.of(java.util.List.class, ContextRoot.class); |
| |
| assertThat(entityService.satisfiesParameters(parameter, required)).isFalse(); |
| } |
| |
| @Test |
| public void testSatisfiesParametersNot() throws Exception { |
| EntityService entityService = new EntityService(); |
| |
| Class<?>[] parameter = new Class[] { HashMap.class, ContextRoot.class }; |
| List<Class<? extends Object>> required = List.of(java.util.List.class, ContextRoot.class); |
| |
| assertThat(entityService.satisfiesParameters(parameter, required)).isFalse(); |
| } |
| |
| @Test |
| public void testSatisfiesParametersAutoBoxing() throws Exception { |
| EntityService entityService = new EntityService(); |
| |
| Class<?>[] parameter = new Class[] { boolean.class, ContextRoot.class }; |
| List<Class<?>> required = List.of(Boolean.class, ContextRoot.class); |
| |
| assertThat(entityService.satisfiesParameters(parameter, required)).isTrue(); |
| } |
| |
| @Test |
| public void testSatisfiesParametersAutoUnboxing() throws Exception { |
| EntityService entityService = new EntityService(); |
| |
| Class<?>[] parameter = new Class[] { Boolean.class, ContextRoot.class }; |
| List<Class<?>> required = List.of(boolean.class, ContextRoot.class); |
| |
| assertThat(entityService.satisfiesParameters(parameter, required)).isTrue(); |
| } |
| |
| @Test |
| public void testSatisfiesParametersNotLength() throws Exception { |
| EntityService entityService = new EntityService(); |
| |
| Class<?>[] parameter = new Class[] { Boolean.class, ContextRoot.class, boolean.class }; |
| List<Class<?>> required = List.of(boolean.class, ContextRoot.class); |
| |
| assertThat(entityService.satisfiesParameters(parameter, required)).isFalse(); |
| } |
| |
| @Test |
| public void testSatisfiesParametersWithNonMatchingArgumentCountShouldReturnFalse() { |
| EntityService entityService = new EntityService(); |
| |
| assertThat(entityService.satisfiesParameters(new Class[] { String.class }, |
| io.vavr.collection.List.of(String.class, Pool.class))).isFalse(); |
| } |
| |
| @Test |
| public void updateEntityWithEmptyNumberAttributeShouldReturnFailureWithNumberFormatException() { |
| Unit unit = entityFactory.createUnit("testUnit", entityFactory.createPhysicalDimension("testPhysDim")); |
| EntityService es = new EntityService(); |
| Try<?> t = es.updateEntity(unit, new MDMEntity(unit)); |
| assertThat(t.getCause().getCause()).isInstanceOf(NumberFormatException.class); |
| } |
| } |