package fr.techad.sonar.gerrit.factory;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import fr.techad.sonar.GerritConfiguration;
import fr.techad.sonar.GerritConstants;
import fr.techad.sonar.gerrit.GerritConnector;
import fr.techad.sonar.gerrit.network.rest.GerritRestConnector;
import fr.techad.sonar.gerrit.network.ssh.GerritSshConnector;
@RunWith(MockitoJUnitRunner.class)
public class GerritConnectorFactoryTest {
@Mock
private GerritConfiguration gerritConfiguration;
@Test
public void shouldGetConnectorAsGerritRestConnectorWhenSchemeIsHttp() throws Exception {
Mockito.when(gerritConfiguration.getScheme()).thenReturn(GerritConstants.SCHEME_HTTP);
GerritConnectorFactory gerritConnectorFactory = new GerritConnectorFactory(gerritConfiguration);
GerritConnector gerritConnector = gerritConnectorFactory.getConnector();
assertEquals(true, gerritConnector instanceof GerritRestConnector);
}
@Test
public void shouldGetConnectorAsGerritRestConnectorWhenSchemeIsHttps() throws Exception {
Mockito.when(gerritConfiguration.getScheme()).thenReturn(GerritConstants.SCHEME_HTTPS);
GerritConnectorFactory gerritConnectorFactory = new GerritConnectorFactory(gerritConfiguration);
GerritConnector gerritConnector = gerritConnectorFactory.getConnector();
assertEquals(true, gerritConnector instanceof GerritRestConnector);
}
@Test
public void shouldGetConnectorAsGerritSshConnectorWhenSchemeIsSSh() throws Exception {
Mockito.when(gerritConfiguration.getScheme()).thenReturn(GerritConstants.SCHEME_SSH);
Mockito.when(gerritConfiguration.getUsername()).thenReturn("user");
Mockito.when(gerritConfiguration.getHost()).thenReturn("localhost");
Mockito.when(gerritConfiguration.getPort()).thenReturn(22);
GerritConnectorFactory gerritConnectorFactory = new GerritConnectorFactory(gerritConfiguration);
GerritConnector gerritConnector = gerritConnectorFactory.getConnector();
assertEquals(true, gerritConnector instanceof GerritSshConnector);
}
@Test
public void shouldGetConnectorAsNullWhenSchemeIsUnknown() throws Exception {
Mockito.when(gerritConfiguration.getScheme()).thenReturn("UnknownProtocol");
GerritConnectorFactory gerritConnectorFactory = new GerritConnectorFactory(gerritConfiguration);
GerritConnector gerritConnector = gerritConnectorFactory.getConnector();
assertEquals(null, gerritConnector);
}
}