Class 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 Detail

      • MockProblemChangeDirector

        public MockProblemChangeDirector()
    • Method Detail

      • 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