### Question:
ClientServiceRegistration extends AbstractServiceRegistration { @Override public void introduceServiceToEV(ExecutionVenue ev, ServiceRegistrar serviceRegistrar, CompoundExecutableResolver compoundExecutableResolver) { setService(NULL_SERVICE); super.introduceServiceToEV(ev, serviceRegistrar, compoundExecutableResolver); }  @Override void introduceServiceToEV(ExecutionVenue ev, ServiceRegistrar serviceRegistrar, CompoundExecutableResolver compoundExecutableResolver); @Override void introduceServiceToTransports(Iterator<? extends BindingDescriptorRegistrationListener> transports);  }### Answer:
@Test public void testIntroduceNoNamespace() { cut.introduceServiceToEV(ev, ev, compoundExecutableResolver); verify(compoundExecutableResolver).registerExecutableResolver(eq((String)null), eq(executableResolver)); verify((ServiceRegistrar)ev).registerService(eq((String)null), eq(serviceDefinition), any(Service.class), eq(compoundExecutableResolver)); verify(ev, never()).execute(any(ExecutionContext.class), any(OperationKey.class), any(Object[].class), any(ExecutionObserver.class), any(TimeConstraints.class)); }
@Test public void testIntroduceWithNamespace() { cut.setNamespace("foo"); cut.introduceServiceToEV(ev, ev, compoundExecutableResolver); verify(compoundExecutableResolver).registerExecutableResolver(eq("foo"), eq(executableResolver)); verify((ServiceRegistrar)ev).registerService(eq("foo"), eq(serviceDefinition), any(Service.class), eq(compoundExecutableResolver)); verify(ev, never()).execute(any(ExecutionContext.class), any(OperationKey.class), any(Object[].class), any(ExecutionObserver.class), any(TimeConstraints.class)); }
@Test public void testSettingServiceBindingDoesNothing() { cut.setBindingDescriptors(new WhingeingSet<BindingDescriptor>()); cut.introduceServiceToEV(ev, ev, compoundExecutableResolver); }