it fixes and updates the EntitySequenceTest for working with default EntitySequences.

FEA :ItEr61S04NavalPlanEntities
This commit is contained in:
Susana Montes Pedreira 2010-10-13 19:38:08 +02:00 committed by Javier Moran Rua
parent 9cee9e9466
commit f992a9bc9c
2 changed files with 52 additions and 65 deletions

View file

@ -25,6 +25,9 @@ import static org.junit.Assert.fail;
import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
import java.util.UUID;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.navalplanner.business.common.daos.IEntitySequenceDAO;
@ -33,7 +36,6 @@ import org.navalplanner.business.common.entities.EntitySequence;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.common.exceptions.ValidationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.NotTransactional;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
@ -52,14 +54,22 @@ public class EntitySequenceTest {
@Autowired
IEntitySequenceDAO entitySequenceDAO;
@Autowired
private IAdHocTransactionService transactionService;
@Before
public void loadRequiredaData() {
for (EntitySequence sequence : entitySequenceDAO.getAll()) {
try {
entitySequenceDAO.remove(sequence.getId());
} catch (InstanceNotFoundException e) {
}
}
}
@Test
public void testCreateActiveEntitySequence() throws Exception {
try {
entitySequenceDAO.save(givenEntitySequence("prefix_test",
EntityNameEnum.CALENDAR, true));
entitySequenceDAO.save(givenEntitySequence("prefix-"
+ UUID.randomUUID(), EntityNameEnum.CALENDAR, true));
entitySequenceDAO.flush();
} catch (ValidationException e) {
fail("It should not throw an exception");
@ -96,7 +106,8 @@ public class EntitySequenceTest {
@Test
public void testCreateEntitySequenceWithEmptyEntityName() throws Exception {
try {
entitySequenceDAO.save(givenEntitySequence("prefix", null, false));
entitySequenceDAO.save(givenEntitySequence("prefix-"
+ UUID.randomUUID(), null, false));
fail("It should throw an exception");
} catch (ValidationException e) {
// It should throw an exception
@ -108,8 +119,8 @@ public class EntitySequenceTest {
public void testCreateEntitySequenceWithNumberOfDigitsNotSpecified()
throws Exception {
try {
EntitySequence entitySequence = givenEntitySequence("prefix",
EntityNameEnum.CRITERION, true);
EntitySequence entitySequence = givenEntitySequence("prefix-"
+ UUID.randomUUID(), EntityNameEnum.CRITERION, true);
entitySequence.setNumberOfDigits(null);
entitySequenceDAO.save(entitySequence);
fail("It should throw an exception");
@ -123,8 +134,8 @@ public class EntitySequenceTest {
public void testCreateEntitySequenceWithNumberOfDigitsOutRange()
throws Exception {
try {
EntitySequence entitySequence = givenEntitySequence("prefix",
EntityNameEnum.CRITERION, true);
EntitySequence entitySequence = givenEntitySequence("prefix-"
+ UUID.randomUUID(), EntityNameEnum.CRITERION, true);
entitySequence.setNumberOfDigits(15);
entitySequenceDAO.save(entitySequence);
fail("It should throw an exception");
@ -135,87 +146,59 @@ public class EntitySequenceTest {
}
@Test
@NotTransactional
@Transactional
public void testCreateTwoActiveEntitySequenceWithTheSameEntityName() {
EntitySequence entitySequenceA = givenEntitySequence("prefixA",
EntityNameEnum.CRITERION, true);
saveEntitySequenceInTransaction(entitySequenceA);
EntitySequence entitySequenceA = givenEntitySequence("prefix-"
+ UUID.randomUUID(), EntityNameEnum.CRITERION, true);
entitySequenceDAO.save(entitySequenceA);
entitySequenceDAO.flush();
try {
EntitySequence entitySequenceB = givenEntitySequence("prefixB",
EntityNameEnum.CRITERION, true);
saveEntitySequenceInTransaction(entitySequenceB);
EntitySequence entitySequenceB = givenEntitySequence("prefix-"
+ UUID.randomUUID(), EntityNameEnum.CRITERION, true);
entitySequenceDAO.save(entitySequenceB);
fail("Expected ValidationException");
} catch (ValidationException e) {
}
}
@Test
@NotTransactional
@Transactional
public void testCreateTwoEntitySequenceWithTheSameEntityName() {
EntitySequence entitySequenceA = givenEntitySequence("prefixA",
EntityNameEnum.LABEL, true);
saveEntitySequenceInTransaction(entitySequenceA);
EntitySequence entitySequenceA = givenEntitySequence("prefix-"
+ UUID.randomUUID(), EntityNameEnum.LABEL, true);
entitySequenceDAO.save(entitySequenceA);
entitySequenceDAO.flush();
try {
EntitySequence entitySequenceB = givenEntitySequence("prefixB",
EntityNameEnum.LABEL, false);
saveEntitySequenceInTransaction(entitySequenceB);
EntitySequence entitySequenceB = givenEntitySequence("prefix-"
+ UUID.randomUUID(), EntityNameEnum.LABEL, false);
entitySequenceDAO.save(entitySequenceB);
} catch (ValidationException e) {
fail("It shouldn't throw an exception");
}
}
@Test
@NotTransactional
@Transactional
public void testCreateAndRemoveTwoEntitySequenceWithTheSameEntityName() {
EntitySequence entitySequenceA = givenEntitySequence("prefixA",
EntityNameEnum.MACHINE, true);
saveEntitySequenceInTransaction(entitySequenceA);
EntitySequence entitySequenceA = givenEntitySequence("prefix-"
+ UUID.randomUUID(), EntityNameEnum.MACHINE, true);
entitySequenceDAO.save(entitySequenceA);
try {
removeEntitySequenceInTransaction(entitySequenceA);
entitySequenceDAO.remove(entitySequenceA.getId());
} catch (ValidationException e) {
fail("It shouldn't throw an exception");
} catch (InstanceNotFoundException o) {
fail("It shouldn't throw an exception");
}
try {
EntitySequence entitySequenceB = givenEntitySequence("prefixB",
EntityNameEnum.MACHINE, true);
saveEntitySequenceInTransaction(entitySequenceB);
EntitySequence entitySequenceB = givenEntitySequence("prefix-"
+ UUID.randomUUID(), EntityNameEnum.MACHINE, true);
entitySequenceDAO.save(entitySequenceB);
} catch (ValidationException e) {
fail("It shouldn't throw an exception");
}
}
private void saveEntitySequenceInTransaction(
final EntitySequence entitySequence) {
IOnTransaction<Void> createEntitySequenceTransaction = new IOnTransaction<Void>() {
@Override
public Void execute() {
entitySequenceDAO.save(entitySequence);
return null;
}
};
transactionService.runOnTransaction(createEntitySequenceTransaction);
}
private void removeEntitySequenceInTransaction(
final EntitySequence entitySequence) {
IOnTransaction<Void> createEntitySequenceTransaction = new IOnTransaction<Void>() {
@Override
public Void execute() {
try {
entitySequenceDAO.remove(entitySequence);
} catch (InstanceNotFoundException e) {
} catch (IllegalArgumentException e) {
}
return null;
}
};
transactionService.runOnTransaction(createEntitySequenceTransaction);
}
private EntitySequence givenEntitySequence(String prefix,
EntityNameEnum entityName, boolean active) {
EntitySequence entitySequence = EntitySequence.create(prefix,
@ -223,4 +206,5 @@ public class EntitySequenceTest {
entitySequence.setActive(active);
return entitySequence;
}
}
}

View file

@ -78,6 +78,9 @@
<value>
org/navalplanner/business/common/entities/OrderSequence.hbm.xml
</value>
<value>
org/navalplanner/business/common/entities/EntitySequence.hbm.xml
</value>
<value>
org/navalplanner/business/externalcompanies/entities/ExternalCompanies.hbm.xml
</value>