blob: bedeec98118b66d5cbeeac9827032386cb8bcd08 [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 v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
*
*/
package org.eclipse.osbp.dsl.tests.model.tests;
import java.lang.reflect.Field;
import java.util.Collection;
import java.util.Date;
import javax.persistence.EntityManager;
import org.eclipse.osbp.dsl.dto.lib.OppositeContainmentDtoList;
import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess;
import org.eclipse.osbp.dsl.dto.lib.services.Query;
import org.eclipse.osbp.dsl.dto.lib.services.filters.LCompare;
import org.eclipse.osbp.dsl.tests.carstore.dtos.CarDto;
import org.eclipse.osbp.dsl.tests.carstore.entities.Car;
import org.eclipse.osbp.dsl.tests.carstore.entities.ToCycle1;
import org.eclipse.osbp.dsl.tests.carstore.entities.ToCycle2;
import org.eclipse.osbp.dsl.tests.model.AbstractJPATest;
import org.eclipse.osbp.runtime.common.filter.IDTOService;
import org.junit.Assert;
import org.junit.Test;
@SuppressWarnings("restriction")
public class CycleTests extends AbstractJPATest {
private void createData() {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Car car1 = new Car();
car1.setNumber("ct-001");
ToCycle1 cycle1_1 = new ToCycle1();
car1.addToCycles1(cycle1_1);
ToCycle2 cycle2_1 = new ToCycle2();
cycle2_1.setCar(car1);
cycle1_1.addToCycles2(cycle2_1);
ToCycle1 cycle1_2 = new ToCycle1();
car1.addToCycles1(cycle1_2);
ToCycle2 cycle2_2 = new ToCycle2();
cycle2_2.setCar(car1);
cycle1_1.addToCycles2(cycle2_2);
ToCycle1 cycle1_3 = new ToCycle1();
car1.addToCycles1(cycle1_3);
ToCycle2 cycle2_3 = new ToCycle2();
cycle2_3.setCar(car1);
cycle1_1.addToCycles2(cycle2_3);
em.persist(car1);
em.getTransaction().commit();
}
@SuppressWarnings("unchecked")
@Test
public void testService() throws Exception {
super.setUp();
createData();
IDTOService<CarDto> carService = DtoServiceAccess
.getService(CarDto.class);
Collection<CarDto> cars = carService.find(new Query(new LCompare.Equal(
"number", "ct-001")));
CarDto car = cars.iterator().next();
Field field = CarDto.class.getDeclaredField("cycles1");
field.setAccessible(true);
OppositeContainmentDtoList<CarDto> list = (OppositeContainmentDtoList<CarDto>) field
.get(car);
Assert.assertFalse(list.isResolved());
car.setFinishingDate(new Date());
carService.update(car);
list = (OppositeContainmentDtoList<CarDto>) field.get(car);
Assert.assertFalse(list.isResolved());
}
// @Test
// public void testCopyDto() throws Exception {
// CarDto car = new CarDto();
// car.setNumber("777777");
// car.setFinishingDate(new Date());
//
// AddonDto addon1 = new AddonDto();
// addon1.setDescription("addon1");
// car.addToAddons(addon1);
//
// AddonDto addon2 = new AddonDto();
// addon2.setDescription("addon2");
// car.addToAddons(addon2);
//
// PersonDto personDto = new PersonDto();
// personDto.addToOwnsCars(car);
//
// personDto.setFirstname("Florian");
// personDto.setLastname("Pirchner");
//
// AddressDto address = new AddressDto();
// address.setPostalcode("112233");
// address.setStreetname("Near the beach");
//
// AddressDto addressWork = new AddressDto();
// address.setPostalcode("332211");
// address.setStreetname("Near the moon");
//
// personDto.setHomeAddress(address);
// personDto.setWorkAddress(addressWork);
//
// CarDto newCar = car.copy(new MappingContext());
// Assert.assertEquals(car.getNumber(), newCar.getNumber());
// Assert.assertEquals(car.getUuid(), newCar.getUuid());
// Assert.assertEquals(2, car.getAddons().size());
// Assert.assertEquals("addon1", car.getAddons().get(0).getDescription());
// Assert.assertEquals("addon2", car.getAddons().get(1).getDescription());
//
// }
}