| /******************************************************************************** |
| * Copyright (c) 2015-2019 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.api.atfxadapter; |
| |
| import static org.assertj.core.api.Assertions.assertThat; |
| |
| import java.util.List; |
| import java.util.Map; |
| |
| import org.assertj.core.api.Assertions; |
| import org.eclipse.mdm.api.base.ConnectionException; |
| import org.eclipse.mdm.api.base.massdata.ReadRequest; |
| import org.eclipse.mdm.api.base.model.Channel; |
| import org.eclipse.mdm.api.base.model.ChannelGroup; |
| import org.eclipse.mdm.api.base.model.ContextRoot; |
| import org.eclipse.mdm.api.base.model.ContextType; |
| import org.eclipse.mdm.api.base.model.MeasuredValues; |
| import org.eclipse.mdm.api.base.model.Measurement; |
| import org.eclipse.mdm.api.base.model.Test; |
| import org.eclipse.mdm.api.base.model.TestStep; |
| import org.eclipse.mdm.api.base.model.ValueType; |
| import org.eclipse.mdm.api.base.query.DataAccessException; |
| import org.eclipse.mdm.api.dflt.ApplicationContext; |
| import org.eclipse.mdm.api.dflt.EntityManager; |
| import org.eclipse.mdm.api.dflt.model.Project; |
| import org.junit.AfterClass; |
| import org.junit.BeforeClass; |
| |
| import com.google.common.collect.ImmutableMap; |
| |
| public class AtfxAdapterTest { |
| |
| public static final String ATFX_FILE = "src/test/resources/Right_Acc.atfx"; |
| |
| public static ApplicationContext context; |
| |
| @BeforeClass |
| public static void init() throws ConnectionException { |
| Map<String, String> map = ImmutableMap.of("atfxfile", ATFX_FILE, "freetext.active", "false"); |
| |
| context = new ATFXContextFactory().connect(map); |
| } |
| |
| @AfterClass |
| public static void teardown() throws ConnectionException { |
| context.close(); |
| } |
| |
| @org.junit.Test |
| public void testLoadLoggedOnUser() { |
| EntityManager em = context.getEntityManager().get(); |
| |
| assertThat(em.loadLoggedOnUser()).isNotNull(); |
| ; |
| } |
| |
| @org.junit.Test |
| public void testLoadEnvironment() { |
| EntityManager em = context.getEntityManager().get(); |
| |
| assertThat(em.loadEnvironment().getName()).isEqualTo("MDM"); |
| } |
| |
| @org.junit.Test |
| public void testLoadAllProjects() { |
| |
| EntityManager em = context.getEntityManager().get(); |
| |
| assertThat(em.loadAll(Project.class)).extracting(Project::getName).contains("PMV Model P"); |
| } |
| |
| @org.junit.Test |
| public void testLoadAllTests() { |
| |
| EntityManager em = context.getEntityManager().get(); |
| |
| assertThat(em.loadAll(Test.class)).extracting(Test::getName).contains("PBN_UNECE_R51_20140314170907"); |
| } |
| |
| @org.junit.Test |
| public void testLoadAllTestSteps() { |
| |
| EntityManager em = context.getEntityManager().get(); |
| |
| assertThat(em.loadAll(TestStep.class)).extracting(TestStep::getName).contains("PBN_UNECE_R51_Right_Acc_70"); |
| } |
| |
| @org.junit.Test |
| public void testLoadAllMeasurements() { |
| |
| EntityManager em = context.getEntityManager().get(); |
| assertThat(em.loadAll(Measurement.class)).extracting(Measurement::getName).contains("Channel"); |
| } |
| |
| @org.junit.Test |
| public void testLoadParent() { |
| |
| EntityManager em = context.getEntityManager().get(); |
| Measurement meaResult = em.loadAll(Measurement.class).get(0); |
| |
| assertThat(em.loadParent(meaResult, TestStep.class).get()).extracting(TestStep::getName) |
| .contains("PBN_UNECE_R51_Right_Acc_70"); |
| } |
| |
| @org.junit.Test |
| public void testLoadChildren() { |
| |
| EntityManager em = context.getEntityManager().get(); |
| Test test = em.loadAll(Test.class).get(0); |
| |
| assertThat(em.loadChildren(test, TestStep.class).get(0)).extracting(TestStep::getName) |
| .contains("PBN_UNECE_R51_Right_Acc_70"); |
| } |
| |
| @org.junit.Test |
| public void testLoadChildrenForChannelGroup() { |
| |
| EntityManager em = context.getEntityManager().get(); |
| ChannelGroup channelGroup = em.loadAll(ChannelGroup.class).get(0); |
| |
| assertThat(em.loadChildren(channelGroup, Channel.class)).extracting(Channel::getName).contains("X-Axis", |
| "CHANNEL01", "CHANNEL02", "CHANNEL03", "CHANNEL04", "CHANNEL05", "CHANNEL06", "CHANNEL07", "CHANNEL08", |
| "CHANNEL09", "CHANNEL10"); |
| } |
| |
| @org.junit.Test |
| public void testLoadChildrenForChannelGroupWithPattern() { |
| |
| EntityManager em = context.getEntityManager().get(); |
| ChannelGroup channelGroup = em.loadAll(ChannelGroup.class).get(0); |
| |
| Assertions.assertThatThrownBy(() -> em.loadChildren(channelGroup, Channel.class, "*Axis")) |
| .isInstanceOf(DataAccessException.class).hasMessageContaining("not supported"); |
| |
| // assertThat(em.loadChildren(channelGroup, Channel.class, |
| // "*Axis")).extracting(Channel::getName) |
| // .contains("X-Axis", "CHANNEL01", "CHANNEL02", "CHANNEL03", "CHANNEL04", |
| // "CHANNEL05", "CHANNEL06", "CHANNEL07", "CHANNEL08", "CHANNEL09", |
| // "CHANNEL10"); |
| } |
| |
| @org.junit.Test |
| public void testLoadParentForChannel() { |
| |
| EntityManager em = context.getEntityManager().get(); |
| Channel channel = em.loadAll(Channel.class).get(0); |
| |
| assertThat(em.loadParent(channel, ChannelGroup.class).get()).extracting(ChannelGroup::getName) |
| .contains("Channel"); |
| } |
| |
| @org.junit.Test |
| public void testLoadAllChannelGroups() { |
| |
| EntityManager em = context.getEntityManager().get(); |
| |
| assertThat(em.loadAll(ChannelGroup.class)).extracting(ChannelGroup::getName).contains("Channel"); |
| } |
| |
| @org.junit.Test |
| public void testLoadAllChannels() { |
| |
| EntityManager em = context.getEntityManager().get(); |
| |
| assertThat(em.loadAll(Channel.class)).extracting(Channel::getName).contains("X-Axis", "CHANNEL01", "CHANNEL02", |
| "CHANNEL03", "CHANNEL04", "CHANNEL05", "CHANNEL06", "CHANNEL07", "CHANNEL08", "CHANNEL09", "CHANNEL10"); |
| } |
| |
| @org.junit.Test |
| public void testLoadAllContext() { |
| |
| EntityManager em = context.getEntityManager().get(); |
| |
| List<Measurement> measurements = em.loadAll(Measurement.class); |
| assertThat(measurements).hasSize(1); |
| |
| Map<ContextType, ContextRoot> context = em.loadContexts(measurements.get(0)); |
| assertThat(context.get(ContextType.UNITUNDERTEST).getContextComponents()).extracting(cc -> cc.getName()) |
| .contains("FL_tyre"); |
| |
| assertThat(context.get(ContextType.UNITUNDERTEST).getContextComponents().get(0).getValues()).hasSize(7) |
| .containsEntry("Name", ValueType.STRING.create("Name", "FL_tyre")) |
| .containsEntry("axle", ValueType.SHORT.create("axle", (short) 1)) |
| .containsEntry("side", ValueType.STRING.create("side", "Left")) |
| .containsEntry("manufacturer", ValueType.STRING.create("manufacturer", "Tunnelsand")); |
| |
| } |
| |
| @org.junit.Test |
| public void testReadMeasuredValues() { |
| EntityManager em = context.getEntityManager().get(); |
| |
| List<ChannelGroup> listCg = em.loadAll(ChannelGroup.class); |
| assertThat(listCg).hasSize(1); |
| |
| List<MeasuredValues> values = em |
| .readMeasuredValues(ReadRequest.create(listCg.get(0)).allChannels().allValues()); |
| assertThat(values).extracting(mv -> mv.getLength()).containsOnly(3001); |
| } |
| } |