use of com.alipay.sofa.ark.container.testdata.impl.TestObjectB in project sofa-ark by alipay.
the class RegistryServiceTest method testFilter.
@Test
public void testFilter() {
PluginModel pluginA = new PluginModel();
pluginA.setPluginName("plugin A").setPriority(10);
PluginModel pluginB = new PluginModel();
pluginB.setPluginName("plugin B").setPriority(1);
pluginManagerService.registerPlugin(pluginA);
pluginManagerService.registerPlugin(pluginB);
registryService.publishService(ITest.class, new TestObjectA(), new PluginServiceProvider(pluginA));
registryService.publishService(ITest.class, new TestObjectB(), new PluginServiceProvider(pluginB));
registryService.publishService(ITest.class, new TestObjectC());
Assert.assertEquals(pluginB.getPluginName(), registryService.referenceService(ITest.class).getServiceMetadata().getServiceProvider().getServiceProviderName());
Assert.assertEquals(pluginA.getPluginName(), registryService.referenceService(ITest.class, new PluginNameServiceFilter(pluginA.getPluginName())).getServiceMetadata().getServiceProvider().getServiceProviderName());
Assert.assertNull(registryService.referenceService(ITest.class, new PluginNameServiceFilter("not exist")));
Assert.assertEquals("ArkContainer", registryService.referenceService(ITest.class, new ServiceFilter() {
@Override
public boolean match(ServiceProvider serviceProvider) {
return ServiceProviderType.ARK_CONTAINER.equals(serviceProvider.getServiceProviderType());
}
}).getServiceMetadata().getServiceProvider().getServiceProviderName());
}
use of com.alipay.sofa.ark.container.testdata.impl.TestObjectB in project sofa-ark by alipay.
the class RegistryServiceTest method testPublishDuplicateService.
@Test
public void testPublishDuplicateService() throws Exception {
registryService.publishService(ITest.class, new TestObjectA());
registryService.publishService(ITest.class, new TestObjectB());
// 只有第一个服务发布成功
Assert.assertEquals(1, registryService.referenceServices(ITest.class).size());
Assert.assertEquals(TestObjectA.OUTPUT, registryService.referenceService(ITest.class).getService().test());
}
use of com.alipay.sofa.ark.container.testdata.impl.TestObjectB in project sofa-ark by alipay.
the class ServiceRegistrationTest method testFilter.
@Test
@SuppressWarnings("unchecked")
public void testFilter() {
final PluginModel pluginA = new PluginModel();
pluginA.setPluginName("plugin A").setPriority("10");
PluginModel pluginB = new PluginModel();
pluginB.setPluginName("plugin B").setPriority("1");
pluginManagerService.registerPlugin(pluginA);
pluginManagerService.registerPlugin(pluginB);
registryService.publishService(ITest.class, new TestObjectA(), new PluginServiceProvider(pluginA));
registryService.publishService(ITest.class, new TestObjectB(), new PluginServiceProvider(pluginB));
registryService.publishService(ITest.class, new TestObjectC(), new ContainerServiceProvider());
List<ServiceReference> references = registryService.referenceServices(new DefaultServiceFilter().setServiceInterface(ITest.class).setProviderType(ServiceProviderType.ARK_PLUGIN));
Assert.assertTrue(2 == references.size());
PluginServiceProvider provider = (PluginServiceProvider) references.get(0).getServiceMetadata().getServiceProvider();
Assert.assertEquals(pluginB.getPluginName(), provider.getPluginName());
references = registryService.referenceServices(new ServiceFilter() {
@Override
public boolean match(ServiceReference serviceReference) {
ServiceProvider serviceProvider = serviceReference.getServiceMetadata().getServiceProvider();
if (serviceProvider instanceof PluginServiceProvider) {
if (((PluginServiceProvider) serviceProvider).getPluginName().equals(pluginA.getPluginName())) {
return true;
}
}
return false;
}
});
Assert.assertTrue(1 == references.size());
provider = (PluginServiceProvider) references.get(0).getServiceMetadata().getServiceProvider();
Assert.assertEquals(pluginA.getPluginName(), provider.getPluginName());
references = registryService.referenceServices(new DefaultServiceFilter().setServiceInterface(ITest.class));
Assert.assertTrue(3 == references.size());
references = registryService.referenceServices(new DefaultServiceFilter().setProviderType(ServiceProviderType.ARK_CONTAINER).setServiceInterface(ITest.class));
Assert.assertTrue(1 == references.size());
Assert.assertEquals("TestObject C", ((TestObjectC) references.get(0).getService()).test());
}
use of com.alipay.sofa.ark.container.testdata.impl.TestObjectB in project sofa-ark by alipay.
the class RegistryServiceTest method testContainerService.
@Test
public void testContainerService() {
registryService.publishService(ITest.class, new TestObjectA(), new ArkContainerServiceProvider("test1", 20000));
registryService.publishService(ITest.class, new TestObjectB(), new ArkContainerServiceProvider("test2", 100));
registryService.publishService(ITest.class, new TestObjectC());
Assert.assertEquals(TestObjectB.OUTPUT, registryService.referenceService(ITest.class).getService().test());
Assert.assertEquals(3, registryService.referenceServices(ITest.class).size());
}
use of com.alipay.sofa.ark.container.testdata.impl.TestObjectB in project sofa-ark by alipay.
the class ServiceRegistrationTest method testPublishDuplicateService.
@Test
@SuppressWarnings("unchecked")
public void testPublishDuplicateService() {
registryService.publishService(ITest.class, new TestObjectA(), new ContainerServiceProvider());
registryService.publishService(ITest.class, new TestObjectB(), new ContainerServiceProvider());
// 只有第一个服务发布成功
Assert.assertEquals(1, registryService.referenceServices(ITest.class).size());
Assert.assertEquals(TestObjectA.OUTPUT, registryService.referenceService(ITest.class).getService().test());
registryService.unPublishServices(new DefaultServiceFilter().setServiceInterface(ITest.class));
Assert.assertEquals(0, registryService.referenceServices(ITest.class).size());
registryService.publishService(ITest.class, new TestObjectA(), "testA", new ContainerServiceProvider());
registryService.publishService(ITest.class, new TestObjectB(), "testB", new ContainerServiceProvider());
Assert.assertEquals(2, registryService.referenceServices(new DefaultServiceFilter().setServiceInterface(ITest.class)).size());
Assert.assertEquals(TestObjectA.OUTPUT, registryService.referenceService(ITest.class, "testA").getService().test());
Assert.assertEquals(TestObjectB.OUTPUT, registryService.referenceService(ITest.class, "testB").getService().test());
int c = registryService.unPublishServices(new DefaultServiceFilter().setUniqueId("testA"));
Assert.assertTrue(c == 1);
c = registryService.unPublishServices(new DefaultServiceFilter().setProviderType(ServiceProviderType.ARK_CONTAINER).setServiceInterface(ITest.class));
Assert.assertTrue(c == 1);
Assert.assertEquals(0, registryService.referenceServices(ITest.class).size());
}
Aggregations