blob: a08a443bf6fb987ce4d34d258c4a39831b80f9d6 [file] [log] [blame]
/********************************************************************************
* 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);
}
}