use of com.alipay.sofa.runtime.api.client.param.ReferenceParam in project sofa-boot by sofastack.
the class ClientFactoryTest method testWithBindingParam.
/**
* test WithBindingParam in ReferenceClientImpl and ServiceClientImpl
*/
@Test
public void testWithBindingParam() {
JvmBindingParam jvmBindingParam = new JvmBindingParam();
jvmBindingParam.setSerialize(true);
ServiceParam serviceParam = new ServiceParam();
serviceParam.setInstance(new DefaultSampleService("WithBindingParam"));
serviceParam.setInterfaceType(SampleService.class);
serviceParam.setUniqueId("withBindingParam");
serviceParam.addBindingParam(jvmBindingParam);
serviceClient.service(serviceParam);
try {
Thread.sleep(2000);
} catch (Exception e) {
// ignore
}
ReferenceParam<SampleService> referenceParam = new ReferenceParam<>();
referenceParam.setInterfaceType(SampleService.class);
referenceParam.setUniqueId("withBindingParam");
referenceParam.setBindingParam(jvmBindingParam);
SampleService service = referenceClient.reference(referenceParam);
Assert.assertNotNull(service);
Assert.assertEquals("WithBindingParam", service.service());
}
use of com.alipay.sofa.runtime.api.client.param.ReferenceParam in project sofa-boot by alipay.
the class ClientFactoryTest method testRemoveServiceOrRemoveReference.
/**
* test removeService and removeReference methods in ReferenceClientImpl and ServiceClientImpl
*/
@Test
public void testRemoveServiceOrRemoveReference() {
// without unique id
ServiceParam serviceParam = new ServiceParam();
serviceParam.setInstance(new PrivateServiceImpl());
serviceParam.setInterfaceType(PrivateService.class);
serviceClient.service(serviceParam);
// with unique id
serviceParam.setUniqueId("uniqueId");
serviceClient.service(serviceParam);
try {
Thread.sleep(2000);
} catch (Exception e) {
// ignore
}
// reference without unique id
ReferenceParam<PrivateService> referenceParam = new ReferenceParam<>();
referenceParam.setInterfaceType(PrivateService.class);
Assert.assertEquals(PrivateServiceImpl.class.getName(), referenceClient.reference(referenceParam).service());
// reference with unique id
referenceParam.setUniqueId("uniqueId");
Assert.assertEquals(PrivateServiceImpl.class.getName(), referenceClient.reference(referenceParam).service());
// remove Reference
referenceClient.removeReference(PrivateService.class);
referenceClient.removeReference(referenceParam);
// remove Service
try {
serviceClient.removeService(PrivateService.class, -1);
} catch (IllegalArgumentException ex) {
Assert.assertTrue(ex.getMessage().contains("Argument delay must be a positive integer or zero"));
}
serviceClient.removeService(PrivateService.class, "uniqueId", 0);
}
use of com.alipay.sofa.runtime.api.client.param.ReferenceParam in project sofa-boot by alipay.
the class ClientFactoryTest method testWithBindingParam.
/**
* test WithBindingParam in ReferenceClientImpl and ServiceClientImpl
*/
@Test
public void testWithBindingParam() {
JvmBindingParam jvmBindingParam = new JvmBindingParam();
jvmBindingParam.setSerialize(true);
ServiceParam serviceParam = new ServiceParam();
serviceParam.setInstance(new DefaultSampleService("WithBindingParam"));
serviceParam.setInterfaceType(SampleService.class);
serviceParam.setUniqueId("withBindingParam");
serviceParam.addBindingParam(jvmBindingParam);
serviceClient.service(serviceParam);
try {
Thread.sleep(2000);
} catch (Exception e) {
// ignore
}
ReferenceParam<SampleService> referenceParam = new ReferenceParam<>();
referenceParam.setInterfaceType(SampleService.class);
referenceParam.setUniqueId("withBindingParam");
referenceParam.setBindingParam(jvmBindingParam);
SampleService service = referenceClient.reference(referenceParam);
Assert.assertNotNull(service);
Assert.assertEquals("WithBindingParam", service.service());
}
use of com.alipay.sofa.runtime.api.client.param.ReferenceParam in project sofa-boot by sofastack.
the class ClientFactoryTest method testRemoveServiceOrRemoveReference.
/**
* test removeService and removeReference methods in ReferenceClientImpl and ServiceClientImpl
*/
@Test
public void testRemoveServiceOrRemoveReference() {
// without unique id
ServiceParam serviceParam = new ServiceParam();
serviceParam.setInstance(new PrivateServiceImpl());
serviceParam.setInterfaceType(PrivateService.class);
serviceClient.service(serviceParam);
// with unique id
serviceParam.setUniqueId("uniqueId");
serviceClient.service(serviceParam);
try {
Thread.sleep(2000);
} catch (Exception e) {
// ignore
}
// reference without unique id
ReferenceParam<PrivateService> referenceParam = new ReferenceParam<>();
referenceParam.setInterfaceType(PrivateService.class);
Assert.assertEquals(PrivateServiceImpl.class.getName(), referenceClient.reference(referenceParam).service());
// reference with unique id
referenceParam.setUniqueId("uniqueId");
Assert.assertEquals(PrivateServiceImpl.class.getName(), referenceClient.reference(referenceParam).service());
// remove Reference
referenceClient.removeReference(PrivateService.class);
referenceClient.removeReference(referenceParam);
// remove Service
try {
serviceClient.removeService(PrivateService.class, -1);
} catch (IllegalArgumentException ex) {
Assert.assertTrue(ex.getMessage().contains("Argument delay must be a positive integer or zero"));
}
serviceClient.removeService(PrivateService.class, "uniqueId", 0);
}
Aggregations