package glug.gui.zoom; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import glug.gui.UITimeScale; import java.awt.Canvas; import java.awt.Component; import java.awt.Dimension; import java.awt.Point; import javax.swing.JViewport; import org.joda.time.Instant; import org.joda.time.Interval; import org.junit.Test; public class TimelineViewportTest { @Test public void shouldMoveViewSoThatInstantIsAtRequiredLocationInViewport() { UITimeScale uiTimeScale = new UITimeScale(); uiTimeScale.setFullInterval(new Interval(4000,7000)); uiTimeScale.setMillisecondsPerPixel(100); JViewport viewport = new JViewport(); viewport.setView(viewOfSize(new Dimension(10000,100))); viewport.setExtentSize(new Dimension(1000,100)); viewport.setViewPosition(new Point(3000,0)); TimelineViewport timelineViewport = new TimelineViewport(uiTimeScale, viewport); Instant instant = new Instant(5000); timelineViewport.setViewPosition(instant, 200); assertThat(timelineViewport.getViewportCoordinateFor(instant), equalTo(200)); } private Component viewOfSize(Dimension viewSize) { Component view = new Canvas(); view.setSize(viewSize); return view; } }