package com.wesabe.grendel.openpgp.tests; import static org.fest.assertions.Assertions.*; import java.io.FileInputStream; import org.junit.Before; import org.junit.Test; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; import com.wesabe.grendel.openpgp.KeySet; @RunWith(Enclosed.class) public class KeySetTest { public static class A_Key_Set { private KeySet keySet; @Before public void setup() throws Exception { final FileInputStream keyRingFile = new FileInputStream("src/test/resources/secret-keyring.gpg"); this.keySet = KeySet.load(keyRingFile); } @Test public void itHasAMasterKey() throws Exception { assertThat(keySet.getMasterKey().getKeyID()).isEqualTo(0x8C7035EF8838238CL); } @Test public void itHasASubKey() throws Exception { assertThat(keySet.getSubKey().getKeyID()).isEqualTo(0xA3A5D038FF30574EL); } @Test public void itIsHumanReadable() throws Exception { assertThat(keySet.toString()).isEqualTo("[2048-RSA/8838238C, 2048-RSA/FF30574E]"); } @Test public void itHasAUserID() throws Exception { assertThat(keySet.getUserID()).isEqualTo("Sample Key <sample@wesabe.com>"); } @Test public void itSerializesItselfToAStream() throws Exception { @SuppressWarnings("restriction") final String encoded = new String( org.bouncycastle.util.encoders.Base64.encode(keySet.getEncoded()) ); assertThat(encoded).isEqualTo( "lQO+BEpWGSsBCACkn2kY7+LhS+db3A7xb/L5zpm1ddWDGGgTlalR/dpV+YOs" + "lDLN9YJM1ftqbgKE7dYN3rnWnoCSAloY3fngmSM/us1taSougiV7Sc/dZnGw" + "LNU8oeZATJSZrVzPvQfFBItJjHkg0pt5c561voeua9lu+3ZTfCD0uIgAVu+b" + "5+Sds8ncWnsDFp/FLgii/RqxBlFhtWFgQNYEJLMEBRxHqBpSbPYxg/iUliim" + "cwv+o73jOXtgl9UQ2lTNp/cpIiKCbzKcZXvEH1LoIremi6iX3kJNRl2ixHW2" + "MYaKXCY9SZdNlgzx3g6Aj/9K8opKEdkl6V+2w/dkwu9TwyWkVoGWtUZHABEB" + "AAH+AwMC+qNrMJdjGGZgbLOk2HroosVeY1Ue2g2ikPw8G3nYzzoTzJNLIDut" + "Wz9Px3v6JX2CYwVGB0WJxoiyusZ/i/cOvreVV9LLN1t6v6t9GKfjOKWZRbVt" + "SKn3dwBMHFuv7a6WgQGCsps0glz4tbqzxXwRtDQDdHybDw9DOdsLc8+B6t8Z" + "vjhFf7wvVu4MO9EvWGRbBpPQSLWUDlRb+0XVYcgAzs3o8zXsUd+K9A+D8due" + "PGhRMnGASvQPSBJBpBdTMK5fEXHfMzbybAqXlAtlZT/tIJk1bS9gA/kADNFo" + "FKcdTUhWh4bBwuxWdTNULdaM/BP1HhXA3m5/ejkXwoL8KqI3SbAXgByp5UEL" + "IsJ7mLk+mD3mVFBqC2PF76lGfszgVcyRVyXkWvhxrLQ2w6m7eYqUg8nIjbFO" + "xR02n+l0ACysfZQD4z/1vVt2X1jeUijji0CfkVSJA/Nso6sQrDw7Ok/5fX9v" + "qVL1+KqqAWR8f80h7PF+lWroNr03aLJhsFXY/05Nb4s2BRTG9lMqvsMnjiBZ" + "NwrFUNx2WrsvJK8pb5UqwovBnScGtcwAi7K9OEJFuXkbIYNZkkU+01VfN8mb" + "NED648kiZUbNiqoPYh6A5wv3BevFlzRZaFd4uRnCRosyu6BGUBrKDSTRlgd5" + "QqO3UUC4069v9WPtjJlSpMVh8raUiqCByMVLVGE/cPYqcqdokEYk/Q4p8um2" + "lARz9FiAOxzajrCRmGVIuR8Qvq/ilx47J1s89VAv2jjQpUPcY4ETnzIR6vcv" + "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"); } } }