GitHubJsonStore { protected String getAndModifyJsonString(JsonElement json, String img, String tag) { JsonElement images; if (json.isJsonNull()) { json = new JsonObject(); images = new JsonObject(); json.getAsJsonObject().add("images", images); } images = json.getAsJsonObject().get("images"); if (images == null) { images = new JsonObject(); json.getAsJsonObject().add("images", images); images = json.getAsJsonObject().get("images"); } JsonElement newTag = new JsonPrimitive(tag); images.getAsJsonObject().add(img, newTag); Gson gson = new GsonBuilder().setPrettyPrinting().create(); return gson.toJson(json); } GitHubJsonStore(GitHubUtil gitHubUtil, String store); void updateStore(String img, String tag);  }
@Test(dataProvider = "inputStores") public void testGetAndModifyJsonString(String storeContent, String image, String tag, String expectedOutput) throws Exception { GitHubUtil gitHubUtil = mock(GitHubUtil.class); JsonElement json = JsonParser.parseString(storeContent); String output = new GitHubJsonStore(gitHubUtil, "test").getAndModifyJsonString(json, image, tag); assertEquals(output, expectedOutput); }