### Question:
ButtonRepositoryImpl implements ButtonRepository { @Nullable @Override public String getSourceToken() { return persistenceManager.getSourceToken(); } @VisibleForTesting  ButtonRepositoryImpl(ButtonApi buttonApi, DeviceManager deviceManager, Features features,
            PersistenceManager persistenceManager, ExecutorService executorService); @Override void setApplicationId(String applicationId); @Nullable @Override String getApplicationId(); @Override void setSourceToken(String sourceToken); @Nullable @Override String getSourceToken(); @Override void clear(); @Override void getPendingLink(DeviceManager deviceManager, Features features,
            Task.Listener<PostInstallLink> listener); @Override boolean checkedDeferredDeepLink(); @Override void updateCheckDeferredDeepLink(boolean checkedDeferredDeepLink); @Override void postOrder(Order order, DeviceManager deviceManager, Features features,
            Task.Listener listener); @Override void trackActivity(final String eventName, List<ButtonProductCompatible> products); @Override void reportEvent(DeviceManager deviceManager, Features features, final Event event);  }### Answer:
@Test public void getSourceToken_retrieveFromPersistenceManager() { when(persistenceManager.getSourceToken()).thenReturn("valid_source_token"); String sourceToken = buttonRepository.getSourceToken(); assertEquals("valid_source_token", sourceToken); }