Class MockProblemChangeDirector

java.lang.Object
org.optaplanner.test.api.solver.change.MockProblemChangeDirector
All Implemented Interfaces:
org.optaplanner.core.api.solver.change.ProblemChangeDirector

public class MockProblemChangeDirector extends Object implements org.optaplanner.core.api.solver.change.ProblemChangeDirector
Use for unit-testing ProblemChanges. Together with Mockito this class makes it possible to verify that a ProblemChange implementation correctly calls methods of the ProblemChangeDirector. Example of usage:
 java
  MockProblemChangeDirector mockProblemChangeDirector = spy(new MockProblemChangeDirector());
  ProblemChange problemChange = new MyProblemChange(removedEntity);
  problemChange.doChange(solution, mockProblemChangeDirector);
  verify(mockProblemChangeDirector).removeEntity(same(removedEntity), any());
 
 
  • Constructor Details

    • MockProblemChangeDirector

      public MockProblemChangeDirector()
  • Method Details

    • addEntity

      public <Entity> void addEntity(Entity entity, Consumer<Entity> entityConsumer)
      Specified by:
      addEntity in interface org.optaplanner.core.api.solver.change.ProblemChangeDirector
    • removeEntity

      public <Entity> void removeEntity(Entity entity, Consumer<Entity> entityConsumer)
      Specified by:
      removeEntity in interface org.optaplanner.core.api.solver.change.ProblemChangeDirector
    • changeVariable

      public <Entity> void changeVariable(Entity entity, String variableName, Consumer<Entity> entityConsumer)
      Specified by:
      changeVariable in interface org.optaplanner.core.api.solver.change.ProblemChangeDirector
    • addProblemFact

      public <ProblemFact> void addProblemFact(ProblemFact problemFact, Consumer<ProblemFact> problemFactConsumer)
      Specified by:
      addProblemFact in interface org.optaplanner.core.api.solver.change.ProblemChangeDirector
    • removeProblemFact

      public <ProblemFact> void removeProblemFact(ProblemFact problemFact, Consumer<ProblemFact> problemFactConsumer)
      Specified by:
      removeProblemFact in interface org.optaplanner.core.api.solver.change.ProblemChangeDirector
    • changeProblemProperty

      public <EntityOrProblemFact> void changeProblemProperty(EntityOrProblemFact problemFactOrEntity, Consumer<EntityOrProblemFact> problemFactOrEntityConsumer)
      Specified by:
      changeProblemProperty in interface org.optaplanner.core.api.solver.change.ProblemChangeDirector
    • lookUpWorkingObjectOrFail

      public <EntityOrProblemFact> EntityOrProblemFact lookUpWorkingObjectOrFail(EntityOrProblemFact externalObject)
      If the look-up result has been provided by a whenLookingUp(Object) call, returns the defined object. Otherwise, returns the original externalObject.
      Specified by:
      lookUpWorkingObjectOrFail in interface org.optaplanner.core.api.solver.change.ProblemChangeDirector
      Parameters:
      externalObject - entity or problem fact to look up
    • lookUpWorkingObject

      public <EntityOrProblemFact> Optional<EntityOrProblemFact> lookUpWorkingObject(EntityOrProblemFact externalObject)
      If the look-up result has been provided by a whenLookingUp(Object) call, returns the defined object. Otherwise, returns null.
      Specified by:
      lookUpWorkingObject in interface org.optaplanner.core.api.solver.change.ProblemChangeDirector
      Parameters:
      externalObject - entity or problem fact to look up
    • updateShadowVariables

      public void updateShadowVariables()
      Specified by:
      updateShadowVariables in interface org.optaplanner.core.api.solver.change.ProblemChangeDirector
    • whenLookingUp

      public MockProblemChangeDirector.LookUpMockBuilder whenLookingUp(Object forObject)
      Defines what lookUpWorkingObjectOrFail(Object) returns.