Skip to content

Commit

Permalink
Assert JmsAccessor.setSessionAcknowledgeMode() values
Browse files Browse the repository at this point in the history
  • Loading branch information
sbrannen committed Jul 31, 2023
1 parent 9da318a commit 3b8dd0a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,9 @@ public boolean isSessionTransacted() {
*/
public void setSessionAcknowledgeModeName(String constantName) {
Assert.hasText(constantName, "'constantName' must not be null or blank");
Integer acknowledgeMode = sessionConstants.get(constantName);
Assert.notNull(acknowledgeMode, "Only acknowledge mode constants allowed");
setSessionAcknowledgeMode(acknowledgeMode);
Integer sessionAcknowledgeMode = sessionConstants.get(constantName);
Assert.notNull(sessionAcknowledgeMode, "Only acknowledge mode constants allowed");
this.sessionAcknowledgeMode = sessionAcknowledgeMode;
}

/**
Expand All @@ -167,6 +167,8 @@ public void setSessionAcknowledgeModeName(String constantName) {
* @see jakarta.jms.Connection#createSession(boolean, int)
*/
public void setSessionAcknowledgeMode(int sessionAcknowledgeMode) {
Assert.isTrue(sessionConstants.containsValue(sessionAcknowledgeMode),
"Only values of acknowledge mode constants allowed");
this.sessionAcknowledgeMode = sessionAcknowledgeMode;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,11 +96,21 @@ void setSessionAcknowledgeModeNameToAllSupportedValues() {
assertThat(uniqueValues).hasSize(4);
}

@Test
void setSessionAcknowledgeMode() {
assertThatIllegalArgumentException().isThrownBy(() -> accessor.setSessionAcknowledgeMode(999));

private static Stream<String> streamAcknowledgeModeConstants() {
return Arrays.stream(Session.class.getFields())
.filter(ReflectionUtils::isPublicStaticFinal)
.map(Field::getName);
accessor.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);
assertThat(accessor.getSessionAcknowledgeMode()).isEqualTo(Session.AUTO_ACKNOWLEDGE);

accessor.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
assertThat(accessor.getSessionAcknowledgeMode()).isEqualTo(Session.CLIENT_ACKNOWLEDGE);

accessor.setSessionAcknowledgeMode(Session.DUPS_OK_ACKNOWLEDGE);
assertThat(accessor.getSessionAcknowledgeMode()).isEqualTo(Session.DUPS_OK_ACKNOWLEDGE);

accessor.setSessionAcknowledgeMode(Session.SESSION_TRANSACTED);
assertThat(accessor.getSessionAcknowledgeMode()).isEqualTo(Session.SESSION_TRANSACTED);
}

@Test
Expand All @@ -110,4 +120,11 @@ void customAcknowledgeModeIsConsideredClientAcknowledge() throws Exception {
assertThat(accessor.isClientAcknowledge(session)).isTrue();
}


private static Stream<String> streamAcknowledgeModeConstants() {
return Arrays.stream(Session.class.getFields())
.filter(ReflectionUtils::isPublicStaticFinal)
.map(Field::getName);
}

}

0 comments on commit 3b8dd0a

Please sign in to comment.