This commit is contained in:
Eduard Heimbuch
2020-07-31 10:26:44 +02:00
parent f4ab367220
commit 8db0301141
15 changed files with 506 additions and 30 deletions

View File

@@ -31,6 +31,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import sonia.scm.repository.Person;
import sonia.scm.security.PublicKey;
import java.io.IOException;
@@ -52,16 +53,17 @@ class DefaultGPGTest {
@Test
void shouldFindIdInSignature() throws IOException {
String raw = GPGTestHelper.readResourceAsString("signature.asc");
String raw = GPGTestHelper.readResourceAsString("slarti.txt.asc");
String publicKeyId = gpg.findPublicKeyId(raw.getBytes());
assertThat(publicKeyId).isEqualTo("0x1F17B79A09DAD5B9");
assertThat(publicKeyId).isEqualTo("0x247E908C6FD35473");
}
@Test
void shouldFindPublicKey() throws IOException {
String raw = GPGTestHelper.readResourceAsString("subkeys.asc");
RawGpgKey key1 = new RawGpgKey("42", "key_42", "trillian", raw, ImmutableSet.of("trillian", "zaphod"), Instant.now());
Person trillian = Person.toPerson("Trillian <tricia.mcmillan@hitchhiker.org>");
RawGpgKey key1 = new RawGpgKey("42", "key_42", "trillian", raw, ImmutableSet.of(trillian), Instant.now());
when(store.findById("42")).thenReturn(Optional.of(key1));
@@ -71,7 +73,7 @@ class DefaultGPGTest {
assertThat(publicKey.get().getOwner()).isPresent();
assertThat(publicKey.get().getOwner().get()).contains("trillian");
assertThat(publicKey.get().getId()).isEqualTo("42");
assertThat(publicKey.get().getContacts()).contains("trillian", "zaphod");
assertThat(publicKey.get().getContacts()).contains(trillian);
}
@Test

View File

@@ -36,12 +36,12 @@ class PgpPublicKeyExtractorTest {
@Test
void shouldExtractPublicKeyFromRawKey() throws IOException {
String raw = GPGTestHelper.readResourceAsString("pubKeyEH.asc");
String raw = GPGTestHelper.readResourceAsString("single.asc");
Optional<PGPPublicKey> publicKey = PgpPublicKeyExtractor.getFromRawKey(raw);
assertThat(publicKey).isPresent();
assertThat(Long.toHexString(publicKey.get().getKeyID())).isEqualTo("39ad4bed55527f1c");
assertThat(Long.toHexString(publicKey.get().getKeyID())).isEqualTo("975922f193b07d6e");
}
}

View File

@@ -75,7 +75,6 @@ class PublicKeyMapperTest {
RawGpgKeyDto dto = mapper.map(key);
assertThat(dto.getDisplayName()).isEqualTo(key.getDisplayName());
assertThat(dto.getRaw()).isEqualTo(key.getRaw());
assertThat(dto.getCreated()).isEqualTo(key.getCreated());
assertThat(dto.getLinks().getLinkBy("self").get().getHref()).isEqualTo("/v2/public_keys/1");
assertThat(dto.getLinks().getLinkBy("delete").get().getHref()).isEqualTo("/v2/public_keys/delete/1");

View File

@@ -34,7 +34,9 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import sonia.scm.event.ScmEventBus;
import sonia.scm.repository.Person;
import sonia.scm.security.NotPublicKeyException;
import sonia.scm.security.PublicKeyCreatedEvent;
import sonia.scm.security.PublicKeyDeletedEvent;
import sonia.scm.store.DataStoreFactory;
import sonia.scm.store.InMemoryDataStoreFactory;
@@ -103,6 +105,9 @@ class PublicKeyStoreTest {
assertThat(key.getOwner()).isEqualTo("trillian");
assertThat(key.getCreated()).isAfterOrEqualTo(now);
assertThat(key.getRaw()).isEqualTo(rawKey);
assertThat(key.getContacts()).contains(Person.toPerson("SCM Packages (signing key for packages.scm-manager.org) <scm-team@cloudogu.com>"));
verify(eventBus).post(any(PublicKeyCreatedEvent.class));
}
@Test