AuthorizableFacade implements Authorizable { @Override public final void remove() throws RepositoryException { throw new ListenerReadOnlyException(); } @SuppressWarnings("WeakerAccess")  AuthorizableFacade(final @NotNull A delegate); @SuppressWarnings("WeakerAccess") static @Nullable Authorizable ensureBestWrapper(final @Nullable Authorizable authorizable); @Override String getID(); @Override boolean isGroup(); @Override Principal getPrincipal(); @Override Iterator<String> getPropertyNames(); @Override Iterator<String> getPropertyNames(final String relPath); @Override boolean hasProperty(final String relPath); @Override Value[] getProperty(final String relPath); @Override String getPath(); @Override Iterator<Group> declaredMemberOf(); @Override Iterator<Group> memberOf(); @Override final void setProperty(final String relPath, final Value value); @Override final void setProperty(final String relPath, final Value[] value); @Override final void remove(); @Override final boolean removeProperty(final String relPath);  }
@Test(expected = ListenerReadOnlyException.class) public void testRORemove() throws Exception { Authorizable delegate = mock(Authorizable.class); AuthorizableFacade<Authorizable> facade = getFacade(delegate); facade.remove(); }