/* * This work is Open Source and licensed by the European Commission under the * conditions of the European Public License v1.1 * * (http://www.osor.eu/eupl/european-union-public-licence-eupl-v.1.1); * * any use of this file implies acceptance of the conditions of this license. * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * * --- * * Test cases for marshalling complex attributes. * * Implemented are two testcases for marshalling and unmarshalling. These testcases are * for canonical residenc address and has bank account. */ package eu.stork.peps.tests; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import javax.xml.transform.stream.StreamSource; import org.junit.Test; import eu.stork.peps.complex.attributes.CanonicalAddressType; import eu.stork.peps.complex.attributes.HasAccountInBankType; import eu.stork.peps.complex.attributes.ObjectFactory; /** * @author Advania * * Examples on how to use the jaxb marshaller. * * The classes are created from the StorkcomplexAttributes.xsd schema located in resources. * * @version $Revision: 1.00 $, $Date: 2014-17-02 11:15:00 $ * */ public class ComplexAttributesMarshalling { /** * Test marshalling canonical address * * * IS * Reykjavik * RVK * Reykjavik * 101 * Laugavegur * 1 * 10 * */ @Test public void testMarshallCanonicalResidencAddress() { try { final CanonicalAddressType object = new CanonicalAddressType(); object.setApartmentNumber("10"); object.setCountryCodeAddress("IS"); object.setMunicipalityCode("RVK"); object.setPostalCode("101"); object.setState("Reykjavik"); object.setStreetName("Laugavegur"); object.setStreetNumber("1"); object.setTown("Reykjavik"); final JAXBContext context = JAXBContext.newInstance(CanonicalAddressType.class); final Marshaller m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); final ObjectFactory objf = new ObjectFactory(); m.marshal(objf.createCanonicalResidenceAddress(object), new FileOutputStream("CanonicalAddressType.xml")); m.marshal(objf.createCanonicalResidenceAddress(object), System.out); } catch (JAXBException | FileNotFoundException e) { e.printStackTrace(); } } /** * Test unmarshalling canonical address * * * IS * Reykjavik * RVK * Reykjavik * 101 * Laugavegur * 1 * 10 * */ @Test public void testUnmarshallCanonicalAddress() { JAXBContext uContext; try { uContext = JAXBContext.newInstance(CanonicalAddressType.class); final Unmarshaller u = uContext.createUnmarshaller(); final File file = new File("CanonicalAddressType.xml"); final JAXBElement root = u.unmarshal(new StreamSource(file), CanonicalAddressType.class); final CanonicalAddressType foo = root.getValue(); final String A = foo.getStreetName(); final String B = foo.getStreetNumber(); System.out.println("Streetname: " + A); System.out.println("Streetnumber: " + B); } catch (final JAXBException e) { e.printStackTrace(); } } /** * Test marshalling has bank account * * * Arion * 3 * */ @Test public void testMarshallHasBankAccount() { try { final HasAccountInBankType object = new HasAccountInBankType(); object.setAQAA(3); object.setBankName("Arion Bank"); final JAXBContext context = JAXBContext.newInstance(HasAccountInBankType.class); final Marshaller m = context.createMarshaller(); final ObjectFactory o = new ObjectFactory(); m.marshal(o.createHasAccountInBank(object), new FileOutputStream ("hasbankaccount.xml")); m.marshal(o.createHasAccountInBank(object), System.out); } catch (JAXBException | FileNotFoundException e) { e.printStackTrace(); } } /** * Test unmarshalling has bank account * * * Arion * 3 * */ @Test public void testUnmarshallHasBankAccount() { try { final JAXBContext context = JAXBContext.newInstance(HasAccountInBankType.class); final Unmarshaller um = context.createUnmarshaller(); final File file = new File("hasbankaccount.xml"); final JAXBElement root = um.unmarshal(new StreamSource(file), HasAccountInBankType.class); final HasAccountInBankType foo = root.getValue(); System.out.println(foo.getBankName()); } catch (final JAXBException e) { e.printStackTrace(); } } }