@Test
public void testStart() throws MediaPackageException, WorkflowOperationException {

  MediaPackage mediaPackage = MediaPackageBuilderFactory.newInstance().newMediaPackageBuilder().createNew();
  VideoStreamImpl videoStream = new VideoStreamImpl("234");
  videoStream.setFrameWidth(1280);
  videoStream.setFrameHeight(720);
  TrackImpl track = new TrackImpl();
  track.setFlavor(MediaPackageElementFlavor.parseFlavor("presenter/source"));
  track.addStream(videoStream);
  JobContext jobContext = EasyMock.createMock(JobContext.class);
  EasyMock.replay(jobContext);
  WorkflowOperationInstance operationInstance = EasyMock.createMock(WorkflowOperationInstance.class);
  String[][] config = {
          { ProbeResolutionWorkflowOperationHandler.OPT_SOURCE_FLAVOR, "*/source"},
          { ProbeResolutionWorkflowOperationHandler.OPT_VAR_PREFIX + "aspect", "1280x720,1280x700"},
          { ProbeResolutionWorkflowOperationHandler.OPT_VAL_PREFIX + "aspect", "16/9"},
          { ProbeResolutionWorkflowOperationHandler.OPT_VAR_PREFIX + "is_720", "1280x720,1280x700"},
          { ProbeResolutionWorkflowOperationHandler.OPT_VAR_PREFIX + "is_1080", "1920x1080"}};
  Set<String> keys = new HashSet<>();
  for (String[] cfg: config) {
    keys.add(cfg[0]);
    EasyMock.expect(operationInstance.getConfiguration(cfg[0])).andReturn(cfg[1]).anyTimes();
  }
  EasyMock.expect(operationInstance.getConfigurationKeys()).andReturn(keys).anyTimes();
  EasyMock.replay(operationInstance);
  WorkflowInstance workflowInstance = EasyMock.createMock(WorkflowInstance.class);
  EasyMock.expect(workflowInstance.getMediaPackage()).andReturn(mediaPackage).anyTimes();
  EasyMock.expect(workflowInstance.getCurrentOperation()).andReturn(operationInstance).anyTimes();
  EasyMock.replay(workflowInstance);
  // With no matching track
  assertEquals(null, operationHandler.start(workflowInstance, jobContext).getProperties());
  // With matching track
  mediaPackage.add(track);
  WorkflowOperationResult workflowOperationResult = operationHandler.start(workflowInstance, jobContext);
  Map<String, String> properties = workflowOperationResult.getProperties();
  String[][] props = {
          {"presenter_source_aspect", "16/9"},
          {"presenter_source_is_720", "true"},
          {"presenter_source_is_1080", null}};
  for (String[] prop: props) {
    assertEquals(prop[1], properties.get(prop[0]));
  }
}