Repository: camel Updated Branches: refs/heads/master 1596d267e -> bd1c3957d
camel-optaplanner test: extract local variable mockEndpoint + extract inner class RemoveComputerChange Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/697e7359 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/697e7359 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/697e7359 Branch: refs/heads/master Commit: 697e735966014d292ff84633598e9e6ffd604d62 Parents: 1596d26 Author: Geoffrey De Smet <gds.geoffrey.de.s...@gmail.com> Authored: Tue Oct 13 11:11:11 2015 +0200 Committer: Geoffrey De Smet <gds.geoffrey.de.s...@gmail.com> Committed: Tue Oct 13 11:11:11 2015 +0200 ---------------------------------------------------------------------- .../OptaPlannerDaemonSolverTest.java | 73 +++++++++++--------- 1 file changed, 41 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/697e7359/components/camel-optaplanner/src/test/java/org/apache/camel/component/optaplanner/OptaPlannerDaemonSolverTest.java ---------------------------------------------------------------------- diff --git a/components/camel-optaplanner/src/test/java/org/apache/camel/component/optaplanner/OptaPlannerDaemonSolverTest.java b/components/camel-optaplanner/src/test/java/org/apache/camel/component/optaplanner/OptaPlannerDaemonSolverTest.java index 663776f..0b48eb1 100644 --- a/components/camel-optaplanner/src/test/java/org/apache/camel/component/optaplanner/OptaPlannerDaemonSolverTest.java +++ b/components/camel-optaplanner/src/test/java/org/apache/camel/component/optaplanner/OptaPlannerDaemonSolverTest.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.Iterator; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit4.CamelTestSupport; import org.apache.commons.lang3.ObjectUtils; import org.junit.Test; @@ -37,47 +38,25 @@ public class OptaPlannerDaemonSolverTest extends CamelTestSupport { @Test public void testAsynchronousProblemSolving() throws Exception { - getMockEndpoint("mock:result").setExpectedCount(1); + MockEndpoint mockEndpoint = getMockEndpoint("mock:result"); + mockEndpoint.setExpectedCount(1); CloudBalancingGenerator generator = new CloudBalancingGenerator(true); final CloudBalance planningProblem = generator.createCloudBalance(4, 12); assertNull(planningProblem.getScore()); assertNull(planningProblem.getProcessList().get(0).getComputer()); template.requestBody("direct:in", planningProblem); - getMockEndpoint("mock:result").assertIsSatisfied(); - getMockEndpoint("mock:result").reset(); - getMockEndpoint("mock:result").setExpectedCount(0); + mockEndpoint.assertIsSatisfied(); + mockEndpoint.reset(); + mockEndpoint.setExpectedCount(1); - template.requestBody("direct:in", new ProblemFactChange() { - @Override - public void doChange(ScoreDirector scoreDirector) { - CloudBalance cloudBalance = (CloudBalance) scoreDirector.getWorkingSolution(); - CloudComputer computer = null; - for (CloudProcess process : cloudBalance.getProcessList()) { - computer = process.getComputer(); - if (ObjectUtils.equals(process.getComputer(), computer)) { - scoreDirector.beforeVariableChanged(process, "computer"); - process.setComputer(null); - scoreDirector.afterVariableChanged(process, "computer"); - } - } - cloudBalance.setComputerList(new ArrayList<CloudComputer>(cloudBalance.getComputerList())); - for (Iterator<CloudComputer> it = cloudBalance.getComputerList().iterator(); it.hasNext();) { - CloudComputer workingComputer = it.next(); - if (ObjectUtils.equals(workingComputer, computer)) { - scoreDirector.beforeProblemFactRemoved(workingComputer); - it.remove(); // remove from list - scoreDirector.beforeProblemFactRemoved(workingComputer); - break; - } - } - } - }); + CloudComputer firstComputer = planningProblem.getComputerList().get(0); + assertNotNull(firstComputer); + template.requestBody("direct:in", new RemoveComputerChange(firstComputer)); - getMockEndpoint("mock:result").assertIsSatisfied(); + mockEndpoint.assertIsSatisfied(); CloudBalance bestSolution = (CloudBalance) template.requestBody("direct:in", "foo"); - - assertEquals(4, bestSolution.getComputerList().size()); + assertEquals(3, bestSolution.getComputerList().size()); } protected RouteBuilder createRouteBuilder() { @@ -93,4 +72,34 @@ public class OptaPlannerDaemonSolverTest extends CamelTestSupport { }; } + private static class RemoveComputerChange implements ProblemFactChange { + + private final CloudComputer removingComputer; + + public RemoveComputerChange(CloudComputer removingComputer) { + this.removingComputer = removingComputer; + } + + @Override + public void doChange(ScoreDirector scoreDirector) { + CloudBalance cloudBalance = (CloudBalance) scoreDirector.getWorkingSolution(); + for (CloudProcess process : cloudBalance.getProcessList()) { + if (ObjectUtils.equals(process.getComputer(), removingComputer)) { + scoreDirector.beforeVariableChanged(process, "computer"); + process.setComputer(null); + scoreDirector.afterVariableChanged(process, "computer"); + } + } + cloudBalance.setComputerList(new ArrayList<CloudComputer>(cloudBalance.getComputerList())); + for (Iterator<CloudComputer> it = cloudBalance.getComputerList().iterator(); it.hasNext();) { + CloudComputer workingComputer = it.next(); + if (ObjectUtils.equals(workingComputer, removingComputer)) { + scoreDirector.beforeProblemFactRemoved(workingComputer); + it.remove(); // remove from list + scoreDirector.beforeProblemFactRemoved(workingComputer); + break; + } + } + } + } }