@Test public void shouldTalkToPluginToGetLatestModification() throws Exception { String flyweight = "flyweight"; when(jsonMessageHandler.requestMessageForLatestRevision(scmPropertyConfiguration, materialData, flyweight)).thenReturn(requestBody); MaterialPollResult deserializedResponse = new MaterialPollResult(); when(jsonMessageHandler.responseMessageForLatestRevision(responseBody)).thenReturn(deserializedResponse); MaterialPollResult response = scmExtension.getLatestRevision(PLUGIN_ID, scmPropertyConfiguration, materialData, flyweight); assertRequest(requestArgumentCaptor.getValue(), SCM_EXTENSION, "1.0", SCMExtension.REQUEST_LATEST_REVISION, requestBody); verify(jsonMessageHandler).requestMessageForLatestRevision(scmPropertyConfiguration, materialData, flyweight); verify(jsonMessageHandler).responseMessageForLatestRevision(responseBody); assertSame(response, deserializedResponse); }
@Test public void shouldBuildSCMDataFromLatestRevisionResponse() throws Exception { String responseBodyWithSCMData = "{\"revision\":{\"revision\":\"r1\",\"timestamp\":\"2011-07-14T19:43:37.100Z\"},\"scm-data\":{\"key-one\":\"value-one\"}}"; MaterialPollResult pollResult = messageHandler.responseMessageForLatestRevision(responseBodyWithSCMData); Map<String, String> scmData = new HashMap<>(); scmData.put("key-one", "value-one"); assertThat(pollResult.getMaterialData(), is(scmData)); assertThat(pollResult.getRevisions().get(0).getRevision(), is("r1")); }
@Test public void shouldBuildSCMRevisionFromLatestRevisionResponse() throws Exception { String revisionJSON = "{\"revision\":\"r1\",\"timestamp\":\"2011-07-14T19:43:37.100Z\",\"user\":\"some-user\",\"revisionComment\":\"comment\",\"data\":{\"dataKeyTwo\":\"data-value-two\",\"dataKeyOne\":\"data-value-one\"}," + "\"modifiedFiles\":[{\"fileName\":\"f1\",\"action\":\"added\"},{\"fileName\":\"f2\",\"action\":\"modified\"},{\"fileName\":\"f3\",\"action\":\"deleted\"}]}"; String responseBody = "{\"revision\": " + revisionJSON + "}"; MaterialPollResult pollResult = messageHandler.responseMessageForLatestRevision(responseBody); assertThat(pollResult.getMaterialData(), is(nullValue())); assertSCMRevision(pollResult.getLatestRevision(), "r1", "some-user", "2011-07-14T19:43:37.100Z", "comment", asList(new ModifiedFile("f1", ModifiedAction.added), new ModifiedFile("f2", ModifiedAction.modified), new ModifiedFile("f3", ModifiedAction.deleted))); }