| package org.eclipse.nebula.widgets.nattable.renderer.swt.layer.viewport |
| |
| import java.math.BigDecimal |
| import org.eclipse.nebula.widgets.nattable.core.layer.impl.viewport.ViewportAxis |
| import org.eclipse.swt.widgets.ScrollBar |
| import org.junit.Before |
| import org.junit.Test |
| import org.junit.runner.RunWith |
| import org.mockito.Mock |
| import org.mockito.runners.MockitoJUnitRunner |
| |
| import static org.junit.Assert.* |
| import static org.mockito.Mockito.* |
| |
| import static extension org.eclipse.nebula.widgets.nattable.renderer.swt.layer.viewport.ScrollBarHandler.* |
| |
| @RunWith(typeof(MockitoJUnitRunner)) |
| class ScrollBarHandlerTest { |
| |
| @Mock ScrollBar scrollBar |
| @Mock ViewportAxis viewportAxis |
| ScrollBarHandler scrollBarHandler |
| |
| @Before |
| def void before() { |
| scrollBarHandler = spy(new ScrollBarHandler(scrollBar, viewportAxis)) |
| } |
| |
| @Test |
| def void scaleWithinIntRange() { |
| assertEquals(1, new BigDecimal(1.0).scaleToInt(new BigDecimal(100.0))) |
| assertEquals(new BigDecimal(1.0), 1.scaleToBigDecimal(new BigDecimal(100.0))) |
| } |
| |
| @Test |
| def void scaleOutsideIntRange() { |
| val int maxIntDiv2 = Integer::MAX_VALUE / 2 |
| val BigDecimal maxIntTimes2 = new BigDecimal(Integer::MAX_VALUE) * new BigDecimal(2) |
| val BigDecimal maxIntTimes4 = new BigDecimal(Integer::MAX_VALUE) * new BigDecimal(4) |
| |
| assertEquals(maxIntDiv2, maxIntTimes2.scaleToInt(maxIntTimes4)) |
| assertEquals(maxIntTimes2.doubleValue, maxIntDiv2.scaleToBigDecimal(maxIntTimes4).doubleValue, 2) // close enough! |
| } |
| |
| } |