public void test(
      String workflowId,
      String workflowName,
      String workflowNodeName,
      Map<String, String[]> adjacencies) {
    Configuration conf = new Configuration();
    setProperties(conf, workflowId, workflowName, workflowNodeName, adjacencies);
    String log =
        log(
            "JOB",
            new String[] {ID, NAME, NODE, ADJ},
            new String[] {
              conf.get(ID_PROP),
              conf.get(NAME_PROP),
              conf.get(NODE_PROP),
              JobHistory.JobInfo.getWorkflowAdjacencies(conf)
            });
    ParsedLine line = new ParsedLine(log);
    JobID jobid = new JobID("id", 1);
    JobSubmittedEvent event =
        new JobSubmittedEvent(
            jobid,
            workflowName,
            "",
            0l,
            "",
            null,
            "",
            line.get(ID),
            line.get(NAME),
            line.get(NODE),
            line.get(ADJ));
    WorkflowContext context = MapReduceJobHistoryUpdater.buildWorkflowContext(event);

    String resultingWorkflowId = workflowId;
    if (workflowId.isEmpty()) resultingWorkflowId = jobid.toString().replace("job_", "mr_");
    assertEquals("Didn't recover workflowId", resultingWorkflowId, context.getWorkflowId());
    assertEquals("Didn't recover workflowName", workflowName, context.getWorkflowName());
    assertEquals(
        "Didn't recover workflowNodeName", workflowNodeName, context.getWorkflowEntityName());

    Map<String, String[]> resultingAdjacencies = adjacencies;
    if (resultingAdjacencies.size() == 0) {
      resultingAdjacencies = new HashMap<String, String[]>();
      resultingAdjacencies.put(workflowNodeName, new String[] {});
    }
    assertEquals(
        "Got incorrect number of adjacencies",
        resultingAdjacencies.size(),
        context.getWorkflowDag().getEntries().size());
    for (WorkflowDagEntry entry : context.getWorkflowDag().getEntries()) {
      String[] sTargets = resultingAdjacencies.get(entry.getSource());
      assertNotNull("No original targets for " + entry.getSource(), sTargets);
      List<String> dTargets = entry.getTargets();
      assertEquals(
          "Got incorrect number of targets for " + entry.getSource(),
          sTargets.length,
          dTargets.size());
      for (int i = 0; i < sTargets.length; i++) {
        assertEquals("Got incorrect target for " + entry.getSource(), sTargets[i], dTargets.get(i));
      }
    }
  }