assertEquals(3, results.size());
}
@Test
public void testGetRequirements() {
ComputationTarget target = new ComputationTarget(CurrencyPair.TYPE, CurrencyPair.parse("GBP/USD"));
Set<ValueRequirement> requirements = _function.getRequirements(_functionCompilationContext, target, new ValueRequirement(ValueRequirementNames.SPOT_RATE, target.toSpecification()));
assertEquals(Iterables.getOnlyElement(requirements),
new ValueRequirement(ValueRequirementNames.SPOT_RATE, new ComputationTargetRequirement(CurrencyMatrixResolver.TYPE, ExternalId.of(CurrencyMatrixResolver.IDENTIFIER_SCHEME, "Foo")),
ValueProperties.with(AbstractCurrencyMatrixSourcingFunction.SOURCE_CURRENCY_PROPERTY, "USD").with(AbstractCurrencyMatrixSourcingFunction.TARGET_CURRENCY_PROPERTY, "GBP").get()));
requirements = _function.getRequirements(_functionCompilationContext, target,
new ValueRequirement(ValueRequirementNames.SPOT_RATE, target.toSpecification(), ValueProperties.with(CurrencyMatrixLookupFunction.CURRENCY_MATRIX_NAME_PROPERTY, "Bar").get()));
assertEquals(Iterables.getOnlyElement(requirements),
new ValueRequirement(ValueRequirementNames.SPOT_RATE, new ComputationTargetRequirement(CurrencyMatrixResolver.TYPE, ExternalId.of(CurrencyMatrixResolver.IDENTIFIER_SCHEME, "Bar")),
ValueProperties.with(AbstractCurrencyMatrixSourcingFunction.SOURCE_CURRENCY_PROPERTY, "USD").with(AbstractCurrencyMatrixSourcingFunction.TARGET_CURRENCY_PROPERTY, "GBP").get()));
requirements = _function.getRequirements(_functionCompilationContext, target,
new ValueRequirement(ValueRequirementNames.SPOT_RATE, target.toSpecification(), ValueProperties.with(CurrencyMatrixLookupFunction.CURRENCY_MATRIX_NAME_PROPERTY, "Bar", "Foo").get()));
assertEquals(
Iterables.getOnlyElement(requirements),
new ValueRequirement(ValueRequirementNames.SPOT_RATE, new ComputationTargetRequirement(CurrencyMatrixResolver.TYPE, ExternalIdBundle.of(
ExternalId.of(CurrencyMatrixResolver.IDENTIFIER_SCHEME, "Foo"), ExternalId.of(CurrencyMatrixResolver.IDENTIFIER_SCHEME, "Bar"))),
ValueProperties.with(AbstractCurrencyMatrixSourcingFunction.SOURCE_CURRENCY_PROPERTY, "USD").with(AbstractCurrencyMatrixSourcingFunction.TARGET_CURRENCY_PROPERTY, "GBP").get()));
requirements = _function.getRequirements(_functionCompilationContext, target,
new ValueRequirement(ValueRequirementNames.SPOT_RATE, target.toSpecification(), ValueProperties.withAny(CurrencyMatrixLookupFunction.CURRENCY_MATRIX_NAME_PROPERTY).get()));
assertEquals(Iterables.getOnlyElement(requirements),
new ValueRequirement(ValueRequirementNames.SPOT_RATE, new ComputationTargetRequirement(CurrencyMatrixResolver.TYPE, ExternalId.of(CurrencyMatrixResolver.IDENTIFIER_SCHEME, "Foo")),
ValueProperties.with(AbstractCurrencyMatrixSourcingFunction.SOURCE_CURRENCY_PROPERTY, "USD").with(AbstractCurrencyMatrixSourcingFunction.TARGET_CURRENCY_PROPERTY, "GBP").get()));
}