@Test public void shouldTalkToPluginToCheckRepositoryConnectionSuccessful() throws Exception { String expectedRequestBody = "{\"repository-configuration\":{\"key-one\":{\"value\":\"value-one\"},\"key-two\":{\"value\":\"value-two\"}}}"; String expectedResponseBody = "{\"status\":\"success\",messages=[\"message-one\",\"message-two\"]}"; when(pluginManager.isPluginOfType(PACKAGE_MATERIAL_EXTENSION, PLUGIN_ID)).thenReturn(true); when(pluginManager.submitTo(eq(PLUGIN_ID), eq(PACKAGE_MATERIAL_EXTENSION), requestArgumentCaptor.capture())).thenReturn(DefaultGoPluginApiResponse.success(expectedResponseBody)); Result result = extension.checkConnectionToRepository(PLUGIN_ID, repositoryConfiguration); assertRequest(requestArgumentCaptor.getValue(), PACKAGE_MATERIAL_EXTENSION, "1.0", PackageRepositoryExtension.REQUEST_CHECK_REPOSITORY_CONNECTION, expectedRequestBody); assertSuccessResult(result, asList("message-one", "message-two")); }
@Test public void shouldTalkToPluginToCheckRepositoryConnectionFailure() throws Exception { String expectedRequestBody = "{\"repository-configuration\":{\"key-one\":{\"value\":\"value-one\"},\"key-two\":{\"value\":\"value-two\"}}}"; String expectedResponseBody = "{\"status\":\"failed\",messages=[\"message-one\",\"message-two\"]}"; when(pluginManager.isPluginOfType(PACKAGE_MATERIAL_EXTENSION, PLUGIN_ID)).thenReturn(true); when(pluginManager.submitTo(eq(PLUGIN_ID), eq(PACKAGE_MATERIAL_EXTENSION), requestArgumentCaptor.capture())).thenReturn(DefaultGoPluginApiResponse.success(expectedResponseBody)); Result result = extension.checkConnectionToRepository(PLUGIN_ID, repositoryConfiguration); assertRequest(requestArgumentCaptor.getValue(), PACKAGE_MATERIAL_EXTENSION, "1.0", PackageRepositoryExtension.REQUEST_CHECK_REPOSITORY_CONNECTION, expectedRequestBody); assertFailureResult(result, asList("message-one", "message-two")); }
public void checkConnection(final PackageRepository packageRepository, final LocalizedOperationResult result) { try { Result checkConnectionResult = packageRepositoryExtension.checkConnectionToRepository(packageRepository.getPluginConfiguration().getId(), populateConfiguration(packageRepository.getConfiguration())); String messages = checkConnectionResult.getMessagesForDisplay(); if (!checkConnectionResult.isSuccessful()) { result.connectionError("Could not connect to package repository. Reason(s): " + messages); return; } result.setMessage("Connection OK. " + messages); return; } catch (Exception e) { result.internalServerError("Could not connect to package repository. Reason(s): " + e.getMessage()); } }