blob: e2417aa4c1a1a1349c5a92181e9715735a111063 [file] [log] [blame]
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!
}
}