package org.lunifera.dsl.tests.model.tests; import java.util.Date; import org.junit.Assert; import org.junit.Test; import org.lunifera.dsl.dto.lib.Context; import org.lunifera.dsl.dto.lib.impl.DtoServiceAccess; import org.lunifera.dsl.dto.lib.services.IDTOService; import org.lunifera.dsl.tests.carstore.entities.dtos.AddonDto; import org.lunifera.dsl.tests.carstore.entities.dtos.AddressDto; import org.lunifera.dsl.tests.carstore.entities.dtos.CarDto; import org.lunifera.dsl.tests.carstore.entities.dtos.PersonDto; import org.lunifera.dsl.tests.model.AbstractJPATest; @SuppressWarnings("restriction") public class ServicesTests extends AbstractJPATest { @Test public void testService_CRUD() throws Exception { super.setUp(); IDTOService<CarDto> carService = DtoServiceAccess .getService(CarDto.class); CarDto car = new CarDto(); car.setNumber("112233"); car.setFinishingDate(new Date()); CarDto newCar = carService.update(car); Assert.assertEquals(car.getNumber(), newCar.getNumber()); Assert.assertEquals(car.getUuid(), newCar.getUuid()); CarDto rCar = carService.get(car.getUuid()); Assert.assertEquals("112233", rCar.getNumber()); carService.delete(rCar); rCar = carService.get(car.getUuid()); Assert.assertNull(rCar); } @Test public void testService_CRUD_complex() throws Exception { super.setUp(); IDTOService<CarDto> carService = DtoServiceAccess .getService(CarDto.class); 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); CarDto newCar = carService.update(car); 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()); CarDto rCar = carService.get(car.getUuid()); Assert.assertEquals("777777", rCar.getNumber()); Assert.assertEquals(2, car.getAddons().size()); Assert.assertEquals("addon1", rCar.getAddons().get(0).getDescription()); Assert.assertEquals("addon2", rCar.getAddons().get(1).getDescription()); Assert.assertSame(rCar, rCar.getAddons().get(0).getCar()); Assert.assertSame(rCar, rCar.getAddons().get(1).getCar()); carService.delete(rCar); rCar = carService.get(car.getUuid()); Assert.assertNull(rCar); } @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 Context()); 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()); } }