AbstractSlot implements Slot<T> { @Override public void execute(Object[] values) { if (!enable) { return; } if (once) { remove(); } exec(values); } protected  AbstractSlot(Signal<T> signal, T listener, boolean once); @Override T listener(); @Override final void setEnable(boolean value); @Override final boolean isEnable(); @Override final boolean isOnce(); @Override void execute(Object[] values); @Override void remove();  }
@Test public void execute() throws Exception { final Object[] args = new Object[]{1, 2}; slot.execute(args); verify(listener).call(args); }