UserDataStoreFactory { public UserDataStore createCloudDataStore() { UserEntityJsonMapper userEntityJsonMapper = new UserEntityJsonMapper(); RestApi restApi = new RestApiImpl(this.context, userEntityJsonMapper); return new CloudUserDataStore(restApi, this.userCache); } UserDataStoreFactory(Context applicationContext);  UserDataStoreFactory(Context context, UserCache userCache); void setUserCache(UserCache userCache); UserDataStore create(int userId); UserDataStore createCloudDataStore();  }
@Test public void testCreateCloudDataStore() { given(mockUserCache.isExpired()).willReturn(true); given(mockUserCache.isCached(FAKE_USER_ID)).willReturn(false); UserDataStore userDataStore = userDataStoreFactory.create(FAKE_USER_ID); assertThat(userDataStore, is(notNullValue())); assertThat(userDataStore, is(instanceOf(CloudUserDataStore.class))); verify(mockUserCache).isExpired(); }