### Question:
JsonToBean { public static WorkflowJob createWorkflowJob(JSONObject json) { return (WorkflowJob) Proxy.newProxyInstance(JsonToBean.class.getClassLoader(), new Class[]{WorkflowJob.class}, new JsonInvocationHandler(WF_JOB, json)); }  static WorkflowAction createWorkflowAction(JSONObject json); static List<WorkflowAction> createWorkflowActionList(JSONArray json); static WorkflowJob createWorkflowJob(JSONObject json); static List<WorkflowJob> createWorkflowJobList(JSONArray json); static CoordinatorAction createCoordinatorAction(JSONObject json); static List<CoordinatorAction> createCoordinatorActionList(JSONArray json); static CoordinatorJob createCoordinatorJob(JSONObject json); static JMSConnectionInfo createJMSConnectionInfo(JSONObject json); static List<CoordinatorJob> createCoordinatorJobList(JSONArray json); static BundleJob createBundleJob(JSONObject json); static List<BundleJob> createBundleJobList(JSONArray json); static BulkResponse createBulkResponse(JSONObject json); static List<BulkResponse> createBulkResponseList(JSONArray json); static List<String> createBulkWriteJobIdList(JSONArray json);  }### Answer:
@SuppressWarnings("unchecked") @Test public void testParseWorkflowJob() { JSONObject json = createJsonWorkflowJob(); WorkflowJob wf = JsonToBean.createWorkflowJob(json); assertEquals("a", wf.getAppPath()); assertEquals("b", wf.getAppName()); assertEquals("c", wf.getId()); assertEquals("d", wf.getConf()); assertEquals(WorkflowJob.Status.PREP, wf.getStatus()); assertEquals(JsonUtils.parseDateRfc822(CREATED_TIME), wf.getCreatedTime()); assertEquals(JsonUtils.parseDateRfc822(START_TIME), wf.getStartTime()); assertEquals(JsonUtils.parseDateRfc822(END_TIME), wf.getEndTime()); assertEquals("e", wf.getUser()); assertEquals("f", wf.getGroup()); assertEquals(1, wf.getRun()); assertEquals("g", wf.getConsoleUrl()); assertEquals(2, wf.getActions().size()); assertEquals("a1", wf.getActions().get(0).getId()); assertEquals("a2", wf.getActions().get(1).getId()); }