package org.edx.mobile.test.http; import org.edx.mobile.view.ExtensionRegistry; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; import static org.mockito.Mockito.mock; public class ExtensionRegistryTest { @Test public void forType_withNoExtensions_returnsEmptyRegistry() { final ExtensionRegistry extensionRegistry = new ExtensionRegistry(); assertThat(extensionRegistry.forType(TestExtension.class).iterator().hasNext(), is(false)); } @Test public void forType_withAddedExtension_returnsRegistryWithAddedExtension() { final ExtensionRegistry extensionRegistry = new ExtensionRegistry(); final TestExtension extension = mock(TestExtension.class); extensionRegistry.forType(TestExtension.class).add(extension); assertThat(extensionRegistry.forType(TestExtension.class).iterator().hasNext(), is(true)); assertThat(extensionRegistry.forType(TestExtension.class).iterator().next(), is(extension)); } @Test public void forType_withExtensionOfAlternateType_returnsEmptyRegistry() { final ExtensionRegistry extensionRegistry = new ExtensionRegistry(); extensionRegistry.forType(AlternateTestExtension.class).add(mock(AlternateTestExtension.class)); assertThat(extensionRegistry.forType(TestExtension.class).iterator().hasNext(), is(false)); } public interface TestExtension extends ExtensionRegistry.Extension { } public interface AlternateTestExtension extends ExtensionRegistry.Extension { } }