MockRestServiceServer clears failed requests map

Closes gh-24486
This commit is contained in:
Rossen Stoyanchev 2020-02-10 15:01:47 +00:00
parent df706f4c7c
commit 009dfbfafc
2 changed files with 27 additions and 8 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2019 the original author or authors. * Copyright 2002-2020 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -199,6 +199,7 @@ public abstract class AbstractRequestExpectationManager implements RequestExpect
public void reset() { public void reset() {
this.expectations.clear(); this.expectations.clear();
this.requests.clear(); this.requests.clear();
this.requestFailures.clear();
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2019 the original author or authors. * Copyright 2002-2020 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -117,6 +117,24 @@ public class MockRestServiceServerTests {
server.verify(); server.verify();
} }
@Test // gh-24486
public void resetClearsRequestFailures() {
MockRestServiceServer server = MockRestServiceServer.bindTo(this.restTemplate).build();
server.expect(once(), requestTo("/remoteurl")).andRespond(withSuccess());
this.restTemplate.postForEntity("/remoteurl", null, String.class);
server.verify();
assertThatExceptionOfType(AssertionError.class)
.isThrownBy(() -> this.restTemplate.postForEntity("/remoteurl", null, String.class))
.withMessageStartingWith("No further requests expected");
server.reset();
server.expect(once(), requestTo("/remoteurl")).andRespond(withSuccess());
this.restTemplate.postForEntity("/remoteurl", null, String.class);
server.verify();
}
@Test // SPR-16132 @Test // SPR-16132
public void followUpRequestAfterFailure() { public void followUpRequestAfterFailure() {
MockRestServiceServer server = MockRestServiceServer.bindTo(this.restTemplate).build(); MockRestServiceServer server = MockRestServiceServer.bindTo(this.restTemplate).build();
@ -144,12 +162,12 @@ public class MockRestServiceServerTests {
server.expect(once(), requestTo("/remoteurl")).andRespond(withSuccess()); server.expect(once(), requestTo("/remoteurl")).andRespond(withSuccess());
this.restTemplate.postForEntity("/remoteurl", null, String.class); this.restTemplate.postForEntity("/remoteurl", null, String.class);
assertThatExceptionOfType(AssertionError.class).isThrownBy(() -> assertThatExceptionOfType(AssertionError.class)
this.restTemplate.postForEntity("/remoteurl", null, String.class)) .isThrownBy(() -> this.restTemplate.postForEntity("/remoteurl", null, String.class))
.withMessageStartingWith("No further requests expected"); .withMessageStartingWith("No further requests expected");
assertThatExceptionOfType(AssertionError.class).isThrownBy( assertThatExceptionOfType(AssertionError.class)
server::verify) .isThrownBy(server::verify)
.withMessageStartingWith("Some requests did not execute successfully"); .withMessageStartingWith("Some requests did not execute successfully");
} }