Skip to content

Commit b709a81

Browse files
committed
Adding initial task validation
1 parent c272f97 commit b709a81

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

opamp-client/src/test/java/io/opentelemetry/opamp/client/internal/request/service/HttpRequestServiceTest.java

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ class HttpRequestServiceTest {
6464
private static final Duration RETRY_DELAY = Duration.ofSeconds(5);
6565

6666
@Mock private RequestService.Callback callback;
67-
@Mock private Supplier<Request> requestSupplier;
6867
private final List<ScheduledTask> scheduledTasks = new ArrayList<>();
6968
private ScheduledExecutorService executorService;
7069
private TestHttpSender requestSender;
@@ -86,8 +85,7 @@ void setUp() {
8685
periodicRequestDelay,
8786
periodicRetryDelay,
8887
RetryAfterParser.getInstance());
89-
httpRequestService.start(callback, requestSupplier);
90-
prepareRequest();
88+
httpRequestService.start(callback, createRequestSupplier());
9189
}
9290

9391
@AfterEach
@@ -98,6 +96,26 @@ void tearDown() {
9896
verifyNoMoreInteractions(executorService);
9997
}
10098

99+
@Test
100+
void verifyStart_scheduledFirstTask() {
101+
assertThat(scheduledTasks).hasSize(1);
102+
ScheduledTask firstTask = scheduledTasks.get(0);
103+
assertThat(firstTask.delay).isEqualTo(REGULAR_DELAY);
104+
105+
// Verify initial task creates next one
106+
scheduledTasks.clear();
107+
requestSender.enqueueResponse(createSuccessfulResponse(new ServerToAgent.Builder().build()));
108+
firstTask.runnable.run();
109+
110+
assertThat(scheduledTasks).hasSize(1);
111+
112+
// Check on-demand requests don't create subsequent tasks
113+
requestSender.enqueueResponse(createSuccessfulResponse(new ServerToAgent.Builder().build()));
114+
httpRequestService.sendRequest();
115+
116+
assertThat(scheduledTasks).hasSize(1);
117+
}
118+
101119
@Test
102120
void verifySendingRequest_happyPath() {
103121
ServerToAgent serverToAgent = new ServerToAgent.Builder().build();
@@ -282,11 +300,11 @@ private void enableRetryMode() {
282300
httpRequestService.sendRequest();
283301
}
284302

285-
private void prepareRequest() {
303+
private Supplier<Request> createRequestSupplier() {
286304
AgentToServer agentToServer = new AgentToServer.Builder().sequence_num(10).build();
287305
requestSize = agentToServer.encodeByteString().size();
288306
Request request = Request.create(agentToServer);
289-
when(requestSupplier.get()).thenReturn(request);
307+
return () -> request;
290308
}
291309

292310
private ScheduledTask getCurrentScheduledTask() {
@@ -434,7 +452,6 @@ private RequestParams(int contentLength) {
434452
}
435453
}
436454

437-
@SuppressWarnings("UnusedVariable")
438455
private static class ScheduledTask {
439456
private final ScheduledFuture<?> future;
440457
private final Runnable runnable;

0 commit comments

Comments
 (0)