in component-test/src/main/java/org/apache/fineract/cn/rhythm/RhythmApiDocumentation.java [146:186]
public void documentGetBeatsForApplication ( ) throws InterruptedException {
final String applicationIdentifier = "interestingbusiness-v1";
final String oldBeatId = "oldBeatIdentifier789";
final String newBeatId = "newBeatIdentifier456";
final LocalDateTime nowOne = LocalDateTime.now(ZoneId.of("UTC"));
int alignmentHourOne = nowOne.getHour();
final LocalDateTime expectedBeatTimestamp = getExpectedBeatTimestamp(nowOne, alignmentHourOne);
final LocalDateTime nowTwo = LocalDateTime.now(ZoneOffset.ofHours(2));
int alignmentHourTwo = nowTwo.getHour();
final LocalDateTime beatTimestamp = getExpectedBeatTimestamp(nowTwo, alignmentHourTwo);
Mockito.doAnswer(new Returns(true)).when(super.beatPublisherServiceMock).publishBeat(
Matchers.eq(oldBeatId),
Matchers.eq(tenantDataStoreContext.getTenantName()),
Matchers.eq(applicationIdentifier),
Matchers.eq(expectedBeatTimestamp));
final Beat firstBeat = createBeat(applicationIdentifier, oldBeatId, alignmentHourOne, expectedBeatTimestamp);
final Beat secondBeat = createBeat(applicationIdentifier, newBeatId, alignmentHourTwo, beatTimestamp);
try {
this.mockMvc.perform(get("/applications/" + applicationIdentifier + "/beats/")
.accept(MediaType.APPLICATION_JSON_VALUE)
.contentType(MediaType.APPLICATION_JSON_VALUE)
.header(TENANT_HEADER, tenantDataStoreContext.getTenantName()))
.andExpect(status().isOk())
.andDo(document(
"document-get-beats", preprocessRequest(prettyPrint()),
responseFields(
fieldWithPath("[].identifier").description("First Beat's Identifier"),
fieldWithPath("[].alignmentHour").description("First Beat's Alignment Hour"),
fieldWithPath("[1].identifier").description("Second Beat's Identifier"),
fieldWithPath("[1].alignmentHour").description("Second Beat's Alignment Hour")
)
));
} catch (Exception e) {
e.printStackTrace();
}
}