package org.tests.sp;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import org.tests.sp.model.car.Car;
import org.tests.sp.model.car.Wheel;
import org.junit.Assert;
import org.junit.Test;
import java.util.LinkedList;
import java.util.List;
public class TestManyToManySaveTwice extends BaseTestCase {
@Test
public void testInsertCarTwice() {
Ebean.createSqlUpdate("delete from sp_car_car_wheels").execute();
Ebean.createSqlUpdate("delete from sp_car_wheel").execute();
Ebean.createSqlUpdate("delete from sp_car_car").execute();
List<Wheel> wheels = new LinkedList<>();
wheels.add(new Wheel());
wheels.add(new Wheel());
wheels.add(new Wheel());
wheels.add(new Wheel());
Car c = new Car();
c.setWheels(wheels);
Ebean.save(c); // NOTE 1ST SAVE
Assert.assertFalse("No ID assigned!", c.getId() == null);
Ebean.save(c); // NOTE 2ND SAVE
List<Car> allCars = Ebean.find(Car.class).findList();
Assert.assertEquals("Inserted 1 car, received more/less!", 1, allCars.size());
List<Wheel> allWheels = Ebean.find(Wheel.class).findList();
Assert.assertEquals("Inserted 4 wheels, received more/less!", 4, allWheels.size());
}
}