diff --git a/orchestration-shared/src/test/java/uk/gov/di/orchestration/shared/helpers/PersistentIdHelperTest.java b/orchestration-shared/src/test/java/uk/gov/di/orchestration/shared/helpers/PersistentIdHelperTest.java index 985e17c994..567b28fa7a 100644 --- a/orchestration-shared/src/test/java/uk/gov/di/orchestration/shared/helpers/PersistentIdHelperTest.java +++ b/orchestration-shared/src/test/java/uk/gov/di/orchestration/shared/helpers/PersistentIdHelperTest.java @@ -2,20 +2,20 @@ import org.junit.jupiter.api.Test; -import java.util.Base64; import java.util.Collections; import java.util.HashMap; import java.util.Map; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.not; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.mockStatic; import static uk.gov.di.orchestration.shared.helpers.PersistentIdHelper.isValidPersistentSessionCookieWithDoubleDashedTimestamp; class PersistentIdHelperTest { private static final String ARBITRARY_UNIX_TIMESTAMP = "1700558480962"; + private static final String NEW_ID = "lML1nhHXgGC9o-7efoVoFBJGve0"; private static final String PERSISTENT_SESSION_ID_COOKIE_VALUE = IdGenerator.generate() + "--" + ARBITRARY_UNIX_TIMESTAMP; @@ -131,13 +131,19 @@ void shouldAppendTimestampToPersistentIdWhenMissing() { @Test void shouldGenerateNewPersistentIdFromGetExistingOrCreateWhenMissing() { - String cookieString = - "Version=1; gs=session-id.456;cookies_preferences_set={\"analytics\":true};name=ts"; - Map inputHeaders = Map.of(CookieHelper.REQUEST_COOKIE_HEADER, cookieString); - String persistentId = - PersistentIdHelper.getExistingOrCreateNewPersistentSessionId(inputHeaders); + try (var mockIdGenerator = mockStatic(IdGenerator.class)) { + mockIdGenerator.when(IdGenerator::generate).thenReturn(NEW_ID); + + String cookieString = + "Version=1; gs=session-id.456;cookies_preferences_set={\"analytics\":true};name=ts"; + Map inputHeaders = + Map.of(CookieHelper.REQUEST_COOKIE_HEADER, cookieString); + + String persistentId = + PersistentIdHelper.getExistingOrCreateNewPersistentSessionId(inputHeaders); - assertThat(persistentId, not(equalTo("a-persistent-id"))); - assertThat(Base64.getUrlDecoder().decode(persistentId.split("--")[0]).length, equalTo(20)); + assertTrue(isValidPersistentSessionCookieWithDoubleDashedTimestamp(persistentId)); + assertTrue(persistentId.startsWith(NEW_ID)); + } } } diff --git a/shared/src/test/java/uk/gov/di/authentication/shared/helpers/PersistentIdHelperTest.java b/shared/src/test/java/uk/gov/di/authentication/shared/helpers/PersistentIdHelperTest.java index 632232a7ed..f4764ee511 100644 --- a/shared/src/test/java/uk/gov/di/authentication/shared/helpers/PersistentIdHelperTest.java +++ b/shared/src/test/java/uk/gov/di/authentication/shared/helpers/PersistentIdHelperTest.java @@ -2,20 +2,20 @@ import org.junit.jupiter.api.Test; -import java.util.Base64; import java.util.Collections; import java.util.HashMap; import java.util.Map; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.not; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.mockStatic; import static uk.gov.di.authentication.shared.helpers.PersistentIdHelper.isValidPersistentSessionCookieWithDoubleDashedTimestamp; class PersistentIdHelperTest { private static final String ARBITRARY_UNIX_TIMESTAMP = "1700558480962"; + private static final String NEW_ID = "lML1nhHXgGC9o-7efoVoFBJGve0"; private static final String PERSISTENT_SESSION_ID_COOKIE_VALUE = IdGenerator.generate() + "--" + ARBITRARY_UNIX_TIMESTAMP; @@ -131,13 +131,19 @@ void shouldAppendTimestampToPersistentIdWhenMissing() { @Test void shouldGenerateNewPersistentIdFromGetExistingOrCreateWhenMissing() { - String cookieString = - "Version=1; gs=session-id.456;cookies_preferences_set={\"analytics\":true};name=ts"; - Map inputHeaders = Map.of(CookieHelper.REQUEST_COOKIE_HEADER, cookieString); - String persistentId = - PersistentIdHelper.getExistingOrCreateNewPersistentSessionId(inputHeaders); + try (var mockIdGenerator = mockStatic(IdGenerator.class)) { + mockIdGenerator.when(IdGenerator::generate).thenReturn(NEW_ID); + + String cookieString = + "Version=1; gs=session-id.456;cookies_preferences_set={\"analytics\":true};name=ts"; + Map inputHeaders = + Map.of(CookieHelper.REQUEST_COOKIE_HEADER, cookieString); + + String persistentId = + PersistentIdHelper.getExistingOrCreateNewPersistentSessionId(inputHeaders); - assertThat(persistentId, not(equalTo("a-persistent-id"))); - assertThat(Base64.getUrlDecoder().decode(persistentId.split("--")[0]).length, equalTo(20)); + assertTrue(isValidPersistentSessionCookieWithDoubleDashedTimestamp(persistentId)); + assertTrue(persistentId.startsWith(NEW_ID)); + } } }