package ch.csnc.extension.httpclient; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import java.security.cert.Certificate; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertThat; import static org.mockito.BDDMockito.given; @RunWith(MockitoJUnitRunner.class) public class AliasCertificateUnitTest { private AliasCertificate aliasCertificate; @Mock private Certificate certificate; @Test public void shouldRetrieveCnFromUnderlyingCertificate() { // Given given(certificate.toString()).willReturn("CN=test\\,certificate,post"); aliasCertificate = new AliasCertificate(certificate, ""); // When String cn = aliasCertificate.getCN(); // Then assertThat(cn, is("test\\,certificate")); } @Test public void shouldMergeCnAndAliasIntoName() { // Given given(certificate.toString()).willReturn("CN=test\\,certificate,post"); aliasCertificate = new AliasCertificate(certificate, "alias"); // When String name = aliasCertificate.getName(); // Then assertThat(name, is("test\\,certificate [alias]")); } @Test public void shouldReturnNullAsCnOnUnexpectedUnderlyingCertificateString() { // Given given(certificate.toString()).willReturn("xxx"); aliasCertificate = new AliasCertificate(certificate, ""); // When String cn = aliasCertificate.getCN(); // Then assertThat(cn, is(nullValue())); } @Test public void shouldFailRetrievingNameOnNullCn() { // Given given(certificate.toString()).willReturn("xxx"); aliasCertificate = new AliasCertificate(certificate, ""); // When String name = aliasCertificate.getName(); // Then assertThat(name, is("")); } }