### Question:
Identity implements Executor { public void exclude() { if (isCurrent()) { throw new IdentityException("Identity \"" + this + "\" is explicitly not allowed"); } } private  Identity(String name); static Identity get(String name); static Identity create(); @Nullable static Identity current(); String name(); boolean isCurrent(); void require(); static void require(Collection<Identity> identities); void exclude(); Executor wrapExecutor(Executor executor); ScheduledExecutorService wrapExecutor(ScheduledExecutorService executor); @Override void execute(Runnable command); @Override String toString(); static final Identity DEFAULT; }### Answer:
@Test void exclude() { assertEquals(Identity.DEFAULT, Identity.current()); Identity idFoobar = Identity.get("foobar"); Identity idBlah = Identity.get("blah"); idFoobar.execute( () -> { assertThrows(SecurityException.class, idFoobar::exclude); idBlah.exclude(); Identity.DEFAULT.exclude(); }); idFoobar.exclude(); idBlah.exclude(); }