/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.view;
import static org.testng.Assert.assertEquals;
import java.util.Arrays;
import java.util.Collections;
import org.mockito.Mockito;
import org.testng.annotations.Test;
import com.google.common.collect.ImmutableSet;
import com.opengamma.core.config.ConfigSource;
import com.opengamma.core.config.impl.ConfigItem;
import com.opengamma.id.ObjectId;
import com.opengamma.id.UniqueId;
import com.opengamma.id.VersionCorrection;
import com.opengamma.util.test.TestGroup;
/**
* Tests the {@link ConfigDocumentWatchSetProvider} class.
*/
@Test(groups = TestGroup.UNIT)
public class ConfigDocumentWatchSetProviderTest {
public void testEmptyWatchSet() {
final ConfigDocumentWatchSetProvider provider = new ConfigDocumentWatchSetProvider(Mockito.mock(ConfigSource.class));
assertEquals(provider.getAdditionalWatchSet(Collections.<ObjectId>emptySet()), Collections.emptySet());
}
public void testMissingClass() {
final ConfigDocumentWatchSetProvider provider = new ConfigDocumentWatchSetProvider(Mockito.mock(ConfigSource.class));
assertEquals(provider.getAdditionalWatchSet(Collections.<ObjectId>singleton(ObjectId.of(ConfigDocumentWatchSetProvider.CONFIG_TYPE_SCHEME, "ClassDoesn'tExist"))), Collections.emptySet());
}
public void testInvalidWatches() {
final ConfigDocumentWatchSetProvider provider = new ConfigDocumentWatchSetProvider(Mockito.mock(ConfigSource.class));
assertEquals(provider.getAdditionalWatchSet(Collections.<ObjectId>singleton(ObjectId.of("Foo", "Bar"))), Collections.emptySet());
}
private ConfigItem<ConfigDocumentWatchSetProviderTest> configItem(final int id) {
final ConfigItem<ConfigDocumentWatchSetProviderTest> item = ConfigItem.of(null);
item.setType(ConfigDocumentWatchSetProviderTest.class);
item.setUniqueId(UniqueId.of("Foo", Integer.toString(id), "V"));
return item;
}
public void testWatches() {
final ConfigSource configSource = Mockito.mock(ConfigSource.class);
final ConfigDocumentWatchSetProvider provider = new ConfigDocumentWatchSetProvider(configSource);
Mockito.when(configSource.getAll(ConfigDocumentWatchSetProviderTest.class, VersionCorrection.LATEST)).thenReturn(
Arrays.<ConfigItem<ConfigDocumentWatchSetProviderTest>>asList(configItem(1), configItem(2)));
assertEquals(provider.getAdditionalWatchSet(Collections.<ObjectId>singleton(ObjectId.of(ConfigDocumentWatchSetProvider.CONFIG_TYPE_SCHEME, ConfigDocumentWatchSetProviderTest.class.getName()))),
ImmutableSet.of(ObjectId.of("Foo", "1"), ObjectId.of("Foo", "2")));
}
}