### Question:
AnomalyDetectionResource { String translateDatasetToYaml(DatasetConfigDTO datasetConfigDTO) { Map<String, String> configurations = new HashMap<>(); configurations.put(DATASET_CONFIG_TIME_COLUMN, datasetConfigDTO.getTimeColumn()); configurations.put(DATASET_CONFIG_TIME_UNIT, datasetConfigDTO.getTimeUnit().toString()); configurations.put(DATASET_CONFIG_TIME_DURATION, datasetConfigDTO.getTimeDuration().toString()); configurations.put(DATASET_CONFIG_TIME_FORMAT, datasetConfigDTO.getTimeFormat()); configurations.put(DATASET_CONFIG_TIME_ZONE, datasetConfigDTO.getTimezone()); return yaml.dump(configurations); } @Inject  AnomalyDetectionResource(UserDashboardResource userDashboardResource); @POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @ApiOperation("Request an anomaly detection online task") Response onlineApi(
          @QueryParam("start") Long start,
          @QueryParam("end") Long end,
          @QueryParam("data-id") Long dataId,
          @ApiParam("jsonPayload") String payload,
          @Auth ThirdEyePrincipal principal); @POST @Path("/data") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @ApiOperation("Register ad hoc data used in online service and created dataset/metric configs") Response createOnlineData(@ApiParam("jsonPayload") String payload,
      @Auth ThirdEyePrincipal principal); @PUT @Path("/data/{data-id}") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @ApiOperation("Update ad hoc data used in online service and corresponding dataset/metric configs") Response updateOnlineData(
      @ApiParam("jsonPayload") String payload,
      @PathParam("data-id") Long dataId,
      @Auth ThirdEyePrincipal principal); @DELETE @Path("/data/{data-id}") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @ApiOperation("Delete ad hoc data used in online service and corresponding dataset/metric configs") Response deleteOnlineData(@PathParam("data-id") Long dataId); @GET @Path("/data/{data-id}") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @ApiOperation("Get ad hoc data used in online service and corresponding dataset/metric configs") Response getOnlineData(@PathParam("data-id") Long dataId); @POST @Path("/tasks") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.TEXT_PLAIN) @ApiOperation("Submit an anomaly detection task") Response taskSubmitApi(
      @QueryParam("start") long start,
      @QueryParam("end") long end,
      @QueryParam("detection-name") String detectionName); @GET @Path("/task/{task-id}") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.TEXT_PLAIN) @ApiOperation("Query a task status") Response taskStatusApi(@PathParam("task-id") long taskId);  }### Answer:
@Test public void testTranslateDatasetToYaml() { MetricConfigDTO metricConfigDTO = new MetricConfigDTO(); metricConfigDTO.setDatatype(MetricType.DOUBLE); metricConfigDTO.setName("metricCol"); String metricConfigYaml = this.anomalyDetectionResource.translateMetricToYaml(metricConfigDTO); Map<String, Object> restoredConfigs = ConfigUtils.getMap(yaml.load(metricConfigYaml)); Assert.assertTrue(restoredConfigs.containsKey("datatype") && restoredConfigs.get("datatype").equals("DOUBLE"), "Incorrect datatype: " + restoredConfigs.get("datatype")); Assert.assertTrue(restoredConfigs.containsKey("metricColumn") && restoredConfigs.get("metricColumn").equals("metricCol"), "Incorrect metricColumn: " + restoredConfigs.get("metricColumn")); }