public SCMView getSCMView(String pluginId) {
        return pluginRequestHelper.submitRequest(pluginId, REQUEST_SCM_VIEW, new DefaultPluginInteractionCallback<>() {

            @Override
            public SCMView onSuccess(String responseBody, Map<String, String> responseHeaders, String resolvedExtensionVersion) {
                return messageHandlerMap.get(resolvedExtensionVersion).responseMessageForSCMView(responseBody);
            }
        });
    }
@Test
    public void shouldTalkToPluginToGetSCMView() throws Exception {
        SCMView deserializedResponse = new SCMView() {
            @Override
            public String displayValue() {
                return null;
            }

            @Override
            public String template() {
                return null;
            }
        };
        when(jsonMessageHandler.responseMessageForSCMView(responseBody)).thenReturn(deserializedResponse);

        SCMView response = scmExtension.getSCMView(PLUGIN_ID);

        assertRequest(requestArgumentCaptor.getValue(), SCM_EXTENSION, "1.0", SCMExtension.REQUEST_SCM_VIEW, null);
        verify(jsonMessageHandler).responseMessageForSCMView(responseBody);
        assertSame(response, deserializedResponse);
    }