### Question:
ProgressionCommand implements Command, Constant, ReportConstant { public void start(Context context, int stepCount) { ProgressionReport report = (ProgressionReport) context.get(REPORT); report.getProgression().setCurrentStep(STEP.PROCESSING.ordinal() + 1); report.getProgression().getSteps().get(STEP.PROCESSING.ordinal()).setTotal(stepCount); saveReport(context, true); saveMainValidationReport(context, true); }  void initialize(Context context, int stepCount); void start(Context context, int stepCount); void terminate(Context context, int stepCount); void dispose(Context context); void saveReport(Context context, boolean force); void saveMainValidationReport(Context context, boolean force); @Override boolean execute(Context context); static final String COMMAND; }### Answer:
@Test(groups = { "progression" }, description = "start progression command", dependsOnMethods = { "testProgressionInitialize" }) public void testProgressionStart() throws Exception { progression.start(context, 2); ActionReport report = (ActionReport) context.get(REPORT); Assert.assertNotNull(report.getProgression(), "progression should be reported"); Assert.assertEquals(report.getProgression().getCurrentStep(), STEP.PROCESSING.ordinal() + 1, " progression should be on step processing"); Assert.assertEquals(report.getProgression().getSteps().get(1).getTotal(), 2, " total progression should be 2"); Assert.assertEquals(report.getProgression().getSteps().get(1).getRealized(), 0, " current progression should be 0"); }