@Test public void testRegisterService() { SimpleServiceManager serviceManager = new SimpleServiceManager(this.manager); serviceManager.setProvider(this.testPlugin, TestInterface.class, new TestImplCow()); Optional<TestInterface> returned = serviceManager.provide(TestInterface.class); assertTrue(returned.isPresent()); assertEquals("moo", returned.get().bark()); assertEquals("moo", serviceManager.provideUnchecked(TestInterface.class).bark()); }
@Test public void testGetProviderRegistration() { TestImplCow testImplCow = new TestImplCow(); SimpleServiceManager serviceManager = new SimpleServiceManager(this.manager); serviceManager.setProvider(this.testPlugin, TestInterface.class, testImplCow); ProviderRegistration<TestInterface> registration = serviceManager.getRegistration(TestInterface.class).get(); assertEquals(TestInterface.class, registration.getService()); assertEquals(testImplCow, registration.getProvider()); assertEquals(this.testPluginContainer, registration.getPlugin()); }
@Test public void testDuplicateRegistrationAllowed() { SimpleServiceManager serviceManager = new SimpleServiceManager(this.manager); serviceManager.setProvider(this.testPlugin, TestInterface.class, new TestImplCow()); serviceManager.setProvider(this.testPlugin, TestInterface.class, new TestImplDog()); assertEquals("woof", serviceManager.provideUnchecked(TestInterface.class).bark()); }