### Question:
Repositories { @NonNull public static <T> MutableRepository<T> mutableRepository(@NonNull final T object) { return new SimpleRepository<>(object); } private  Repositories(); @NonNull static Repository<T> repository(@NonNull final T object); @NonNull static REventSource<T, T> repositoryWithInitialValue(@NonNull final T initialValue); @NonNull static MutableRepository<T> mutableRepository(@NonNull final T object);  }### Answer:
@Test public void shouldBePossibleToObserveMutableRepository() { final Repository<Integer> repository = mutableRepository(INITIAL_INT_VALUE); updatable.addToObservable(repository); assertThat(updatable, wasNotUpdated()); }
@Test public void shouldGetUpdateFromChangedMutableRepository() { final MutableRepository<Integer> repository = mutableRepository(INITIAL_INT_VALUE); updatable.addToObservable(repository); repository.accept(INT_VALUE); assertThat(updatable, wasUpdated()); }
@Test public void shouldNotGetUpdateFromMutableRepositoryChangedToSameValue() { final MutableRepository<Integer> repository = mutableRepository(INITIAL_INT_VALUE); updatable.addToObservable(repository); repository.accept(INITIAL_INT_VALUE); assertThat(updatable, wasNotUpdated()); }