package de.lessvoid.nifty.controls.slider; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.verify; import static org.junit.Assert.assertEquals; import org.junit.After; import org.junit.Before; import org.junit.Test; public class SliderImplTest { private SliderImpl slider = new SliderImpl(); private SliderView sliderView; @Before public void before() { sliderView = createMock(SliderView.class); expect(sliderView.getSize()).andReturn(100).anyTimes(); sliderView.update(0); sliderView.valueChanged(0.f); } @After public void after() { verify(sliderView); } @Test public void testDefaultPosition() { replay(sliderView); bindToView(); assertEquals(0.f, slider.getValue()); } @Test public void testChangePositionMax() { sliderView.update(100); sliderView.valueChanged(1.f); replay(sliderView); bindToView(); slider.setValue(1.0f); assertEquals(1.f, slider.getValue()); } @Test public void testChangePositionHalf() { sliderView.update(50); sliderView.valueChanged(.5f); replay(sliderView); bindToView(); slider.setValue(.5f); assertEquals(.5f, slider.getValue()); } @Test public void testStepUp() { sliderView.update(10); sliderView.valueChanged(.1f); replay(sliderView); bindToView(); slider.stepUp(); assertEquals(.1f, slider.getValue()); } @Test public void testStepDown() { sliderView.update(0); replay(sliderView); bindToView(); slider.stepDown(); assertEquals(0.f, slider.getValue()); } @Test public void testStepDownWithMax() { sliderView.update(100); sliderView.valueChanged(1.f); sliderView.update(90); sliderView.valueChanged(.90000004f); replay(sliderView); bindToView(); slider.setValue(1.f); slider.stepDown(); assertEquals(.9f, slider.getValue()); } @Test public void testFromViewValueMin() { expect(sliderView.filter(0, 0)).andReturn(0); sliderView.update(0); replay(sliderView); bindToView(); slider.setValueFromPosition(0, 0); assertEquals(0.f, slider.getValue()); } @Test public void testFromViewValueMax() { expect(sliderView.filter(100, 0)).andReturn(100); sliderView.update(100); sliderView.valueChanged(1.f); replay(sliderView); bindToView(); slider.setValueFromPosition(100, 0); assertEquals(1.f, slider.getValue()); } @Test public void testFromViewValueCenter() { expect(sliderView.filter(50, 0)).andReturn(50); sliderView.update(50); sliderView.valueChanged(.5f); replay(sliderView); bindToView(); slider.setValueFromPosition(50, 0); assertEquals(0.5f, slider.getValue()); } @Test public void testFromViewValueCenterWithStepSize() { expect(sliderView.filter(35, 0)).andReturn(35); sliderView.update(25); sliderView.valueChanged(.25f); replay(sliderView); slider.bindToView(sliderView, 0f, 1.f, .25f, .25f); slider.setValueFromPosition(35, 0); assertEquals(0.25f, slider.getValue()); } @Test public void testWithDifferentStepSize() { expect(sliderView.filter(35, 0)).andReturn(35); sliderView.update(40); sliderView.valueChanged(0.4f); sliderView.update(20); sliderView.valueChanged(0.2f); replay(sliderView); slider.bindToView(sliderView, 0f, 1.f, .1f, .25f); slider.setValueFromPosition(35, 0); assertEquals(0.4f, slider.getValue(), .01f); slider.stepDown(); assertEquals(0.2f, slider.getValue(), 0.01f); } @Test public void testChangeMin() { sliderView.update(0); sliderView.valueChanged(.5f); replay(sliderView); bindToView(); slider.setMin(.5f); assertEquals(.5f, slider.getValue()); } @Test public void testChangeMax() { sliderView.update(0); replay(sliderView); bindToView(); slider.setMax(.5f); assertEquals(0.f, slider.getValue()); } @Test public void testChangeStepSize() { sliderView.update(10); sliderView.valueChanged(.1f); sliderView.update(0); sliderView.valueChanged(0.f); replay(sliderView); bindToView(); slider.setValue(0.1f); slider.setStepSize(0.25f); assertEquals(.25f, slider.getValue()); } private void bindToView() { slider.bindToView(sliderView, 0f, 1.f, .1f, .1f); } }