### Question:
FirebaseRemoteConfig { @NonNull public FirebaseRemoteConfigInfo getInfo() { return frcMetadata.getInfo(); } FirebaseRemoteConfig(
      Context context,
      FirebaseApp firebaseApp,
      FirebaseInstallationsApi firebaseInstallations,
      @Nullable FirebaseABTesting firebaseAbt,
      Executor executor,
      ConfigCacheClient fetchedConfigsCache,
      ConfigCacheClient activatedConfigsCache,
      ConfigCacheClient defaultConfigsCache,
      ConfigFetchHandler fetchHandler,
      ConfigGetParameterHandler getHandler,
      ConfigMetadataClient frcMetadata); @NonNull static FirebaseRemoteConfig getInstance(); @NonNull static FirebaseRemoteConfig getInstance(@NonNull FirebaseApp app); @NonNull Task<FirebaseRemoteConfigInfo> ensureInitialized(); @NonNull Task<Boolean> fetchAndActivate(); @Deprecated @WorkerThread boolean activateFetched(); @NonNull Task<Boolean> activate(); @NonNull Task<Void> fetch(); @NonNull Task<Void> fetch(long minimumFetchIntervalInSeconds); @NonNull String getString(@NonNull String key); boolean getBoolean(@NonNull String key); @NonNull @Deprecated byte[] getByteArray(@NonNull String key); double getDouble(@NonNull String key); long getLong(@NonNull String key); @NonNull FirebaseRemoteConfigValue getValue(@NonNull String key); @NonNull Set<String> getKeysByPrefix(@NonNull String prefix); @NonNull Map<String, FirebaseRemoteConfigValue> getAll(); @NonNull FirebaseRemoteConfigInfo getInfo(); @Deprecated void setConfigSettings(@NonNull FirebaseRemoteConfigSettings settings); @NonNull Task<Void> setConfigSettingsAsync(@NonNull FirebaseRemoteConfigSettings settings); @Deprecated void setDefaults(@NonNull Map<String, Object> defaults); @NonNull Task<Void> setDefaultsAsync(@NonNull Map<String, Object> defaults); @Deprecated void setDefaults(@XmlRes int resourceId); @NonNull Task<Void> setDefaultsAsync(@XmlRes int resourceId); @NonNull Task<Void> reset(); static final String DEFAULT_VALUE_FOR_STRING; static final long DEFAULT_VALUE_FOR_LONG; static final double DEFAULT_VALUE_FOR_DOUBLE; static final boolean DEFAULT_VALUE_FOR_BOOLEAN; static final byte[] DEFAULT_VALUE_FOR_BYTE_ARRAY; static final int VALUE_SOURCE_STATIC; static final int VALUE_SOURCE_DEFAULT; static final int VALUE_SOURCE_REMOTE; static final int LAST_FETCH_STATUS_SUCCESS; static final int LAST_FETCH_STATUS_NO_FETCH_YET; static final int LAST_FETCH_STATUS_FAILURE; static final int LAST_FETCH_STATUS_THROTTLED; static final String TAG; }### Answer:
@Test public void getInfo_returnsInfo() { when(metadataClient.getInfo()).thenReturn(mockFrcInfo); long fetchTimeInMillis = 100L; int lastFetchStatus = LAST_FETCH_STATUS_THROTTLED; long fetchTimeoutInSeconds = 10L; long minimumFetchIntervalInSeconds = 100L; when(mockFrcInfo.getFetchTimeMillis()).thenReturn(fetchTimeInMillis); when(mockFrcInfo.getLastFetchStatus()).thenReturn(lastFetchStatus); when(mockFrcInfo.getConfigSettings()) .thenReturn( new FirebaseRemoteConfigSettings.Builder() .setDeveloperModeEnabled(true) .setFetchTimeoutInSeconds(fetchTimeoutInSeconds) .setMinimumFetchIntervalInSeconds(minimumFetchIntervalInSeconds) .build()); FirebaseRemoteConfigInfo info = frc.getInfo(); assertThat(info.getFetchTimeMillis()).isEqualTo(fetchTimeInMillis); assertThat(info.getLastFetchStatus()).isEqualTo(lastFetchStatus); assertThat(info.getConfigSettings().isDeveloperModeEnabled()).isEqualTo(true); assertThat(info.getConfigSettings().getFetchTimeoutInSeconds()) .isEqualTo(fetchTimeoutInSeconds); assertThat(info.getConfigSettings().getMinimumFetchIntervalInSeconds()) .isEqualTo(minimumFetchIntervalInSeconds); }