blob: 5a60db2be9aec153b762d1f8d19138a1aad4ca66 [file] [log] [blame]
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());
}
}