From 4e23697fc8ba72040105cec665395cacc8b192ed Mon Sep 17 00:00:00 2001 From: oblonski <4sschroeder@gmail.com> Date: Wed, 26 Mar 2014 12:41:47 +0100 Subject: [PATCH] tested new methods .get/putProblemState --- .../core/algorithm/state/StateManager.java | 3 +- .../algorithm/state/StateManagerTest.java | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/state/StateManager.java b/jsprit-core/src/main/java/jsprit/core/algorithm/state/StateManager.java index 3fd5a1cd..416c476d 100644 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/state/StateManager.java +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/state/StateManager.java @@ -167,7 +167,8 @@ public class StateManager implements RouteAndActivityStateGetter, IterationStart } T getDefaultProblemState(StateId stateId, Class type){ - return defaultProblemStates_.getState(stateId, type); + if(defaultProblemStates_.containsKey(stateId)) return defaultProblemStates_.getState(stateId, type); + return null; } /** diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/state/StateManagerTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/state/StateManagerTest.java index cd865e86..620c808b 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/state/StateManagerTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/state/StateManagerTest.java @@ -143,4 +143,34 @@ public class StateManagerTest { Capacity getCap = stateManager.getActivityState(activity, id, Capacity.class); assertEquals(500, getCap.get(0)); } + + @Test + public void whenProblemStateIsSet_itMustBeSetCorrectly(){ + StateManager stateManager = new StateManager(mock(VehicleRoutingTransportCosts.class)); + StateId id = StateFactory.createId("problemState"); + stateManager.putProblemState(id, Boolean.class, true); + boolean problemState = stateManager.getProblemState(id, Boolean.class); + assertTrue(problemState); + } + + @Test(expected=NullPointerException.class) + public void whenProblemStateIsSetAndStateManagerClearedAfterwards_itThrowsException(){ + StateManager stateManager = new StateManager(mock(VehicleRoutingTransportCosts.class)); + StateId id = StateFactory.createId("problemState"); + stateManager.putProblemState(id, Boolean.class, true); + stateManager.clear(); + @SuppressWarnings("unused") + boolean problemState = stateManager.getProblemState(id, Boolean.class); + } + + @Test + public void whenProblemStateIsSetAndStateManagerClearedAfterwards_itReturnsDefault(){ + StateManager stateManager = new StateManager(mock(VehicleRoutingTransportCosts.class)); + StateId id = StateFactory.createId("problemState"); + stateManager.putDefaultProblemState(id, Boolean.class, false); + stateManager.putProblemState(id, Boolean.class, true); + stateManager.clear(); + boolean problemState = stateManager.getProblemState(id, Boolean.class); + assertFalse(problemState); + } }