From a37285c7e8cbafea06a7113f1f07db9138847760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Mon, 3 Aug 2009 16:05:05 +0200 Subject: [PATCH] ItEr20S07CUIntroducionAvanceUnidadeTraballoItEr19S12: Extracting equivalence method and moved to AdvanceType Adding test case that reproduced the error. This way they're more resilient to change. --- .../navalplanner/business/advance/entities/AdvanceType.java | 6 ++++++ .../navalplanner/business/orders/entities/OrderElement.java | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/advance/entities/AdvanceType.java b/navalplanner-business/src/main/java/org/navalplanner/business/advance/entities/AdvanceType.java index d7a9302f0..496473565 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/advance/entities/AdvanceType.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/advance/entities/AdvanceType.java @@ -123,4 +123,10 @@ public class AdvanceType { return true; } + public static boolean equivalentInDB(AdvanceType type, AdvanceType otherType) { + if (type.getId() == null || otherType.getId() == null) + return false; + return type.getId().equals(otherType.getId()); + } + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java index 43c0a056c..7db89cfb0 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java @@ -8,6 +8,7 @@ import java.util.Set; import org.hibernate.validator.NotEmpty; import org.navalplanner.business.advance.entities.AdvanceAssigment; +import org.navalplanner.business.advance.entities.AdvanceType; import org.navalplanner.business.advance.exceptions.DuplicateAdvanceAssigmentForOrderElementException; import org.navalplanner.business.advance.exceptions.DuplicateValueTrueReportGlobalAdvanceException; import org.navalplanner.business.planner.entities.TaskElement; @@ -209,8 +210,8 @@ public abstract class OrderElement { throws DuplicateAdvanceAssigmentForOrderElementException { for (AdvanceAssigment advanceAssigment : orderElement .getAdvanceAssigments()) { - if (advanceAssigment.getAdvanceType().getId().equals( - newAdvanceAssigment.getAdvanceType().getId())) { + if (AdvanceType.equivalentInDB(advanceAssigment.getAdvanceType(), + newAdvanceAssigment.getAdvanceType())) { throw new DuplicateAdvanceAssigmentForOrderElementException( "Duplicate Advance Assigment For Order Element", this, OrderElement.class);