### Question:
RemoteEJBContextFactory implements InitialContextFactory { @SuppressWarnings("unchecked") @Override public Context getInitialContext(Hashtable<?, ?> environment) throws NamingException { applySystemPropertiesFallbacks((Hashtable<String, Object>) environment); return new RemoteEJBContext((Hashtable<String, Object>) environment); }  @SuppressWarnings("unchecked") @Override Context getInitialContext(Hashtable<?, ?> environment); static final String FACTORY_CLASS; static final String CLIENT_ADAPTER; static final String PROVIDER_AUTH_TYPE; static final String PROVIDER_PRINCIPAL; static final String PROVIDER_CREDENTIALS; static final String JAXRS_CLIENT_REQUEST_FILTER; static final String JAXRS_CLIENT_RESPONSE_FILTER; static final String JAXRS_CLIENT_CONFIG; static final String JAXRS_CLIENT_TRUST_STORE; static final String JAXRS_CLIENT_SSL_CONTEXT; static final String JAXRS_CLIENT_SCHEDULED_EXECUTOR_SERVICE; static final String JAXRS_CLIENT_READ_TIMEOUT; static final String JAXRS_CLIENT_KEY_STORE; static final String JAXRS_CLIENT_KEY_STORE_PASSOWRD; static final String JAXRS_CLIENT_HOSTNAME_VERIFIER; static final String JAXRS_CLIENT_EXECUTOR_SERVICE; static final String JAXRS_CLIENT_CONNECT_TIMEOUT; static final String JAXRS_CLIENT_SERIALIZATION; static final String JAXRS_CLIENT_PROTOCOL_VERSION; @Deprecated
    static final String FISH_PAYARA_WITH_CONFIG; @Deprecated
    static final String FISH_PAYARA_TRUST_STORE; @Deprecated
    static final String FISH_PAYARA_SSL_CONTEXT; @Deprecated
    static final String FISH_PAYARA_SCHEDULED_EXECUTOR_SERVICE; @Deprecated
    static final String FISH_PAYARA_READ_TIMEOUT; @Deprecated
    static final String FISH_PAYARA_KEY_STORE; @Deprecated
    static final String FISH_PAYARA_HOSTNAME_VERIFIER; @Deprecated
    static final String FISH_PAYARA_EXECUTOR_SERVICE; @Deprecated
    static final String FISH_PAYARA_CONNECT_TIMEOUT; @Deprecated
    static final String FISH_PAYARA_CLIENT_ADAPTER; }### Answer:
@Test public void whenPayaraSpecificEnvironmentVariableIsSetThePrefixIsEnlarged() throws NamingException { System.setProperty(FISH_PAYARA_EJB_HTTP_CLIENT_PROVIDER_URL, "http: Context context = new RemoteEJBContextFactory().getInitialContext(new Hashtable<>()); assertEquals("http: }
@Test public void whenNamingEnvironmentVariableIsSetThePrefixIsReplaced() throws NamingException { System.setProperty(FISH_PAYARA_EJB_HTTP_CLIENT_SSLCONTEXT, "custom-SSL-context"); Context context = new RemoteEJBContextFactory().getInitialContext(new Hashtable<>()); assertEquals("custom-SSL-context", context.getEnvironment().get(RemoteEJBContextFactory.JAXRS_CLIENT_SSL_CONTEXT)); }
@Test public void whenEnvironmentVariableIsAlreadySetItIsNotReplacedWithSystemProperty() throws NamingException { System.setProperty(FISH_PAYARA_EJB_HTTP_CLIENT_PROVIDER_URL, "http: System.setProperty(FISH_PAYARA_EJB_HTTP_CLIENT_SSLCONTEXT, "custom-SSL-context"); Hashtable<String, Object> environment = new Hashtable<>(); environment.put(Context.PROVIDER_URL, "http: environment.put(RemoteEJBContextFactory.JAXRS_CLIENT_SSL_CONTEXT, "existing-SSL-context"); Context context = new RemoteEJBContextFactory().getInitialContext(environment); assertEquals("http: assertEquals("existing-SSL-context", context.getEnvironment().get(RemoteEJBContextFactory.JAXRS_CLIENT_SSL_CONTEXT)); }