package com.blundell.quicksand.viscosity; import java.util.Random; import org.junit.Test; import static org.fest.assertions.api.Assertions.assertThat; public class AllOrNothingViscosityTest { private static final long ANY_LONG = new Random().nextLong(); @Test public void testWhenMaxViewsReachedDurationIsZero() throws Exception { int maxViews = 2; ViscosityInterpolator viscosity = new AllOrNothingViscosityInterpolator(maxViews); long duration = viscosity.calculateDuration(ANY_LONG, ++maxViews); assertThat(duration).isEqualTo(0); } @Test public void testWhenViewCountIsOverMaxViewsDurationIsZero() throws Exception { int maxViews = 2; ViscosityInterpolator viscosity = new AllOrNothingViscosityInterpolator(maxViews); long duration = viscosity.calculateDuration(ANY_LONG, ++maxViews); assertThat(duration).isEqualTo(0); } @Test public void testWhenViewCountIsLessThanMaxDurationEqualsCurrentDuration() throws Exception { ViscosityInterpolator viscosity = new AllOrNothingViscosityInterpolator(2); int viewCount = 1; long currentDuration = ANY_LONG; long duration = viscosity.calculateDuration(currentDuration, viewCount); assertThat(duration).isEqualTo(currentDuration); } }