import org.junit.Ignore;
import org.junit.Before;
import org.junit.Test;
import static java.util.Arrays.asList;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
import static org.junit.Assert.assertEquals;
public class HandshakeCalculatorTest {
private HandshakeCalculator handshakeCalculator;
@Before
public void setUp() {
handshakeCalculator = new HandshakeCalculator();
}
@Test
public void testThatInput1YieldsAWink() {
assertEquals(
singletonList(Signal.WINK),
handshakeCalculator.calculateHandshake(1));
}
@Ignore("Remove to run test")
@Test
public void testThatInput2YieldsADoubleBlink() {
assertEquals(
singletonList(Signal.DOUBLE_BLINK),
handshakeCalculator.calculateHandshake(2));
}
@Ignore("Remove to run test")
@Test
public void testThatInput4YieldsACloseYourEyes() {
assertEquals(
singletonList(Signal.CLOSE_YOUR_EYES),
handshakeCalculator.calculateHandshake(4));
}
@Ignore("Remove to run test")
@Test
public void testThatInput8YieldsAJump() {
assertEquals(
singletonList(Signal.JUMP),
handshakeCalculator.calculateHandshake(8));
}
@Ignore("Remove to run test")
@Test
public void testAnInputThatYieldsTwoActions() {
assertEquals(
asList(Signal.WINK, Signal.DOUBLE_BLINK),
handshakeCalculator.calculateHandshake(3));
}
@Ignore("Remove to run test")
@Test
public void testAnInputThatYieldsTwoReversedActions() {
assertEquals(
asList(Signal.DOUBLE_BLINK, Signal.WINK),
handshakeCalculator.calculateHandshake(19));
}
@Ignore("Remove to run test")
@Test
public void testReversingASingleActionYieldsTheSameAction() {
assertEquals(
singletonList(Signal.JUMP),
handshakeCalculator.calculateHandshake(24));
}
@Ignore("Remove to run test")
@Test
public void testReversingNoActionsYieldsNoActions() {
assertEquals(
emptyList(),
handshakeCalculator.calculateHandshake(16));
}
@Ignore("Remove to run test")
@Test
public void testInputThatYieldsAllActions() {
assertEquals(
asList(Signal.WINK, Signal.DOUBLE_BLINK, Signal.CLOSE_YOUR_EYES, Signal.JUMP),
handshakeCalculator.calculateHandshake(15));
}
@Ignore("Remove to run test")
@Test
public void testInputThatYieldsAllActionsReversed() {
assertEquals(
asList(Signal.JUMP, Signal.CLOSE_YOUR_EYES, Signal.DOUBLE_BLINK, Signal.WINK),
handshakeCalculator.calculateHandshake(31));
}
@Ignore("Remove to run test")
@Test
public void testThatInput0YieldsNoActions() {
assertEquals(
emptyList(),
handshakeCalculator.calculateHandshake(0));
}
@Ignore("Remove to run test")
@Test
public void testThatInputWithLower5BitsNotSetYieldsNoActions() {
assertEquals(
emptyList(),
handshakeCalculator.calculateHandshake(32));
}
}