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.GerritFacade;
import fr.techad.sonar.gerrit.network.rest.GerritRestFacade;
import fr.techad.sonar.gerrit.network.ssh.GerritSshFacade;
@RunWith(MockitoJUnitRunner.class)
public class GerritFacadeFactoryTest {
@Mock
private GerritConfiguration gerritConfiguration;
@Test
public void shouldGetFacadeAsGerritRestFaceWhenConnectorIsGerritRestConnector() throws Exception {
Mockito.when(gerritConfiguration.getScheme()).thenReturn(GerritConstants.SCHEME_HTTP);
GerritConnectorFactory gerritConnectorFactory = new GerritConnectorFactory(gerritConfiguration);
GerritFacadeFactory gerritFacadeFactory = new GerritFacadeFactory(gerritConnectorFactory);
GerritFacade gerritFacade = gerritFacadeFactory.getFacade();
assertEquals(true, gerritFacade instanceof GerritRestFacade);
}
@Test
public void shouldGetFacadeAsGerritSshFacadeWhenConnectorIsGerritSshConnector() 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);
GerritFacadeFactory gerritFacadeFactory = new GerritFacadeFactory(gerritConnectorFactory);
GerritFacade gerritFacade = gerritFacadeFactory.getFacade();
assertEquals(true, gerritFacade instanceof GerritSshFacade);
}
@Test
public void shouldGetFacadeAsNullWhenConnectorIsUnknown() throws Exception {
Mockito.when(gerritConfiguration.getScheme()).thenReturn("UnknownProtocol");
GerritConnectorFactory gerritConnectorFactory = new GerritConnectorFactory(gerritConfiguration);
GerritFacadeFactory gerritFacadeFactory = new GerritFacadeFactory(gerritConnectorFactory);
GerritFacade gerritFacade = gerritFacadeFactory.getFacade();
assertEquals(null, gerritFacade);
}
}