blob: 06c57fc34f18c01bad89d912ac0ba20ddafe446f [file] [log] [blame]
/**
*
* Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
*
*/
package org.eclipse.osbp.dsl.tests.model.hist;
import javax.persistence.EntityManager;
import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess;
import org.eclipse.osbp.dsl.tests.hist.dtos.HAddressDto;
import org.eclipse.osbp.dsl.tests.hist.dtos.HCountryDto;
import org.eclipse.osbp.dsl.tests.hist.dtos.HOrderDto;
import org.eclipse.osbp.dsl.tests.model.AbstractJPATest;
import org.eclipse.osbp.runtime.common.annotations.DtoUtils;
import org.eclipse.osbp.runtime.common.filter.IDTOService;
import org.junit.Assert;
import org.junit.Test;
@SuppressWarnings("restriction")
public class HistorizedTests extends AbstractJPATest {
private void createData() {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
}
@Test
public void testService() throws Exception {
super.setUp();
createData();
IDTOService<HOrderDto> orderService = DtoServiceAccess.getService(HOrderDto.class);
IDTOService<HCountryDto> countryService = DtoServiceAccess.getService(HCountryDto.class);
IDTOService<HAddressDto> addressService = DtoServiceAccess.getService(HAddressDto.class);
HCountryDto cAT = new HCountryDto();
cAT.setIsoCode("AT");
countryService.persist(cAT);
cAT = countryService.reload(cAT);
HCountryDto cDE = new HCountryDto();
cDE.setIsoCode("DE");
countryService.persist(cDE);
cDE = countryService.reload(cDE);
HAddressDto addrPrichner_v1_AT = new HAddressDto();
addrPrichner_v1_AT.setCountry(cAT);
addrPrichner_v1_AT.setName("Pirchner");
addrPrichner_v1_AT.setStreet("Irgendwo");
addrPrichner_v1_AT.setPostalCode("1010");
addressService.update(addrPrichner_v1_AT);
addrPrichner_v1_AT = addressService.reload(addrPrichner_v1_AT);
HAddressDto addrPrichner_v2_AT = (HAddressDto) DtoUtils.newHistorizedVersionCopy(addrPrichner_v1_AT);
addrPrichner_v2_AT.setCountry(cDE);
addressService.update(addrPrichner_v2_AT);
addrPrichner_v2_AT = addressService.reload(addrPrichner_v2_AT);
HAddressDto addrEdler_v1_DE = new HAddressDto();
addrEdler_v1_DE.setCountry(cDE);
addrEdler_v1_DE.setName("Edler");
addrEdler_v1_DE.setStreet("Berlin");
addrEdler_v1_DE.setPostalCode("99999");
addressService.update(addrEdler_v1_DE);
addrEdler_v1_DE = addressService.reload(addrEdler_v1_DE);
// create a default order
//
HOrderDto order_Flo_1 = new HOrderDto();
order_Flo_1.setOrderNumber("Flo_1");
order_Flo_1.setDeliveryAddress(addrPrichner_v1_AT);
order_Flo_1.setInvoiceAddress(addrPrichner_v1_AT);
orderService.update(order_Flo_1);
order_Flo_1 = orderService.reload(order_Flo_1);
Assert.assertEquals("AT", order_Flo_1.getDeliveryAddress().getCountry().getIsoCode());
Assert.assertEquals("AT", order_Flo_1.getInvoiceAddress().getCountry().getIsoCode());
order_Flo_1.setInvoiceAddress(addrPrichner_v2_AT);
orderService.update(order_Flo_1);
order_Flo_1 = orderService.reload(order_Flo_1);
Assert.assertEquals("AT", order_Flo_1.getDeliveryAddress().getCountry().getIsoCode());
Assert.assertEquals("DE", order_Flo_1.getInvoiceAddress().getCountry().getIsoCode());
}
}