import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import static org.junit.Assert.*;
/**
* Step 3: Generate random key if key isn't specified. Check key is right format
*/
public class SimpleCipherStepThreeTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Ignore("Remove to run test")
@Test
public void cipherKeyIsMadeOfLetters() {
assertTrue(new Cipher().getKey().matches("[a-z]+"));
}
@Ignore("Remove to run test")
@Test
public void defaultCipherKeyIs100Characters() {
assertEquals(100, new Cipher().getKey().length());
}
@Ignore("Remove to run test")
@Test
public void cipherKeysAreRandomlyGenerated() {
String newKey = new Cipher().getKey();
assertFalse("Cipher constructor without argument should generate a random key. No two calls to the" +
" constructor should generate the same key. Two calls to the constructor " +
"both returned key: " + newKey, newKey.equals(new Cipher().getKey()));
}
@Ignore("Remove to run test")
@Test
public void cipherThrowsWithAllCapsKey() {
expectedException.expect(IllegalArgumentException.class);
new Cipher("ABCDEF");
}
@Ignore("Remove to run test")
@Test
public void cipherThrowsWithAnyCapsKey() {
expectedException.expect(IllegalArgumentException.class);
new Cipher("abcdEFg");
}
@Ignore("Remove to run test")
@Test
public void cipherThrowsWithNumericKey() {
expectedException.expect(IllegalArgumentException.class);
new Cipher("12345");
}
@Ignore("Remove to run test")
@Test
public void cipherThrowsWithAnyNumericKey() {
expectedException.expect(IllegalArgumentException.class);
new Cipher("abcd345ef");
}
}