@Test public void onMessageTest() throws Exception { // Generate a simple message event final String origMessage = "?hello " + args4; final MessageEvent messageEvent = new MessageEvent(bot, channel, user, origMessage); // This will notify us that execute actually ran. Yes, its ugly, but boolean is final final StringBuilder executed = new StringBuilder("false"); // Test hook that makes sure all the information passed into execute is good CoreQuackbotHook tempHook = new CoreQuackbotHook() { @Override protected void execute(Event event, Channel chan, User user, String message) throws Exception { assertEquals(event, messageEvent, "Event passed to execute doesn't match given"); assertEquals(chan, channel, "Channel does not match given"); assertEquals(user, CoreQuackbotHookTest.this.user, "User does not match given"); assertEquals(message, origMessage.substring(1), "Message does not match given"); executed.setLength(0); executed.append("true"); } }; tempHook.onMessage(messageEvent); }