package com.jenjinstudios.world.client.message; import com.jenjinstudios.core.io.Message; import com.jenjinstudios.core.io.MessageRegistry; import com.jenjinstudios.world.Actor; import com.jenjinstudios.world.World; import com.jenjinstudios.world.client.WorldClient; import com.jenjinstudios.world.collections.WorldObjectList; import com.jenjinstudios.world.math.Angle; import org.testng.annotations.Test; import static com.jenjinstudios.world.math.Angle.IDLE; import static java.lang.Math.PI; import static org.mockito.Mockito.*; /** * @author Caleb Brinkman */ public class ExecutableStateChangeMessageTest { @Test public void testMessageExecution() throws Exception { MessageRegistry messageRegistry = MessageRegistry.getInstance(); Message stateChangeMessage = messageRegistry.createMessage("StateChangeMessage"); stateChangeMessage.setArgument("id", 100); stateChangeMessage.setArgument("relativeAngle", IDLE); stateChangeMessage.setArgument("absoluteAngle", PI); stateChangeMessage.setArgument("timeOfChange", System.currentTimeMillis()); stateChangeMessage.setArgument("xCoordinate", PI); stateChangeMessage.setArgument("yCoordinate", PI); WorldClient worldClient = mock(WorldClient.class); World world = mock(World.class); WorldObjectList worldObjectMap = mock(WorldObjectList.class); when(world.getWorldObjects()).thenReturn(worldObjectMap); Actor clientActor = mock(Actor.class); when(worldClient.getWorld()).thenReturn(world); when(worldObjectMap.get(100)).thenReturn(clientActor); ExecutableStateChangeMessage message = new ExecutableStateChangeMessage(worldClient, stateChangeMessage); message.runImmediate(); message.runDelayed(); verify(worldObjectMap).get(100); verify(clientActor).setAngle(eq(new Angle(PI))); } }