### Question:
ComponentInfo { public List<String> methodParamNamesList() { String[] parameterNames = ((MethodSignature) this.joinPoint.getSignature()).getParameterNames(); return parameterNames != null ? Arrays.asList(parameterNames) : Collections.emptyList(); } ComponentInfo(ComponentType componentType, ProceedingJoinPoint joinPoint); ComponentType type(); String classSimpleName(); String classCanonicalName(); String methodName(); List<Class> methodParamTypesList(); List<String> methodParamNamesList(); List<Object> methodParamValuesList(); String methodReturnType(); long totalExecutionTime(); void setTotalExecutionTime(long totalExecutionTime); int totalEmittedItems(); void setTotalEmittedItems(int totalEmittedItems); boolean isSynchronous(); String subscribeOnScheduler(); void setSubscribeOnScheduler(String schedulerName); String subscribeOnThread(); void setSubscribeOnThread(String subscribeOnThread); String observeOnScheduler(); void setObserveOnScheduler(String schedulerName); String observeOnThread(); void setObserveOnThread(String observeOnThread);  }### Answer:
@Test public void methodParamNamesList() { String[] nameArray = new String[]{"name"}; when(signature.getParameterNames()).thenReturn(nameArray).thenReturn(null); assertEquals(nameArray[0], componentInfo.methodParamNamesList().get(0)); assertEquals(0, componentInfo.methodParamTypesList().size()); }