/**
* Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.sesame.function.scenarios.marketdata;
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
import org.testng.annotations.Test;
import com.opengamma.id.ExternalId;
import com.opengamma.id.ExternalIdBundle;
import com.opengamma.util.test.TestGroup;
@Test(groups = TestGroup.UNIT)
public class MarketDataMatcherTest {
private static final String SCHEME = "scheme";
private static final String VALUE1 = "value1";
private static final String VALUE2 = "value2";
private static final String VALUE3 = "value3";
private static final ExternalId ID1 = ExternalId.of(SCHEME, VALUE1);
private static final ExternalId ID2 = ExternalId.of(SCHEME, VALUE2);
private static final ExternalId ID3 = ExternalId.of(SCHEME, VALUE3);
private static final ExternalIdBundle BUNDLE1 = ExternalIdBundle.of(MarketDataMatcherTest.SCHEME, MarketDataMatcherTest.VALUE1);
private static final ExternalIdBundle BUNDLE2 = ExternalIdBundle.of(SCHEME, VALUE2);
private static final ExternalIdBundle BUNDLE3 = ExternalIdBundle.of(SCHEME, VALUE3);
@Test
public void idEquals() {
MarketDataMatcher matcher = MarketDataMatcher.idEquals(SCHEME, VALUE1);
assertTrue(matcher.matches(BUNDLE1));
assertFalse(matcher.matches(BUNDLE2));
ExternalIdBundle id = ExternalIdBundle.of(ID1, ID2);
assertTrue(matcher.matches(id));
}
@Test
public void idsEqual() {
MarketDataMatcher matcher = MarketDataMatcher.idEquals(SCHEME, VALUE1, VALUE2);
assertTrue(matcher.matches(BUNDLE1));
assertTrue(matcher.matches(BUNDLE2));
assertFalse(matcher.matches(BUNDLE3));
assertTrue(matcher.matches(ExternalIdBundle.of(ID1, ID3)));
}
@Test
public void idLike() {
MarketDataMatcher valMatcher = MarketDataMatcher.idLike(SCHEME, "val*");
MarketDataMatcher valueMatcher = MarketDataMatcher.idLike(SCHEME, "value?");
MarketDataMatcher oneMatcher = MarketDataMatcher.idLike(SCHEME, "*1");
ExternalId otherId = ExternalId.of(SCHEME, "otherValue");
assertTrue(valMatcher.matches(BUNDLE1));
assertTrue(valMatcher.matches(BUNDLE2));
assertTrue(valMatcher.matches(BUNDLE3));
assertTrue(valMatcher.matches(ExternalIdBundle.of(otherId, ID1)));
assertFalse(valMatcher.matches(ExternalIdBundle.of(otherId)));
assertTrue(valueMatcher.matches(BUNDLE1));
assertTrue(valueMatcher.matches(BUNDLE2));
assertTrue(valueMatcher.matches(BUNDLE3));
assertTrue(valueMatcher.matches(ExternalIdBundle.of(otherId, ID1)));
assertFalse(valueMatcher.matches(ExternalIdBundle.of(otherId)));
assertTrue(oneMatcher.matches(BUNDLE1));
assertFalse(oneMatcher.matches(BUNDLE2));
assertFalse(oneMatcher.matches(BUNDLE3));
assertTrue(oneMatcher.matches(ExternalIdBundle.of(ID1, ID2)));
assertFalse(oneMatcher.matches(ExternalIdBundle.of(ID3, ID2)));
}
}