package org.limewire.core.impl.updates; import java.util.concurrent.atomic.AtomicReference; import org.jmock.Expectations; import org.jmock.Mockery; import org.limewire.listener.EventBroadcaster; import org.limewire.listener.EventListener; import org.limewire.util.AssignParameterAction; import org.limewire.util.BaseTestCase; import com.limegroup.gnutella.version.UpdateEvent; import com.limegroup.gnutella.version.UpdateHandler; import com.limegroup.gnutella.version.UpdateInformation; public class UpdateListenerTest extends BaseTestCase { public UpdateListenerTest(String name) { super(name); } @SuppressWarnings("unchecked") public void testHandleEvent() { Mockery context = new Mockery(); final UpdateHandler updateHandler = context.mock(UpdateHandler.class); final EventBroadcaster<org.limewire.core.api.updates.UpdateEvent> broadcaster = context .mock(EventBroadcaster.class); context.checking(new Expectations() { { one(updateHandler).addListener(with(any(EventListener.class))); } }); UpdateListener updateListener = new UpdateListener(updateHandler, broadcaster); final UpdateInformation updateInformation = context.mock(UpdateInformation.class); final String button1Text = "1"; final String button2Text = "2"; final String commandText = "command"; final String text = "text"; final String title = "title"; final String url = "url"; final AtomicReference<org.limewire.core.api.updates.UpdateEvent> updateEvent = new AtomicReference<org.limewire.core.api.updates.UpdateEvent>(); context.checking(new Expectations() { { one(updateInformation).getButton1Text(); will(returnValue(button1Text)); one(updateInformation).getButton2Text(); will(returnValue(button2Text)); one(updateInformation).getUpdateCommand(); will(returnValue(commandText)); one(updateInformation).getUpdateText(); will(returnValue(text)); one(updateInformation).getUpdateTitle(); will(returnValue(title)); one(updateInformation).getUpdateURL(); will(returnValue(url)); one(broadcaster).broadcast(with(any(org.limewire.core.api.updates.UpdateEvent.class))); will(new AssignParameterAction<org.limewire.core.api.updates.UpdateEvent>(updateEvent, 0)); } }); UpdateEvent updateEventParam = new UpdateEvent(updateInformation, UpdateEvent.Type.UPDATE); updateListener.handleEvent(updateEventParam); org.limewire.core.api.updates.UpdateEvent ude = updateEvent.get(); assertNotNull(ude); assertEquals(button1Text, ude.getData().getButton1Text()); assertEquals(button2Text, ude.getData().getButton2Text()); assertEquals(commandText, ude.getData().getUpdateCommand()); assertEquals(title, ude.getData().getUpdateTitle()); assertEquals(text, ude.getData().getUpdateText()); assertEquals(url, ude.getData().getUpdateURL()); } }