Commit 3e19f8aa authored by Phillip Webb's avatar Phillip Webb

Relax TestEntityManager @ID restriction

Change TestEntityManager so that entities with an ID can be persisted.

Fixes gh-6546
parent 25c4e261
...@@ -90,8 +90,6 @@ public class TestEntityManager { ...@@ -90,8 +90,6 @@ public class TestEntityManager {
* @return the persisted entity * @return the persisted entity
*/ */
public <E> E persist(E entity) { public <E> E persist(E entity) {
Assert.state(getId(entity) == null,
"Entity " + entity.getClass().getName() + " already has an ID");
getEntityManager().persist(entity); getEntityManager().persist(entity);
return entity; return entity;
} }
......
...@@ -74,7 +74,7 @@ public class TestEntityManagerTests { ...@@ -74,7 +74,7 @@ public class TestEntityManagerTests {
public void persistAndGetIdShouldPersistAndGetId() throws Exception { public void persistAndGetIdShouldPersistAndGetId() throws Exception {
bindEntityManager(); bindEntityManager();
TestEntity entity = new TestEntity(); TestEntity entity = new TestEntity();
given(this.persistenceUnitUtil.getIdentifier(entity)).willReturn(null, 123); given(this.persistenceUnitUtil.getIdentifier(entity)).willReturn(123);
Object result = this.testEntityManager.persistAndGetId(entity); Object result = this.testEntityManager.persistAndGetId(entity);
verify(this.entityManager).persist(entity); verify(this.entityManager).persist(entity);
assertThat(result).isEqualTo(123); assertThat(result).isEqualTo(123);
...@@ -84,7 +84,7 @@ public class TestEntityManagerTests { ...@@ -84,7 +84,7 @@ public class TestEntityManagerTests {
public void persistAndGetIdForTypeShouldPersistAndGetId() throws Exception { public void persistAndGetIdForTypeShouldPersistAndGetId() throws Exception {
bindEntityManager(); bindEntityManager();
TestEntity entity = new TestEntity(); TestEntity entity = new TestEntity();
given(this.persistenceUnitUtil.getIdentifier(entity)).willReturn(null, 123); given(this.persistenceUnitUtil.getIdentifier(entity)).willReturn(123);
Integer result = this.testEntityManager.persistAndGetId(entity, Integer.class); Integer result = this.testEntityManager.persistAndGetId(entity, Integer.class);
verify(this.entityManager).persist(entity); verify(this.entityManager).persist(entity);
assertThat(result).isEqualTo(123); assertThat(result).isEqualTo(123);
...@@ -99,17 +99,6 @@ public class TestEntityManagerTests { ...@@ -99,17 +99,6 @@ public class TestEntityManagerTests {
assertThat(result).isSameAs(entity); assertThat(result).isSameAs(entity);
} }
@Test
public void persistWhenAlreadyHasIdShouldThrowException() throws Exception {
bindEntityManager();
TestEntity entity = new TestEntity();
given(this.persistenceUnitUtil.getIdentifier(entity)).willReturn(123);
this.thrown.expect(IllegalStateException.class);
this.thrown.expectMessage(
"Entity " + TestEntity.class.getName() + " already has an ID");
this.testEntityManager.persistAndGetId(entity, Integer.class);
}
@Test @Test
public void persistAndFlushShouldPersistAndFlush() throws Exception { public void persistAndFlushShouldPersistAndFlush() throws Exception {
bindEntityManager(); bindEntityManager();
...@@ -125,7 +114,7 @@ public class TestEntityManagerTests { ...@@ -125,7 +114,7 @@ public class TestEntityManagerTests {
bindEntityManager(); bindEntityManager();
TestEntity entity = new TestEntity(); TestEntity entity = new TestEntity();
TestEntity found = new TestEntity(); TestEntity found = new TestEntity();
given(this.persistenceUnitUtil.getIdentifier(entity)).willReturn(null, 123); given(this.persistenceUnitUtil.getIdentifier(entity)).willReturn(123);
given(this.entityManager.find(TestEntity.class, 123)).willReturn(found); given(this.entityManager.find(TestEntity.class, 123)).willReturn(found);
TestEntity result = this.testEntityManager.persistFlushFind(entity); TestEntity result = this.testEntityManager.persistFlushFind(entity);
verify(this.entityManager).persist(entity); verify(this.entityManager).persist(entity);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment