Skip to content

Commit f32b29e

Browse files
committed
Don't use mocks for SystemStatusListenerTests
See gh-44012
1 parent eeee7d9 commit f32b29e

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/logging/logback/SystemStatusListenerTests.java

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616

1717
package org.springframework.boot.logging.logback;
1818

19-
import java.util.List;
2019
import java.util.function.Supplier;
2120

2221
import ch.qos.logback.classic.LoggerContext;
22+
import ch.qos.logback.core.BasicStatusManager;
2323
import ch.qos.logback.core.status.ErrorStatus;
2424
import ch.qos.logback.core.status.InfoStatus;
2525
import ch.qos.logback.core.status.Status;
@@ -28,17 +28,12 @@
2828
import ch.qos.logback.core.status.WarnStatus;
2929
import org.junit.jupiter.api.Test;
3030
import org.junit.jupiter.api.extension.ExtendWith;
31-
import org.mockito.ArgumentCaptor;
3231

3332
import org.springframework.boot.testsupport.system.CapturedOutput;
3433
import org.springframework.boot.testsupport.system.OutputCaptureExtension;
3534
import org.springframework.test.util.ReflectionTestUtils;
3635

3736
import static org.assertj.core.api.Assertions.assertThat;
38-
import static org.mockito.ArgumentMatchers.any;
39-
import static org.mockito.BDDMockito.given;
40-
import static org.mockito.BDDMockito.then;
41-
import static org.mockito.Mockito.mock;
4237

4338
/**
4439
* Tests for {@link SystemStatusListener}.
@@ -51,13 +46,12 @@ class SystemStatusListenerTests {
5146

5247
private static final String TEST_MESSAGE = "testtesttest";
5348

54-
private final StatusManager statusManager = mock(StatusManager.class);
49+
private final StatusManager statusManager = new BasicStatusManager();
5550

56-
private final LoggerContext loggerContext = mock(LoggerContext.class);
51+
private final LoggerContext loggerContext = new LoggerContext();
5752

5853
SystemStatusListenerTests() {
59-
given(this.loggerContext.getStatusManager()).willReturn(this.statusManager);
60-
given(this.statusManager.add(any(StatusListener.class))).willReturn(true);
54+
this.loggerContext.setStatusManager(this.statusManager);
6155
}
6256

6357
@Test
@@ -104,8 +98,9 @@ void addStatusWithErrorLevelWhenDebugPrintsToSystemOut(CapturedOutput output) {
10498

10599
@Test
106100
void shouldRetrospectivePrintStatusOnStartAndDebugIsDisabled(CapturedOutput output) {
107-
given(this.statusManager.getCopyOfStatusList()).willReturn(List.of(new ErrorStatus(TEST_MESSAGE, null),
108-
new WarnStatus(TEST_MESSAGE, null), new InfoStatus(TEST_MESSAGE, null)));
101+
this.statusManager.add(new ErrorStatus(TEST_MESSAGE, null));
102+
this.statusManager.add(new WarnStatus(TEST_MESSAGE, null));
103+
this.statusManager.add(new InfoStatus(TEST_MESSAGE, null));
109104
addStatus(false, () -> new InfoStatus(TEST_MESSAGE, null));
110105
assertThat(output.getErr()).contains("WARN " + TEST_MESSAGE);
111106
assertThat(output.getErr()).contains("ERROR " + TEST_MESSAGE);
@@ -115,8 +110,9 @@ void shouldRetrospectivePrintStatusOnStartAndDebugIsDisabled(CapturedOutput outp
115110

116111
@Test
117112
void shouldRetrospectivePrintStatusOnStartAndDebugIsEnabled(CapturedOutput output) {
118-
given(this.statusManager.getCopyOfStatusList()).willReturn(List.of(new ErrorStatus(TEST_MESSAGE, null),
119-
new WarnStatus(TEST_MESSAGE, null), new InfoStatus(TEST_MESSAGE, null)));
113+
this.statusManager.add(new ErrorStatus(TEST_MESSAGE, null));
114+
this.statusManager.add(new WarnStatus(TEST_MESSAGE, null));
115+
this.statusManager.add(new InfoStatus(TEST_MESSAGE, null));
120116
addStatus(true, () -> new InfoStatus(TEST_MESSAGE, null));
121117
assertThat(output.getErr()).isEmpty();
122118
assertThat(output.getOut()).contains("WARN " + TEST_MESSAGE);
@@ -128,18 +124,17 @@ void shouldRetrospectivePrintStatusOnStartAndDebugIsEnabled(CapturedOutput outpu
128124
void shouldNotRetrospectivePrintWhenStatusIsOutdated(CapturedOutput output) {
129125
ErrorStatus outdatedStatus = new ErrorStatus(TEST_MESSAGE, null);
130126
ReflectionTestUtils.setField(outdatedStatus, "timestamp", System.currentTimeMillis() - 300);
131-
given(this.statusManager.getCopyOfStatusList()).willReturn(List.of(outdatedStatus));
127+
this.statusManager.add(outdatedStatus);
132128
addStatus(false, () -> new InfoStatus(TEST_MESSAGE, null));
133129
assertThat(output.getOut()).isEmpty();
134130
assertThat(output.getErr()).isEmpty();
135131
}
136132

137133
private void addStatus(boolean debug, Supplier<Status> statusFactory) {
138134
SystemStatusListener.addTo(this.loggerContext, debug);
139-
ArgumentCaptor<StatusListener> listener = ArgumentCaptor.forClass(StatusListener.class);
140-
then(this.statusManager).should().add(listener.capture());
141-
assertThat(listener.getValue()).extracting("context").isSameAs(this.loggerContext);
142-
listener.getValue().addStatusEvent(statusFactory.get());
135+
StatusListener listener = this.statusManager.getCopyOfStatusListenerList().get(0);
136+
assertThat(listener).extracting("context").isSameAs(this.loggerContext);
137+
listener.addStatusEvent(statusFactory.get());
143138
}
144139

145140
}

0 commit comments

Comments
 (0)