@Override
    public CRTask deserialize(JsonElement json,
                              Type type,
                              JsonDeserializationContext context) throws JsonParseException {
        return determineJsonElementForDistinguishingImplementers(json, context, TYPE, ARTIFACT_ORIGIN);
    }
@Test
    public void shouldInstantiateATaskForTypeFetchPluggableArtifact() {
        JsonObject jsonObject = new JsonObject();
        jsonObject.addProperty("type", "fetch");
        jsonObject.addProperty(TypeAdapter.ARTIFACT_ORIGIN, "external");
        taskTypeAdapter.deserialize(jsonObject, type, jsonDeserializationContext);

        verify(jsonDeserializationContext).deserialize(jsonObject, CRFetchPluggableArtifactTask.class);
    }