package org.eclipse.mdm.api.base; | |
import static org.assertj.core.api.Assertions.assertThat; | |
import static org.mockito.Mockito.mock; | |
import java.util.Arrays; | |
import org.eclipse.mdm.api.base.massdata.ExternalComponent; | |
import org.eclipse.mdm.api.base.massdata.WriteRequest; | |
import org.eclipse.mdm.api.base.model.AxisType; | |
import org.eclipse.mdm.api.base.model.Channel; | |
import org.eclipse.mdm.api.base.model.ChannelGroup; | |
import org.eclipse.mdm.api.base.model.FileLink; | |
import org.eclipse.mdm.api.base.model.MimeType; | |
import org.eclipse.mdm.api.base.model.ScalarType; | |
import org.eclipse.mdm.api.base.model.TypeSpecification; | |
import org.junit.Test; | |
public class WriteRequestBuilderTest { | |
private final ChannelGroup channelGroup = mock(ChannelGroup.class); | |
private final Channel channel = mock(Channel.class); | |
private final AxisType axisType = mock(AxisType.class); | |
private final ExternalComponent externalComponent1 = new ExternalComponent() | |
.setTypeSpecification(TypeSpecification.BIT_INTEGER).setStartOffset(100).setBlocksize(1) | |
.setValuesPerBlock(100).setLength(100).setFileLink(FileLink.newRemote("extComp1.btf", new MimeType(""), "")) | |
.setFlagsFileLink(FileLink.newRemote("extCompFlags.btf", new MimeType(""), "")).setFlagsStartOffset(0L) | |
.setBitCount((short) 24).setBitOffset((short) 0); | |
private final ExternalComponent externalComponent2 = new ExternalComponent() | |
.setTypeSpecification(TypeSpecification.BIT_INTEGER).setStartOffset(10).setBlocksize(1) | |
.setValuesPerBlock(50).setLength(200).setFileLink(FileLink.newRemote("extComp2.btf", new MimeType(""), "")) | |
.setFlagsFileLink(FileLink.newRemote("extCompFlags.btf", new MimeType(""), "")).setFlagsStartOffset(200L) | |
.setBitCount((short) 24).setBitOffset((short) 0); | |
@Test | |
public void testOneExternalComponent() { | |
WriteRequest r1 = WriteRequest.create(channelGroup, channel, axisType).explicitExternal() | |
.externalComponent(ScalarType.INTEGER, externalComponent1).independent().build(); | |
assertThat(r1).hasFieldOrPropertyWithValue("channelGroup", channelGroup) | |
.hasFieldOrPropertyWithValue("channel", channel).hasFieldOrPropertyWithValue("axisType", axisType); | |
assertThat(r1.getExternalComponents()).containsExactly(externalComponent1); | |
} | |
@Test | |
public void testMultipleExternalComponents() { | |
WriteRequest r1 = WriteRequest.create(channelGroup, channel, axisType).explicitExternal() | |
.externalComponents(ScalarType.INTEGER, Arrays.asList(externalComponent1, externalComponent2)) | |
.independent().build(); | |
assertThat(r1).hasFieldOrPropertyWithValue("channelGroup", channelGroup) | |
.hasFieldOrPropertyWithValue("channel", channel).hasFieldOrPropertyWithValue("axisType", axisType); | |
assertThat(r1.getExternalComponents()).containsExactly(externalComponent1, externalComponent2); | |
} | |
@Test | |
public void testMultipleExternalComponentsCopyExtComp() { | |
WriteRequest r1 = WriteRequest.create(channelGroup, channel, axisType).explicitExternal() | |
.externalComponents(ScalarType.INTEGER, Arrays.asList(new ExternalComponent[] { | |
(new ExternalComponent()).setTypeSpecification(externalComponent1.getTypeSpecification()) | |
.setStartOffset(externalComponent1.getStartOffset()) | |
.setBlocksize(externalComponent1.getBlocksize()) | |
.setValuesPerBlock(externalComponent1.getValuesPerBlock()) | |
.setLength(externalComponent1.getLength()).setFileLink(externalComponent1.getFileLink()) | |
.setFlagsFileLink(externalComponent1.getFlagsFileLink()) | |
.setFlagsStartOffset(externalComponent1.getFlagsStartOffset()) | |
.setBitCount(externalComponent1.getBitCount()) | |
.setBitOffset(externalComponent1.getBitOffset()), | |
(new ExternalComponent()).setTypeSpecification(externalComponent2.getTypeSpecification()) | |
.setStartOffset(externalComponent2.getStartOffset()) | |
.setBlocksize(externalComponent2.getBlocksize()) | |
.setValuesPerBlock(externalComponent2.getValuesPerBlock()) | |
.setLength(externalComponent2.getLength()).setFileLink(externalComponent2.getFileLink()) | |
.setFlagsFileLink(externalComponent2.getFlagsFileLink()) | |
.setFlagsStartOffset(externalComponent2.getFlagsStartOffset()) | |
.setBitCount(externalComponent2.getBitCount()) | |
.setBitOffset(externalComponent2.getBitOffset()) })) | |
.independent().build(); | |
assertThat(r1).hasFieldOrPropertyWithValue("channelGroup", channelGroup) | |
.hasFieldOrPropertyWithValue("channel", channel).hasFieldOrPropertyWithValue("axisType", axisType); | |
assertThat(r1.getExternalComponents()).containsExactly(externalComponent1, externalComponent2); | |
} | |
} |