| 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.submodelelementcollections.address.Address; |
| import org.eclipse.basyx.submodel.types.digitalnameplate.submodelelementcollections.address.Email; |
| import org.eclipse.basyx.submodel.types.digitalnameplate.submodelelementcollections.address.Fax; |
| import org.eclipse.basyx.submodel.types.digitalnameplate.submodelelementcollections.address.Phone; |
| import org.eclipse.basyx.vab.exception.provider.ResourceNotFoundException; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| /** |
| * Tests createAsFacade and isValid of {@link Address} for their |
| * correctness |
| * |
| * @author haque |
| * |
| */ |
| public class TestAddress { |
| public static final String IDSHORT = "testAddressId"; |
| public static MultiLanguageProperty department = new MultiLanguageProperty(Address.DEPARTMENTID); |
| public static MultiLanguageProperty street = new MultiLanguageProperty(Address.STREETID); |
| public static MultiLanguageProperty zipCode = new MultiLanguageProperty(Address.ZIPCODEID); |
| public static MultiLanguageProperty poBox = new MultiLanguageProperty(Address.POBOXID); |
| public static MultiLanguageProperty zipPoBox = new MultiLanguageProperty(Address.ZIPCODEOFPOBOXID); |
| public static MultiLanguageProperty cityTown = new MultiLanguageProperty(Address.CITYTOWNID); |
| public static MultiLanguageProperty stateCounty = new MultiLanguageProperty(Address.STATECOUNTYID); |
| public static MultiLanguageProperty nationalCode = new MultiLanguageProperty(Address.NATIONALCODEID); |
| public static MultiLanguageProperty vatNumber = new MultiLanguageProperty(Address.VATNUMBERID); |
| public static MultiLanguageProperty addressRemarks = new MultiLanguageProperty(Address.ADDRESSREMARKSID); |
| public static Property additLink = new Property(Address.ADDRESSOFADDITIONALLINKID, PropertyValueTypeDef.String); |
| public static Phone phone1 = new Phone("Phone01", new LangString("DE", "123456789")); |
| public static Phone phone2 = new Phone("Phone02", new LangString("US", "123456711")); |
| public static Fax fax1 = new Fax("Fax01", new LangString("DE", "123456789")); |
| public static Fax fax2 = new Fax("Fax02", new LangString("DE", "123456711")); |
| public static Email email1 = new Email("Email01", new Property(Email.EMAILADDRESSID, "abc@test.com")); |
| public static Email email2 = new Email("Email02", new Property(Email.EMAILADDRESSID, "abcd@test.com")); |
| |
| |
| private Map<String, Object> addressMap = new HashMap<String, Object>(); |
| |
| @Before |
| public void buildFax() { |
| department.setValue(new LangStrings(new LangString("DE", "Dept Test"))); |
| street.setValue(new LangStrings(new LangString("DE", "musterstraße 1"))); |
| zipCode.setValue(new LangStrings(new LangString("DE", "12345"))); |
| poBox.setValue(new LangStrings(new LangString("DE", "PE 1234"))); |
| zipPoBox.setValue(new LangStrings(new LangString("DE", "12345"))); |
| cityTown.setValue(new LangStrings(new LangString("DE", "MusterStadt"))); |
| stateCounty.setValue(new LangStrings(new LangString("DE", "RLP"))); |
| nationalCode.setValue(new LangStrings(new LangString("DE", "DE"))); |
| vatNumber.setValue(new LangStrings(new LangString("DE", "123456"))); |
| addressRemarks.setValue(new LangStrings(new LangString("DE", "test remarks"))); |
| additLink.setValue("test.com"); |
| |
| List<ISubmodelElement> elements = new ArrayList<ISubmodelElement>(); |
| elements.add(department); |
| elements.add(street); |
| elements.add(zipCode); |
| elements.add(poBox); |
| elements.add(zipPoBox); |
| elements.add(cityTown); |
| elements.add(stateCounty); |
| elements.add(nationalCode); |
| elements.add(vatNumber); |
| elements.add(addressRemarks); |
| elements.add(additLink); |
| elements.add(phone1); |
| elements.add(phone2); |
| elements.add(fax1); |
| elements.add(fax2); |
| elements.add(email1); |
| elements.add(email2); |
| |
| addressMap.put(Referable.IDSHORT, IDSHORT); |
| addressMap.put(HasSemantics.SEMANTICID, Address.SEMANTICID); |
| addressMap.put(Property.VALUE, elements); |
| } |
| |
| @Test |
| public void testCreateAsFacade() { |
| Address addressFromMap = Address.createAsFacade(addressMap); |
| assertEquals(Address.SEMANTICID, addressFromMap.getSemanticId()); |
| assertEquals(IDSHORT, addressFromMap.getIdShort()); |
| assertEquals(department, addressFromMap.getDepartment()); |
| assertEquals(street, addressFromMap.getStreet()); |
| assertEquals(poBox, addressFromMap.getPOBox()); |
| assertEquals(zipPoBox, addressFromMap.getZipCodeOfPOBox()); |
| assertEquals(cityTown, addressFromMap.getCityTown()); |
| assertEquals(stateCounty, addressFromMap.getStateCounty()); |
| assertEquals(nationalCode, addressFromMap.getNationalCode()); |
| assertEquals(zipCode, addressFromMap.getZipCode()); |
| assertEquals(vatNumber, addressFromMap.getVatNumber()); |
| assertEquals(addressRemarks, addressFromMap.getAddressRemarks()); |
| assertEquals(additLink, addressFromMap.getAddressOfAdditionalLink()); |
| List<Phone> phones = new ArrayList<Phone>(); |
| phones.add(phone2); |
| phones.add(phone1); |
| List<Fax> faxes = new ArrayList<Fax>(); |
| faxes.add(fax1); |
| faxes.add(fax2); |
| List<Email> emails = new ArrayList<Email>(); |
| emails.add(email2); |
| emails.add(email1); |
| assertEquals(phones, addressFromMap.getPhone()); |
| assertEquals(faxes, addressFromMap.getFax()); |
| assertEquals(emails, addressFromMap.getEmail()); |
| } |
| |
| @Test (expected = MetamodelConstructionException.class) |
| public void testCreateAsFacadeExceptionIdShort() { |
| addressMap.remove(Referable.IDSHORT); |
| Address.createAsFacade(addressMap); |
| } |
| |
| @SuppressWarnings("unchecked") |
| @Test (expected = ResourceNotFoundException.class) |
| public void testCreateAsFacadeExceptionStreet() { |
| List<ISubmodelElement> elements = (List<ISubmodelElement>)addressMap.get(Property.VALUE); |
| elements.remove(street); |
| Address.createAsFacade(addressMap); |
| } |
| |
| @SuppressWarnings("unchecked") |
| @Test (expected = ResourceNotFoundException.class) |
| public void testCreateAsFacadeExceptionZipCode() { |
| List<ISubmodelElement> elements = (List<ISubmodelElement>)addressMap.get(Property.VALUE); |
| elements.remove(zipCode); |
| Address.createAsFacade(addressMap); |
| } |
| |
| @SuppressWarnings("unchecked") |
| @Test (expected = ResourceNotFoundException.class) |
| public void testCreateAsFacadeExceptionCityTown() { |
| List<ISubmodelElement> elements = (List<ISubmodelElement>)addressMap.get(Property.VALUE); |
| elements.remove(cityTown); |
| Address.createAsFacade(addressMap); |
| } |
| |
| @SuppressWarnings("unchecked") |
| @Test (expected = ResourceNotFoundException.class) |
| public void testCreateAsFacadeExceptionNationalCode() { |
| List<ISubmodelElement> elements = (List<ISubmodelElement>)addressMap.get(Property.VALUE); |
| elements.remove(nationalCode); |
| Address.createAsFacade(addressMap); |
| } |
| } |