package org.tests.generated;
import io.ebean.BaseTestCase;
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 {
@Test
public void insertUpdate() {
EWhoProps bean = new EWhoProps();
bean.setName("one");
MyCurrentUserProvider.setUser("INSERT_WHO_1");
Ebean.save(bean);
assertEquals("one", bean.getName());
assertEquals("INSERT_WHO_1", bean.getWhoCreated());
assertEquals("INSERT_WHO_1", bean.getWhoModified());
assertNotNull(bean.getWhenCreated());
assertNotNull(bean.getWhenModified());
MyCurrentUserProvider.setUser("UPDATE_WHO_1");
bean.setName("two");
Ebean.save(bean);
assertEquals("two", bean.getName());
assertEquals("INSERT_WHO_1", bean.getWhoCreated());
assertEquals("UPDATE_WHO_1", bean.getWhoModified());
MyCurrentUserProvider.setUser("UPDATE_WHO_2");
bean.setName("three");
Ebean.save(bean);
assertEquals("INSERT_WHO_1", bean.getWhoCreated());
assertEquals("UPDATE_WHO_2", bean.getWhoModified());
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();
}
}