SimpleRevisionServer implements RevisionServer { public void merge(Revision base, Revision fork) { if (base != fork || base != head.get()) { while (!head.compareAndSet(base, fork)) { Revision h = head.get(); fork = base .merge(h, fork, conflictResolver, foreignKeyResolver); base = h; } notifyListeners(); } } @Inject  SimpleRevisionServer(@Nullable ConflictResolver conflictResolver,
			@Nullable ForeignKeyResolver foreignKeyResolver); Revision head(); void merge(Revision base, Revision fork); Subscription registerListener(final Runnable listener);  }
@Test public void mergeSameDoesNothing() { server.merge(Revisions.Empty, Revisions.Empty); verify(revision, never()).merge(any(Revision.class), any(Revision.class), any(ConflictResolver.class), any(ForeignKeyResolver.class)); }