package de.lessvoid.nifty.effects.shared;
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 java.util.Properties;
import junit.framework.TestCase;
import de.lessvoid.nifty.spi.time.TimeProvider;
import de.lessvoid.nifty.tools.time.TimeInterpolator;
public class LinearTimeTest extends TestCase {
private TimeProvider timeProvider;
@Override
public void setUp() {
timeProvider = createMock(TimeProvider.class);
}
@Override
public void tearDown() {
verify(timeProvider);
}
public void testDefault() throws Exception {
expect(timeProvider.getMsTime()).andReturn(0l);
expect(timeProvider.getMsTime()).andReturn(500l);
expect(timeProvider.getMsTime()).andReturn(1000l);
expect(timeProvider.getMsTime()).andReturn(2000l);
replay(timeProvider);
TimeInterpolator linearTime = new TimeInterpolator(new Properties(), timeProvider, false);
linearTime.start();
assertEquals(0.0f, linearTime.getValue());
linearTime.update();
assertEquals(0.5f, linearTime.getValue());
linearTime.update();
assertEquals(1.0f, linearTime.getValue());
linearTime.update();
assertEquals(1.0f, linearTime.getValue());
}
public void testParameter() throws Exception {
expect(timeProvider.getMsTime()).andReturn(0l);
expect(timeProvider.getMsTime()).andReturn(500l);
expect(timeProvider.getMsTime()).andReturn(1000l);
expect(timeProvider.getMsTime()).andReturn(1100l);
expect(timeProvider.getMsTime()).andReturn(1200l);
expect(timeProvider.getMsTime()).andReturn(2000l);
replay(timeProvider);
Properties prop = new Properties();
prop.setProperty("length", "200");
prop.setProperty("startDelay", "1000");
TimeInterpolator linearTime = new TimeInterpolator(prop, timeProvider, false);
linearTime.start();
assertEquals(0.0f, linearTime.getValue());
linearTime.update();
assertEquals(0.0f, linearTime.getValue());
linearTime.update();
assertEquals(0.0f, linearTime.getValue());
linearTime.update();
assertEquals(0.5f, linearTime.getValue());
linearTime.update();
assertEquals(1.0f, linearTime.getValue());
linearTime.update();
assertEquals(1.0f, linearTime.getValue());
}
}