#641 - ENH: Add EbeanServer.setBeanId(bean, id) ... to make it easy to convert id value to appropriate type and set

This commit is contained in:
Robin Bygrave
2016-04-08 01:15:34 +12:00
parent 649c14644e
commit 524be4ce55
4 changed files with 58 additions and 4 deletions
@@ -244,6 +244,11 @@ public class TDSpiEbeanServer implements SpiEbeanServer {
return null;
}
@Override
public Object setBeanId(Object bean, Object id) {
return id;
}
@Override
public Object getBeanId(Object bean) {
return null;
@@ -2,6 +2,7 @@ package com.avaje.tests.basic;
import java.util.List;
import com.avaje.tests.model.basic.Customer;
import com.avaje.tests.model.basic.MyEBasicConfigStartup;
import org.junit.Assert;
import org.junit.Test;
@@ -11,10 +12,35 @@ import com.avaje.ebean.Ebean;
import com.avaje.ebean.EbeanServer;
import com.avaje.tests.model.basic.EBasic;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
public class TestExplicitInsert extends BaseTestCase {
@Test
public void setId_when_converted() {
EbeanServer server = Ebean.getDefaultServer();
Customer cust = new Customer();
Object returnId = server.setBeanId(cust, "42");
assertThat(returnId).isEqualTo(42);
assertThat(cust.getId()).isEqualTo(42);
}
@Test
public void setId_when_correctType() {
EbeanServer server = Ebean.getDefaultServer();
Customer customer = new Customer();
Object returnId = server.setBeanId(customer, 42);
assertThat(returnId).isEqualTo(42);
assertThat(customer.getId()).isEqualTo(42);
}
@Test
public void test() throws InterruptedException {
@@ -27,7 +53,7 @@ public class TestExplicitInsert extends BaseTestCase {
b.setDescription("explicit insert");
b.setStatus(EBasic.Status.ACTIVE);
EbeanServer server = Ebean.getServer(null);
EbeanServer server = Ebean.getDefaultServer();
server.insert(b);
Assert.assertNotNull(b.getId());
@@ -35,6 +61,9 @@ public class TestExplicitInsert extends BaseTestCase {
Assert.assertEquals(b.getId(), server.getBeanId(b));
EBasic b2 = server.find(EBasic.class, b.getId());
b2.setId(null);