package com.azimo.tool.publisher; import com.azimo.tool.config.AppConfig; import com.azimo.tool.config.AppConfigKey; import com.azimo.tool.utils.file.FilePathParser; import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.*; /** * Created by F1sherKK on 18/01/17. */ public class AndroidPublisherAuthTest { AndroidPublisherAuth androidPublisherAuth; @Mock AppConfig appConfigMock; @Mock FilePathParser filePathParserMock; @Mock AndroidPublisherBuilder androidPublisherBuilderMock; @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); androidPublisherAuth = new AndroidPublisherAuth( androidPublisherBuilderMock, appConfigMock, filePathParserMock); } @Test public void testWhenInitialised_ShouldAttemptToRetrieveAndroidPublisher() throws Exception { String mock = "mock"; String parsedMock = "parsedMock"; HttpTransport httpTransportMock = mock(HttpTransport.class); JsonFactory jsonFactoryMock = mock(JsonFactory.class); Credential credential = mock(Credential.class); when(appConfigMock.get(AppConfigKey.APPLICATION_NAME)).thenReturn(mock); when(appConfigMock.get(AppConfigKey.GOOGLE_PLAY_SERVICE_ACCOUNT_EMAIL)).thenReturn(mock); when(appConfigMock.get(AppConfigKey.GOOGLE_PLAY_SERVICE_CREDENTIALS_PATH)).thenReturn(mock); when(filePathParserMock.parsePath(anyString())).thenReturn(parsedMock); when(androidPublisherBuilderMock.newJacksonFactory()).thenReturn(jsonFactoryMock); when(androidPublisherBuilderMock.newTrustedTransport()).thenReturn(httpTransportMock); when(androidPublisherBuilderMock.authorizeWithServiceAccount( anyString(), anyString(), any(HttpTransport.class), any(JsonFactory.class))).thenReturn(credential); androidPublisherAuth.init(); verify(androidPublisherBuilderMock, times(1)) .build(httpTransportMock, jsonFactoryMock, credential, mock); } }