Do not remove mock from history after max uses

This commit is contained in:
Piotr Fus 2020-08-11 12:53:35 +02:00
parent 769199f5d4
commit fe9ef89970
4 changed files with 9 additions and 12 deletions

View file

@ -97,17 +97,15 @@ class ContextExecutor {
private synchronized void handleMaxUses(Mock mock) {
if (mock.hasLimitedUses()) {
mock.decrementUses()
removeAndResetIfNeeded(mock)
resetIfNeeded(mock)
log.debug("Uses left ${mock.usesLeft} of ${mock.maxUses} (is cyclic: ${mock.cyclic})")
}
}
private void removeAndResetIfNeeded(Mock mock) {
if (mock.shouldBeRemoved()) {
mocks.remove(mock)
}
private void resetIfNeeded(Mock mock) {
if (mock.shouldUsesBeReset()) {
mock.resetUses()
mocks.remove(mock)
mocks.add(mock)
}
}

View file

@ -59,7 +59,8 @@ class Mock implements Comparable<Mock> {
}
boolean match(Method method, MockRequest request) {
return this.method == method && predicate(request)
boolean usesCondition = hasLimitedUses() ? usesLeft > 0 : true
return usesCondition && this.method == method && predicate(request)
}
MockResponse apply(MockRequest request) {
@ -188,12 +189,8 @@ class Mock implements Comparable<Mock> {
usesLeft--
}
boolean shouldBeRemoved() {
return hasLimitedUses() && usesLeft <= 0
}
boolean shouldUsesBeReset() {
return shouldBeRemoved() && cyclic
return hasLimitedUses() && usesLeft <= 0 && cyclic
}
void resetUses() {