diff --git a/modules/calc/src/main/java/com/opengamma/strata/calc/runner/DefaultCalculationTaskRunner.java b/modules/calc/src/main/java/com/opengamma/strata/calc/runner/DefaultCalculationTaskRunner.java index d156757a7d..0ef94aac0e 100644 --- a/modules/calc/src/main/java/com/opengamma/strata/calc/runner/DefaultCalculationTaskRunner.java +++ b/modules/calc/src/main/java/com/opengamma/strata/calc/runner/DefaultCalculationTaskRunner.java @@ -17,6 +17,7 @@ import com.opengamma.strata.basics.CalculationTarget; import com.opengamma.strata.basics.ReferenceData; +import com.opengamma.strata.calc.Column; import com.opengamma.strata.calc.Results; import com.opengamma.strata.collect.ArgChecker; import com.opengamma.strata.collect.Messages; @@ -217,6 +218,11 @@ private UnwrappingListener(CalculationListener delegate) { this.delegate = delegate; } + @Override + public void calculationsStarted(List targets, List columns) { + delegate.calculationsStarted(targets, columns); + } + @Override public void resultReceived(CalculationTarget target, CalculationResult calculationResult) { Result result = calculationResult.getResult(); diff --git a/modules/calc/src/test/java/com/opengamma/strata/calc/runner/DefaultCalculationTaskRunnerTest.java b/modules/calc/src/test/java/com/opengamma/strata/calc/runner/DefaultCalculationTaskRunnerTest.java index 12e3fd5345..c54516dff3 100644 --- a/modules/calc/src/test/java/com/opengamma/strata/calc/runner/DefaultCalculationTaskRunnerTest.java +++ b/modules/calc/src/test/java/com/opengamma/strata/calc/runner/DefaultCalculationTaskRunnerTest.java @@ -10,11 +10,11 @@ import static com.opengamma.strata.collect.CollectProjectAssertions.assertThat; import static com.opengamma.strata.collect.TestHelper.assertThrowsIllegalArg; import static com.opengamma.strata.collect.TestHelper.date; -import static org.assertj.core.api.Assertions.assertThat; import java.time.LocalDate; import java.util.Map; import java.util.Set; +import java.util.concurrent.CompletableFuture; import org.testng.annotations.Test; @@ -52,7 +52,7 @@ public class DefaultCalculationTaskRunnerTest { /** * Test that ScenarioArrays containing a single value are unwrapped. */ - public void unwrapScenarioResults() { + public void unwrapScenarioResults() throws Exception { ScenarioArray scenarioResult = ScenarioArray.of("foo"); ScenarioResultFunction fn = new ScenarioResultFunction(TestingMeasures.PRESENT_VALUE, scenarioResult); CalculationTaskCell cell = CalculationTaskCell.of(0, 0, TestingMeasures.PRESENT_VALUE, NATURAL); @@ -73,6 +73,16 @@ public void unwrapScenarioResults() { Result result2 = results2.get(0, 0); // Check the result contains the scenario result wrapping the string assertThat(result2).hasValue(scenarioResult); + + ResultsListener resultsListener = new ResultsListener(); + test.calculateAsync(tasks, marketData, REF_DATA, resultsListener); + CompletableFuture future = resultsListener.getFuture(); + // The future is guaranteed to be done because everything is running on a single thread + assertThat(future.isDone()).isTrue(); + Results results3 = future.get(); + Result result3 = results3.get(0, 0); + // Check the result contains the string directly, not the result wrapping the string + assertThat(result3).hasValue("foo"); } /**