use of uk.gov.ida.hub.config.configuration.SelfServiceConfig in project verify-hub by alphagov.
the class S3ConfigSourceTest method getRemoteConfigOnlyRetrievesNewContentWhenLastModifiedChanges.
@Test
public void getRemoteConfigOnlyRetrievesNewContentWhenLastModifiedChanges() throws Exception {
SelfServiceConfig selfServiceConfig = objectMapper.readValue(selfServiceConfigShortCacheJson, SelfServiceConfig.class);
when(s3Client.getObject(new GetObjectRequest(BUCKET_NAME, OBJECT_KEY))).thenReturn(s3Object);
when(s3Object.getObjectContent()).thenReturn(getObjectStream("/remote-test-config.json"));
when(s3Object.getObjectMetadata()).thenReturn(objectMetadata);
when(objectMetadata.getLastModified()).thenReturn(Date.from(Instant.now().minusMillis(10000)));
S3ConfigSource testSource = new S3ConfigSource(selfServiceConfig, s3Client, objectMapper);
var testCacheLoader = testSource.getCacheLoader();
RemoteConfigCollection result1 = testSource.getRemoteConfig();
ListenableFuture<RemoteConfigCollection> task = testCacheLoader.reload("test", result1);
while (!task.isDone()) {
Thread.yield();
}
RemoteConfigCollection result2 = task.get();
assertThat((result1 == result2)).isTrue();
verify(s3Object, times(1)).getObjectContent();
when(s3Client.getObject(any(GetObjectRequest.class))).thenReturn(s3Object2);
when(s3Object2.getObjectMetadata()).thenReturn(objectMetadata2);
when(s3Object2.getObjectContent()).thenReturn(getObjectStream("/remote-test-config.json"));
when(objectMetadata2.getLastModified()).thenReturn(Date.from(Instant.now()));
ListenableFuture<RemoteConfigCollection> task2 = testCacheLoader.reload("test", result1);
while (!task2.isDone()) {
Thread.yield();
}
verify(s3Object2, times(1)).getObjectContent();
verify(objectMetadata2, times(1)).getLastModified();
}
use of uk.gov.ida.hub.config.configuration.SelfServiceConfig in project verify-hub by alphagov.
the class S3ConfigSourceTest method getRemoteConfigReturnsRemoteConfigCollection.
@Test
public /**
* Tests to make sure we can process the JSON to an object
*/
void getRemoteConfigReturnsRemoteConfigCollection() throws Exception {
SelfServiceConfig selfServiceConfig = objectMapper.readValue(selfServiceConfigEnabledJson, SelfServiceConfig.class);
when(s3Client.getObject(new GetObjectRequest(BUCKET_NAME, OBJECT_KEY))).thenReturn(s3Object);
when(s3Object.getObjectContent()).thenReturn(getObjectStream("/remote-test-config.json"));
when(s3Object.getObjectMetadata()).thenReturn(objectMetadata);
when(objectMetadata.getLastModified()).thenReturn(new Date());
S3ConfigSource testSource = new S3ConfigSource(selfServiceConfig, s3Client, objectMapper);
RemoteConfigCollection result = testSource.getRemoteConfig();
Map<String, RemoteMatchingServiceConfig> msConfigs = result.getMatchingServiceAdapters();
assertThat(msConfigs.size()).isEqualTo(3);
assertThat(msConfigs.get("https://msa.bananaregistry.test.com").getName()).isEqualTo("Banana Registry MSA");
assertThat(msConfigs.get("https://msa.bananaregistry.test.com").getEncryptionCertificate()).contains(CERT_MSA_BANANA_ENCRYPTION);
assertThat(msConfigs.get("https://msa.bananaregistry.test.com").getSignatureVerificationCertificates().size()).isEqualTo(1);
assertThat(msConfigs.get("https://msa.bananaregistry.test.com").getSignatureVerificationCertificates().get(0)).contains(CERT_MSA_BANANA_SIGNING);
Map<String, RemoteServiceProviderConfig> spConfigs = result.getServiceProviders();
assertThat(spConfigs.size()).isEqualTo(3);
RemoteServiceProviderConfig spConfig2 = spConfigs.get("2");
assertThat(spConfig2.getName()).isEqualTo("Apple Registry VSP");
assertThat(spConfig2.getSignatureVerificationCertificates().size()).isEqualTo(1);
assertThat(spConfig2.getSignatureVerificationCertificates().get(0)).contains(CERT_VSP_APPLE_SIGNING);
RemoteServiceProviderConfig spConfig3 = spConfigs.get("3");
assertThat(spConfig3.getName()).isEqualTo("Banana Registry VSP");
assertThat(spConfig3.getSignatureVerificationCertificates().size()).isEqualTo(1);
assertThat(spConfig3.getSignatureVerificationCertificates().get(0)).contains(CERT_VSP_BANANA_SIGNING);
}
use of uk.gov.ida.hub.config.configuration.SelfServiceConfig in project verify-hub by alphagov.
the class S3ConfigSourceTest method getRemoteConfigReturnsCachedConfigWhenRepeatedlyCalled.
@Test
public void getRemoteConfigReturnsCachedConfigWhenRepeatedlyCalled() throws IOException {
SelfServiceConfig selfServiceConfig = objectMapper.readValue(selfServiceConfigEnabledJson, SelfServiceConfig.class);
when(s3Client.getObject(new GetObjectRequest(BUCKET_NAME, OBJECT_KEY))).thenReturn(s3Object);
when(s3Object.getObjectContent()).thenReturn(getObjectStream("/remote-test-config.json"));
when(s3Object.getObjectMetadata()).thenReturn(objectMetadata);
when(objectMetadata.getLastModified()).thenReturn(new Date());
S3ConfigSource testSource = new S3ConfigSource(selfServiceConfig, s3Client, objectMapper);
RemoteConfigCollection result1 = testSource.getRemoteConfig();
RemoteConfigCollection result2 = testSource.getRemoteConfig();
verify(s3Object, times(1)).getObjectContent();
assertThat(result1 == result2);
}
use of uk.gov.ida.hub.config.configuration.SelfServiceConfig in project verify-hub by alphagov.
the class S3ConfigSourceTest method getRemoteConfigReturnsEmptyRemoteConfigWhenSelfServiceDisabled.
@Test
public void getRemoteConfigReturnsEmptyRemoteConfigWhenSelfServiceDisabled() throws IOException {
SelfServiceConfig selfServiceConfig = objectMapper.readValue(selfServiceConfigDisabledJson, SelfServiceConfig.class);
S3ConfigSource testSource = new S3ConfigSource(selfServiceConfig, null, objectMapper);
RemoteConfigCollection result = testSource.getRemoteConfig();
assertThat(result).isNotNull();
assertThat(result.getServiceProviders().size()).isEqualTo(0);
assertThat(result.getMatchingServiceAdapters().size()).isEqualTo(0);
assertThat(result.getConnectedServices().size()).isEqualTo(0);
}
Aggregations