### Question:
SecurityConfigImpl implements SecurityConfig { @Override public StorageImpl storage() { return storage; }  @Override List<String> applyUrls(); @Override List<String> ignoreUrls(); @Override SecurityFilter securityFilter(); @Override boolean isSkipRefererCheck(); @Override Redirect redirect(); @Override IdentityProvider identityProvider(); @Override Boolean useReferAsRedirectUri(); @Override String publicKeysStorage(); @Override String tokenStorage(); @Override StorageImpl storage(); @Override TokenValidation tokenValidation(); @Override Stub stub(); @Override HttpClient httpClient(); @Override Application application(); @Override String errorDescriptionLink(); List<String> getApplyUrls(); void setApplyUrls(List<String> applyUrls); List<String> getIgnoreUrls(); void setIgnoreUrls(List<String> ignoreUrls); void setSecurityFilter(SecurityFilterImpl securityFilter); void setSkipRefererCheck(boolean skipRefererCheck); void setRedirect(RedirectImpl redirect); IdentityProviderImpl getIdentityProvider(); void setIdentityProvider(IdentityProviderImpl identityProvider); Boolean getUseReferAsRedirectUri(); void setUseReferAsRedirectUri(Boolean useReferAsRedirectUri); String getPublicKeysStorage(); void setPublicKeysStorage(String publicKeysStorage); String getTokenStorage(); void setTokenStorage(String tokenStorage); void setStorage(StorageImpl storage); void setTokenValidation(TokenValidationImpl tokenValidation); void setStub(StubImpl stub); void setHttpClient(HttpClientImpl httpClient); void setApplication(ApplicationImpl application); void setErrorDescriptionLink(String errorDescriptionLink); @Override String toString();  }### Answer:
@Test void storage() { SecurityConfig.Storage storage = config.storage(); SecurityConfig.Redis redis = storage.getRedis(); assertThat(redis.host(), is("localhost")); assertThat(redis.port(), is(6379)); assertThat(redis.expiration(), is(Duration.parse("PT1H30M"))); assertThat(redis.password(), is("37339ebe-0593-4e6f-b88c-1d3898be6a75")); SecurityConfig.InMemory inMemory = storage.getInMemory(); Map<String, String> actualInMemory = inMemory.publicKeys(); Map<String, String> expectedInMemory = new HashMap<>(); expectedInMemory.put("dev", "aldkfjasdlfjalsdfkjasl"); expectedInMemory.put("qa", "klkmlkjlksdfglkmdflsakdf"); assertThat(actualInMemory, is(expectedInMemory)); SecurityConfig.Vault vault = storage.getVault(); assertThat(vault.url(), is("http: assertThat(vault.client(), is("vault-client")); assertThat(vault.secret(), is("some-vault-secret")); }