package fr.inria.diversify.ut.json.output; import fr.inria.diversify.persistence.json.output.JsonFailuresOutput; import fr.inria.diversify.transformation.Transformation; import fr.inria.diversify.transformation.ast.ASTReplace; import fr.inria.diversify.ut.json.SectionTestUtils; import org.json.JSONException; import org.json.JSONObject; import org.junit.Test; import java.util.ArrayList; import static fr.inria.diversify.ut.json.SectionTestUtils.list; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; /** * Created by marodrig on 09/01/2015. */ public class JsonAstFailuresOutputTests { @Test public void testEmptyFailureWrite() throws JSONException { JsonFailuresOutput sectionOutput = new JsonFailuresOutput(); sectionOutput.setTransformations(new ArrayList<Transformation>()); sectionOutput.write(new JSONObject()); JSONObject d = sectionOutput.getOutputObject(); assertTrue(d.has(JsonFailuresOutput.FAILURES_DICTIONARY)); } /** * Test the proper creation of the failure dictionary * @throws JSONException */ @Test public void testFailureWrite() throws JSONException { ASTReplace r = SectionTestUtils.getExample("Failure 1", "Failure 2"); ASTReplace r2 = SectionTestUtils.getExample("Failure 3", "Failure 2"); JsonFailuresOutput sectionOutput = new JsonFailuresOutput(); sectionOutput.setTransformations(list(r, r2)); sectionOutput.write(new JSONObject()); JSONObject d = sectionOutput.getOutputObject(); assertTrue(d.has(JsonFailuresOutput.FAILURES_DICTIONARY)); JSONObject fails = d.getJSONObject(JsonFailuresOutput.FAILURES_DICTIONARY); assertEquals(fails.get("Failure 1"), 0); assertEquals(fails.get("Failure 2"), 1); assertEquals(fails.get("Failure 3"), 2); assertEquals(fails.length(), 3); } }