Skip to content

Commit 830fed3

Browse files
author
klouds27
committed
Use stream-filter instead of positional index for event assertions
Replace .get(0)/.get(1) index-based assertions in DefaultSessionAuthenticationStrategyTests with the order-independent stream-filter pattern already used in ChangeSessionIdAuthenticationStrategyTests. Signed-off-by: klouds27 <adalwolf@gmail.com>
1 parent 9545081 commit 830fed3

1 file changed

Lines changed: 28 additions & 10 deletions

File tree

web/src/test/java/org/springframework/security/web/session/DefaultSessionAuthenticationStrategyTests.java

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.security.web.session;
1818

19+
import java.util.List;
20+
1921
import jakarta.servlet.http.HttpServletRequest;
2022
import jakarta.servlet.http.HttpSession;
2123
import org.junit.jupiter.api.Test;
@@ -75,14 +77,22 @@ public void newSessionIsCreatedIfSessionAlreadyExistsWithEventPublisher() {
7577
assertThat(oldSessionId.equals(request.getSession().getId())).isFalse();
7678
assertThat(request.getSession().getAttribute("blah")).isNotNull();
7779
assertThat(request.getSession().getAttribute("SPRING_SECURITY_SAVED_REQUEST_KEY")).isNotNull();
78-
assertThat(eventArgumentCaptor.getAllValues().get(0)).isInstanceOf(SessionFixationProtectionEvent.class);
79-
SessionFixationProtectionEvent fixationEvent = (SessionFixationProtectionEvent) eventArgumentCaptor.getAllValues()
80-
.get(0);
80+
List<ApplicationEvent> events = eventArgumentCaptor.getAllValues();
81+
assertThat(events).hasAtLeastOneElementOfType(SessionFixationProtectionEvent.class);
82+
SessionFixationProtectionEvent fixationEvent = events.stream()
83+
.filter(SessionFixationProtectionEvent.class::isInstance)
84+
.map(SessionFixationProtectionEvent.class::cast)
85+
.findFirst()
86+
.orElseThrow();
8187
assertThat(fixationEvent.getOldSessionId()).isEqualTo(oldSessionId);
8288
assertThat(fixationEvent.getNewSessionId()).isEqualTo(request.getSession().getId());
8389
assertThat(fixationEvent.getAuthentication()).isSameAs(mockAuthentication);
84-
assertThat(eventArgumentCaptor.getAllValues().get(1)).isInstanceOf(SessionIdChangedEvent.class);
85-
SessionIdChangedEvent idChangedEvent = (SessionIdChangedEvent) eventArgumentCaptor.getAllValues().get(1);
90+
assertThat(events).hasAtLeastOneElementOfType(SessionIdChangedEvent.class);
91+
SessionIdChangedEvent idChangedEvent = events.stream()
92+
.filter(SessionIdChangedEvent.class::isInstance)
93+
.map(SessionIdChangedEvent.class::cast)
94+
.findFirst()
95+
.orElseThrow();
8696
assertThat(idChangedEvent.getOldSessionId()).isEqualTo(oldSessionId);
8797
assertThat(idChangedEvent.getNewSessionId()).isEqualTo(request.getSession().getId());
8898
}
@@ -119,14 +129,22 @@ public void onlySavedRequestAttributeIsMigratedIfMigrateAttributesIsFalseWithEve
119129
verify(eventPublisher, times(2)).publishEvent(eventArgumentCaptor.capture());
120130
assertThat(request.getSession().getAttribute("blah")).isNull();
121131
assertThat(request.getSession().getAttribute("SPRING_SECURITY_SAVED_REQUEST_KEY")).isNotNull();
122-
assertThat(eventArgumentCaptor.getAllValues().get(0)).isInstanceOf(SessionFixationProtectionEvent.class);
123-
SessionFixationProtectionEvent fixationEvent = (SessionFixationProtectionEvent) eventArgumentCaptor.getAllValues()
124-
.get(0);
132+
List<ApplicationEvent> events = eventArgumentCaptor.getAllValues();
133+
assertThat(events).hasAtLeastOneElementOfType(SessionFixationProtectionEvent.class);
134+
SessionFixationProtectionEvent fixationEvent = events.stream()
135+
.filter(SessionFixationProtectionEvent.class::isInstance)
136+
.map(SessionFixationProtectionEvent.class::cast)
137+
.findFirst()
138+
.orElseThrow();
125139
assertThat(fixationEvent.getOldSessionId()).isEqualTo(oldSessionId);
126140
assertThat(fixationEvent.getNewSessionId()).isEqualTo(request.getSession().getId());
127141
assertThat(fixationEvent.getAuthentication()).isSameAs(mockAuthentication);
128-
assertThat(eventArgumentCaptor.getAllValues().get(1)).isInstanceOf(SessionIdChangedEvent.class);
129-
SessionIdChangedEvent idChangedEvent = (SessionIdChangedEvent) eventArgumentCaptor.getAllValues().get(1);
142+
assertThat(events).hasAtLeastOneElementOfType(SessionIdChangedEvent.class);
143+
SessionIdChangedEvent idChangedEvent = events.stream()
144+
.filter(SessionIdChangedEvent.class::isInstance)
145+
.map(SessionIdChangedEvent.class::cast)
146+
.findFirst()
147+
.orElseThrow();
130148
assertThat(idChangedEvent.getOldSessionId()).isEqualTo(oldSessionId);
131149
assertThat(idChangedEvent.getNewSessionId()).isEqualTo(request.getSession().getId());
132150
}

0 commit comments

Comments
 (0)