From d0d3130e1d70f5cd2061f332e0db6a58fc15db0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Tue, 17 Nov 2009 21:23:08 +0100 Subject: [PATCH] ItEr35S07ValidacionEProbasFuncionaisItEr34S08: Recovering previously deleted test method can be saved twice along with fix due to checkConstraintUniqueCriterionTypeName --- .../resources/daos/CriterionTypeDAO.java | 3 ++- .../resources/daos/CriterionTypeDAOTest.java | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/CriterionTypeDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/CriterionTypeDAO.java index 5c74db82c..0bdff24f6 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/CriterionTypeDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/CriterionTypeDAO.java @@ -71,7 +71,8 @@ public class CriterionTypeDAO extends GenericDAOHibernate @Override public boolean existsByName(CriterionType criterionType) { try { - return findUniqueByName(criterionType) != null; + CriterionType t = findUniqueByName(criterionType); + return t != null && t != criterionType; } catch (InstanceNotFoundException e) { return false; } diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/daos/CriterionTypeDAOTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/daos/CriterionTypeDAOTest.java index 0e306bad0..07b5d5199 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/daos/CriterionTypeDAOTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/daos/CriterionTypeDAOTest.java @@ -79,12 +79,21 @@ public class CriterionTypeDAOTest { assertTrue(criterionTypeDAO.exists(criterionType.getId())); } - @Test(expected=ValidationException.class) + @Test + public void testCriterionTypeCanBeSavedTwice() throws ValidationException { + CriterionType criterionType = createValidCriterionType(); + criterionTypeDAO.save(criterionType); + criterionTypeDAO.save(criterionType); + assertTrue(criterionTypeDAO.exists(criterionType.getId()) + || criterionTypeDAO.existsByName(criterionType)); + } + + @Test(expected = ValidationException.class) public void testCannotSaveTwoDifferentCriterionTypesWithTheSameName() throws ValidationException { - CriterionType criterionType = createValidCriterionType("bla",""); + CriterionType criterionType = createValidCriterionType("bla", ""); criterionTypeDAO.save(criterionType); - criterionType = createValidCriterionType("bla",""); + criterionType = createValidCriterionType("bla", ""); criterionTypeDAO.save(criterionType); } @@ -145,4 +154,5 @@ public class CriterionTypeDAOTest { assertTrue(numberOfCriterionsOfTypeResourceAndWorker >= numberOfCriterionsOfTypeResource); } + }