WhoCreated, WhoModified on OneToMany connections. (#942)

* WhoCreated, WhoModified on OneToMany connections.

* PostgreSQL table name fix in tests.
This commit is contained in:
Nagy Vilmos
2017-01-11 20:54:20 +13:00
committed by Rob Bygrave
parent e49c42302a
commit 8fd04807c7
7 changed files with 272 additions and 14 deletions
@@ -5,9 +5,12 @@ import io.ebean.Ebean;
import io.ebean.MyCurrentUserProvider;
import org.tests.model.EWhoProps;
import org.junit.Test;
import org.tests.model.generated.User;
import org.tests.model.generated.WhoPropsOneToMany;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
public class TestGeneratedWho extends BaseTestCase {
@@ -17,7 +20,7 @@ public class TestGeneratedWho extends BaseTestCase {
EWhoProps bean = new EWhoProps();
bean.setName("one");
MyCurrentUserProvider.setUserId("INSERT_WHO_1");
MyCurrentUserProvider.setUser("INSERT_WHO_1");
Ebean.save(bean);
assertEquals("one", bean.getName());
@@ -26,7 +29,7 @@ public class TestGeneratedWho extends BaseTestCase {
assertNotNull(bean.getWhenCreated());
assertNotNull(bean.getWhenModified());
MyCurrentUserProvider.setUserId("UPDATE_WHO_1");
MyCurrentUserProvider.setUser("UPDATE_WHO_1");
bean.setName("two");
Ebean.save(bean);
@@ -34,7 +37,7 @@ public class TestGeneratedWho extends BaseTestCase {
assertEquals("INSERT_WHO_1", bean.getWhoCreated());
assertEquals("UPDATE_WHO_1", bean.getWhoModified());
MyCurrentUserProvider.setUserId("UPDATE_WHO_2");
MyCurrentUserProvider.setUser("UPDATE_WHO_2");
bean.setName("three");
Ebean.save(bean);
@@ -43,4 +46,60 @@ public class TestGeneratedWho extends BaseTestCase {
MyCurrentUserProvider.resetToDefault();
}
@Test
public void insertOneToManyWhoCreated() {
User creator = new User("jack");
User maintainer01 = new User("jill");
User maintainer02 = new User("joe");
Ebean.save(creator);
Ebean.save(maintainer01);
Ebean.save(maintainer02);
WhoPropsOneToMany bean = new WhoPropsOneToMany();
bean.setName("one");
MyCurrentUserProvider.setUser(creator);
Ebean.save(bean);
assertNotNull(bean.getWhoCreated());
assertEquals(creator.getId(), bean.getWhoCreated().getId());
assertEquals(creator.getId(), bean.getWhoModified().getId());
MyCurrentUserProvider.setUser(maintainer01);
bean.setName("two");
Ebean.save(bean);
assertEquals("two", bean.getName());
assertEquals(creator.getId(), bean.getWhoCreated().getId());
assertEquals(maintainer01.getId(), bean.getWhoModified().getId());
MyCurrentUserProvider.setUser(maintainer02);
bean.setName("three");
Ebean.save(bean);
assertEquals(creator.getId(), bean.getWhoCreated().getId());
assertEquals(maintainer02.getId(), bean.getWhoModified().getId());
MyCurrentUserProvider.resetToDefault();
}
@Test
public void insertNullIntoOneToManyWhoCreated() {
User creator = new User("jack");
Ebean.save(creator);
WhoPropsOneToMany bean = new WhoPropsOneToMany();
bean.setName("one");
bean.setWhoCreated(creator);
bean.setWhoModified(creator);
MyCurrentUserProvider.setUser(null);
Ebean.save(bean);
assertNull(bean.getWhoCreated());
assertNull(bean.getWhoModified());
MyCurrentUserProvider.resetToDefault();
}
}