blob: a92e252d1250d2cfcf5a95cfcd1673be4e446c2d [file] [log] [blame]
/*******************************************************************************
* Copyright (C) 2021 the Eclipse BaSyx Authors
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
******************************************************************************/
package org.eclipse.basyx.testsuite.regression.submodel.metamodel.map.qualifier.qualifiable;
import static org.junit.Assert.assertEquals;
import org.eclipse.basyx.submodel.metamodel.api.identifier.IdentifierType;
import org.eclipse.basyx.submodel.metamodel.api.reference.enums.KeyElements;
import org.eclipse.basyx.submodel.metamodel.map.identifier.Identifier;
import org.eclipse.basyx.submodel.metamodel.map.qualifier.qualifiable.Qualifier;
import org.eclipse.basyx.submodel.metamodel.map.reference.Reference;
import org.eclipse.basyx.submodel.metamodel.map.submodelelement.dataelement.property.valuetypedef.PropertyValueTypeDef;
import org.eclipse.basyx.submodel.metamodel.map.submodelelement.dataelement.property.valuetypedef.PropertyValueTypeDefHelper;
import org.junit.Before;
import org.junit.Test;
/**
* Tests constructor, setter and getter of {@link Qualifier} for their
* correctness
*
* @author haque
*
*/
public class TestQualifier {
private static final KeyElements KEY_ELEMENTS = KeyElements.ASSET;
private static final boolean IS_LOCAL = false;
private static final String VALUE = "testValue";
private static final String TYPE = "testType";
private static final String VALUE_TYPE = "anyType";
private static final IdentifierType ID_TYPE = IdentifierType.CUSTOM;
private static final Identifier IDENTIFIER = new Identifier(ID_TYPE, VALUE);
private static final Reference VALUE_ID = new Reference(IDENTIFIER, KEY_ELEMENTS, IS_LOCAL);
private Qualifier qualifier;
@Before
public void buildQualifier() {
qualifier = new Qualifier(TYPE, VALUE, VALUE_TYPE, VALUE_ID);
}
@Test
public void testConstructor() {
assertEquals(TYPE, qualifier.getType());
assertEquals(VALUE, qualifier.getValue());
assertEquals(PropertyValueTypeDefHelper.fromName(VALUE_TYPE), qualifier.getValueType());
assertEquals(VALUE_ID, qualifier.getValueId());
}
@Test
public void testSetType() {
String newTypeString = "newType";
qualifier.setType(newTypeString);
assertEquals(newTypeString, qualifier.getType());
}
@Test
public void testSetValue() {
String newValueString = "newValue";
qualifier.setValue(newValueString);
assertEquals(newValueString, qualifier.getValue());
}
@Test
public void testSetValueId() {
Reference reference = new Reference(new Identifier(IdentifierType.IRI, "newId"), KeyElements.BLOB, true);
qualifier.setValueId(reference);
assertEquals(reference, qualifier.getValueId());
}
@Test
public void testSetValueType() {
PropertyValueTypeDef newValueTypeString = PropertyValueTypeDef.AnyType;
qualifier.setValueType(newValueTypeString);
assertEquals(newValueTypeString, qualifier.getValueType());
}
// Tests if the valueType is correctly converted to a string
@Test
public void testSetValueCorrectValueType() {
Qualifier emptyQualifier = new Qualifier();
emptyQualifier.setValue("Test");
assertEquals(PropertyValueTypeDef.String.toString(), emptyQualifier.get(Qualifier.VALUETYPE));
}
@Test
public void testSetSemanticID() {
Reference reference = new Reference(new Identifier(IdentifierType.IRI, "newId"), KeyElements.BLOB, true);
qualifier.setSemanticID(reference);
assertEquals(reference, qualifier.getSemanticId());
}
}