public synchronized <Model, Data> void prepend( @NonNull Class<Model> modelClass, @NonNull Class<Data> dataClass, @NonNull ModelLoaderFactory<? extends Model, ? extends Data> factory) { multiModelLoaderFactory.prepend(modelClass, dataClass, factory); cache.clear(); }
private <X, Y> ModelLoader<X, Y> registerFactoryFor( Class<X> modelClass, Class<Y> dataClass, boolean append) { ModelLoaderFactory<X, Y> factory = mockFactory(); @SuppressWarnings("unchecked") ModelLoader<X, Y> loader = mock(ModelLoader.class); when(factory.build(eq(multiFactory))).thenReturn(loader); if (append) { multiFactory.append(modelClass, dataClass, factory); } else { multiFactory.prepend(modelClass, dataClass, factory); } return loader; }
@Test public void testPrepend_addsModelLoaderForModelClass() { multiFactory.prepend(String.class, String.class, firstFactory); List<ModelLoader<String, ?>> modelLoaders = multiFactory.build(String.class); assertThat(modelLoaders).containsExactly(firstModelLoader); }
@Test public void testPrepend_addsModelLoaderForModelAndDataClass() { multiFactory.prepend(String.class, String.class, firstFactory); ModelLoader<String, String> modelLoader = multiFactory.build(String.class, String.class); assertThat(modelLoader).isEqualTo(firstModelLoader); }
public synchronized <Model, Data> void prepend(Class<Model> modelClass, Class<Data> dataClass, ModelLoaderFactory<Model, Data> factory) { multiModelLoaderFactory.prepend(modelClass, dataClass, factory); cache.clear(); }