Add onTimeout() and onCompletion() callbacks to ResponseBodyEmitter

Issue: SPR-12939
This commit is contained in:
Sebastien Deleuze
2015-04-21 19:34:01 +02:00
parent 5cbe4b948d
commit 713fc5c4ab
4 changed files with 94 additions and 4 deletions

View File

@@ -20,15 +20,13 @@ import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import static org.mockito.Mockito.*;
import static org.mockito.Mockito.verify;
import org.mockito.MockitoAnnotations;
import org.springframework.http.MediaType;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
/**
* Unit tests for {@link ResponseBodyEmitter}.
@@ -134,4 +132,36 @@ public class ResponseBodyEmitterTests {
verifyNoMoreInteractions(this.handler);
}
@Test
public void onTimeoutBeforeHandlerInitialized() throws Exception {
Runnable runnable = mock(Runnable.class);
this.emitter.onTimeout(runnable);
this.emitter.initialize(this.handler);
verify(this.handler).onTimeout(runnable);
}
@Test
public void onTimeoutAfterHandlerInitialized() throws Exception {
Runnable runnable = mock(Runnable.class);
this.emitter.initialize(this.handler);
this.emitter.onTimeout(runnable);
verify(this.handler).onTimeout(runnable);
}
@Test
public void onCompletionBeforeHandlerInitialized() throws Exception {
Runnable runnable = mock(Runnable.class);
this.emitter.onCompletion(runnable);
this.emitter.initialize(this.handler);
verify(this.handler).onCompletion(runnable);
}
@Test
public void onCompletionAfterHandlerInitialized() throws Exception {
Runnable runnable = mock(Runnable.class);
this.emitter.initialize(this.handler);
this.emitter.onCompletion(runnable);
verify(this.handler).onCompletion(runnable);
}
}

View File

@@ -147,6 +147,14 @@ public class SseEmitterTests {
@Override
public void completeWithError(Throwable failure) {
}
@Override
public void onTimeout(Runnable callback) {
}
@Override
public void onCompletion(Runnable callback) {
}
}
}