| package org.eclipse.basyx.testsuite.regression.submodel.types.digitalnameplate.submodelelementcollections.address; |
| |
| import static org.junit.Assert.assertEquals; |
| |
| import java.util.ArrayList; |
| import java.util.HashMap; |
| import java.util.List; |
| import java.util.Map; |
| |
| import org.eclipse.basyx.aas.metamodel.exception.MetamodelConstructionException; |
| import org.eclipse.basyx.submodel.metamodel.api.submodelelement.ISubmodelElement; |
| import org.eclipse.basyx.submodel.metamodel.map.qualifier.HasSemantics; |
| import org.eclipse.basyx.submodel.metamodel.map.qualifier.LangString; |
| import org.eclipse.basyx.submodel.metamodel.map.qualifier.LangStrings; |
| import org.eclipse.basyx.submodel.metamodel.map.qualifier.Referable; |
| import org.eclipse.basyx.submodel.metamodel.map.submodelelement.dataelement.MultiLanguageProperty; |
| import org.eclipse.basyx.submodel.metamodel.map.submodelelement.dataelement.property.Property; |
| import org.eclipse.basyx.submodel.metamodel.map.submodelelement.dataelement.property.valuetypedef.PropertyValueTypeDef; |
| import org.eclipse.basyx.submodel.types.digitalnameplate.enums.MailType; |
| import org.eclipse.basyx.submodel.types.digitalnameplate.submodelelementcollections.address.Email; |
| import org.eclipse.basyx.vab.exception.provider.ResourceNotFoundException; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| /** |
| * Tests createAsFacade and isValid of {@link Email} for their |
| * correctness |
| * |
| * @author haque |
| * |
| */ |
| public class TestEmail { |
| public static final String IDSHORT = "testEmailId"; |
| public static Property emailAddress = new Property(Email.EMAILADDRESSID, PropertyValueTypeDef.String); |
| public static MultiLanguageProperty publicKey = new MultiLanguageProperty(Email.PUBLICKEYID); |
| public static Property typeOfEmailAddress = new Property(Email.TYPEOFEMAILADDRESSID, PropertyValueTypeDef.String); |
| public static MultiLanguageProperty typeOfPublicKey = new MultiLanguageProperty(Email.TYPEOFPUBLICKEYID); |
| |
| private Map<String, Object> emailMap = new HashMap<String, Object>(); |
| |
| @Before |
| public void buildFax() { |
| emailAddress.set("test@muster-ag.de"); |
| publicKey.setValue(new LangStrings(new LangString("DE", "123456"))); |
| typeOfEmailAddress.setValue(MailType.SECRETARY); |
| typeOfPublicKey.setValue(new LangStrings(new LangString("DE", "1234"))); |
| List<ISubmodelElement> elements = new ArrayList<ISubmodelElement>(); |
| elements.add(emailAddress); |
| elements.add(publicKey); |
| elements.add(typeOfEmailAddress); |
| elements.add(typeOfPublicKey); |
| emailMap.put(Referable.IDSHORT, IDSHORT); |
| emailMap.put(HasSemantics.SEMANTICID, Email.SEMANTICID); |
| emailMap.put(Property.VALUE, elements); |
| } |
| |
| @Test |
| public void testCreateAsFacade() { |
| Email emailFromMap = Email.createAsFacade(emailMap); |
| assertEquals(Email.SEMANTICID, emailFromMap.getSemanticId()); |
| assertEquals(emailAddress, emailFromMap.getEmailAddress()); |
| assertEquals(publicKey, emailFromMap.getPublicKey()); |
| assertEquals(typeOfEmailAddress, emailFromMap.getTypeOfEmailAddress()); |
| assertEquals(typeOfPublicKey, emailFromMap.getTypeOfPublicKey()); |
| assertEquals(IDSHORT, emailFromMap.getIdShort()); |
| } |
| |
| @Test (expected = MetamodelConstructionException.class) |
| public void testCreateAsFacadeExceptionIdShort() { |
| emailMap.remove(Referable.IDSHORT); |
| Email.createAsFacade(emailMap); |
| } |
| |
| @Test (expected = ResourceNotFoundException.class) |
| public void testCreateAsFacadeExceptionEmailAddress() { |
| List<ISubmodelElement> newElements = new ArrayList<ISubmodelElement>(); |
| newElements.add(typeOfEmailAddress); |
| emailMap.put(Property.VALUE, newElements); |
| Email.createAsFacade(emailMap); |
| } |
| } |