package br.com.etyllica.awt;
import java.awt.Frame;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import br.com.etyllica.awt.core.AWTCore;
import br.com.etyllica.core.context.Application;
import br.com.etyllica.core.event.MouseEvent;
import br.com.etyllica.core.event.PointerEvent;
import br.com.etyllica.core.event.PointerState;
import br.com.etyllica.core.graphics.Graphics;
import br.com.etyllica.gui.View;
import br.com.etyllica.gui.Window;
import br.com.etyllica.gui.base.BaseButton;
public class AWTCoreTest {
private AWTCore innerCore;
private Application fakeApplication;
private List<View> components;
private BaseButton button;
@Before
public void setUp() {
Window window = new Window(0, 0, 800,600);
fakeApplication = createFakeApplication();
window.setApplication(fakeApplication);
Frame component = new Frame();
innerCore = new AWTCore(component, 800, 600);
innerCore.replaceWindow(window);
button = new BaseButton(0, 0, 100, 20);
components = new ArrayList<View>();
components.add(button);
}
public Application createFakeApplication() {
Application app = new Application(100,100) {
@Override
public void load() {
// TODO Auto-generated method stub
loading = 100;
}
@Override
public void draw(Graphics g) {
// TODO Auto-generated method stub
}
};
return app;
}
@Test
public void testUpdateUnLockedContext() {
Assert.assertTrue(innerCore.updateApplication(fakeApplication, 0));
}
@Test
public void testUpdatePointerEvent() {
Assert.assertNull(innerCore.getMouseOver());
PointerEvent move = new PointerEvent(MouseEvent.MOUSE_NONE, PointerState.MOVE, 10, 10);
innerCore.updatePointerEvent(move, components);
Assert.assertNotNull(innerCore.getMouseOver());
}
@Test
public void testMouseOut() {
Assert.assertNull(innerCore.getMouseOver());
PointerEvent move = new PointerEvent(MouseEvent.MOUSE_NONE, PointerState.MOVE, 10, 10);
innerCore.updatePointerEvent(move, components);
Assert.assertEquals(button, innerCore.getMouseOver());
move = new PointerEvent(MouseEvent.MOUSE_NONE, PointerState.MOVE, 10, 30);
innerCore.updatePointerEvent(move, components);
Assert.assertNotEquals(button, innerCore.getMouseOver());
}
}