| package org.eclipse.basyx.testsuite.regression.submodel.metamodel.connected.submodelelement.dataelement; |
| |
| import static org.junit.Assert.assertArrayEquals; |
| import static org.junit.Assert.assertEquals; |
| |
| import java.nio.charset.StandardCharsets; |
| import java.util.Base64; |
| |
| import org.eclipse.basyx.submodel.metamodel.connected.submodelelement.dataelement.ConnectedBlob; |
| import org.eclipse.basyx.submodel.metamodel.map.submodelelement.dataelement.Blob; |
| import org.eclipse.basyx.submodel.restapi.SubmodelElementProvider; |
| import org.eclipse.basyx.testsuite.regression.vab.manager.VABConnectionManagerStub; |
| import org.eclipse.basyx.vab.modelprovider.lambda.VABLambdaProvider; |
| import org.eclipse.basyx.vab.support.TypeDestroyingProvider; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| /** |
| * Tests if a ConnectedBlob can be created and used correctly |
| * |
| * @author conradi |
| * |
| */ |
| public class TestConnectedBlob { |
| public final String BLOB_CONTENT = "BLOB_VALUE"; |
| |
| protected ConnectedBlob connectedBlob; |
| protected Blob blob; |
| |
| @Before |
| public void build() { |
| blob = new Blob("testIdShort", "mimeType"); |
| byte[] value = BLOB_CONTENT.getBytes(StandardCharsets.US_ASCII); |
| blob.setByteArrayValue(value); |
| |
| VABConnectionManagerStub manager = new VABConnectionManagerStub( |
| new SubmodelElementProvider(new TypeDestroyingProvider(new VABLambdaProvider(blob)))); |
| |
| connectedBlob = new ConnectedBlob(manager.connectToVABElement("")); |
| } |
| |
| /** |
| * Tests if getValue() returns the correct value |
| */ |
| @Test |
| public void testGetValue() { |
| assertEquals(blob.getValue(), connectedBlob.getValue()); |
| byte[] byteArray = BLOB_CONTENT.getBytes(StandardCharsets.US_ASCII); |
| assertEquals(Base64.getEncoder().encodeToString(byteArray), blob.getValue()); |
| |
| } |
| |
| /** |
| * Tests if getByteArrayValue() returns the correct value |
| */ |
| @Test |
| public void testGetByteArrayValue() { |
| assertArrayEquals(blob.getByteArrayValue(), connectedBlob.getByteArrayValue()); |
| assertArrayEquals(BLOB_CONTENT.getBytes(StandardCharsets.US_ASCII), connectedBlob.getByteArrayValue()); |
| } |
| |
| /** |
| * Tests if getMimeType() returns the correct value |
| */ |
| @Test |
| public void testGetMimeType() { |
| assertEquals(blob.getMimeType(), connectedBlob.getMimeType()); |
| } |
| |
| /** |
| * Tests if getASCIIString() returns the correct value |
| */ |
| @Test |
| public void testGetASCII() { |
| assertEquals(BLOB_CONTENT, connectedBlob.getASCIIString()); |
| } |
| |
| /** |
| * Tests if SetASCII sets the correct value |
| */ |
| @Test |
| public void testSetASCII() { |
| connectedBlob.setASCIIString("NEW"); |
| assertEquals("NEW", connectedBlob.getASCIIString()); |
| assertArrayEquals("NEW".getBytes(StandardCharsets.US_ASCII), connectedBlob.getByteArrayValue()); |
| } |
| |
| /** |
| * Tests if SetByteArrayValue sets the correct value |
| */ |
| @Test |
| public void testSetByteArray() { |
| byte[] newArrayValue = "NEW".getBytes(StandardCharsets.US_ASCII); |
| connectedBlob.setByteArrayValue(newArrayValue); |
| assertEquals("NEW", connectedBlob.getASCIIString()); |
| assertArrayEquals("NEW".getBytes(StandardCharsets.US_ASCII), connectedBlob.getByteArrayValue()); |
| } |
| |
| /** |
| * Tests if setValue sets the correct value |
| */ |
| @Test |
| public void testSetValue() { |
| byte[] newArrayValue = "NEW".getBytes(StandardCharsets.US_ASCII); |
| String newStringValue = Base64.getEncoder().encodeToString(newArrayValue); |
| connectedBlob.setValue(newStringValue); |
| assertEquals("NEW", connectedBlob.getASCIIString()); |
| } |
| } |