1 package org.opendaylight.controller.sal.binding.generator.impl;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertTrue;
8 import org.opendaylight.controller.sal.binding.model.api.GeneratedType;
9 import org.opendaylight.controller.sal.binding.model.api.MethodSignature;
10 import org.opendaylight.controller.sal.binding.model.api.ParameterizedType;
11 import org.opendaylight.controller.sal.binding.model.api.Type;
13 public class SupportTestUtil {
15 public static void containsSignatures(final GeneratedType genType,
16 final MethodSignaturePattern... searchedSignsWhat) {
17 final List<MethodSignature> searchedSignsIn = genType.getMethodDefinitions();
18 containsSignatures(searchedSignsIn, searchedSignsWhat);
21 public static void containsSignatures(final List<MethodSignature> searchedSignsIn,
22 final MethodSignaturePattern... searchedSignsWhat) {
23 if (searchedSignsIn == null) {
24 throw new IllegalArgumentException("List of method signatures in which should be searched can't be null");
26 if (searchedSignsWhat == null) {
27 throw new IllegalArgumentException("Array of method signatures which should be searched can't be null");
30 for (MethodSignaturePattern searchedSignWhat : searchedSignsWhat) {
31 boolean nameMatchFound = false;
32 String typeNameFound = "";
33 for (MethodSignature searchedSignIn : searchedSignsIn) {
34 if (searchedSignWhat.getName().equals(searchedSignIn.getName())) {
35 nameMatchFound = true;
36 typeNameFound = resolveFullNameOfReturnType(searchedSignIn.getReturnType());
37 if (searchedSignWhat.getType().equals(typeNameFound)) {
42 assertTrue("Method " + searchedSignWhat.getName() + " wasn't found.", nameMatchFound);
43 assertEquals("Return type in method " + searchedSignWhat.getName() + " doesn't match expected type ",
44 searchedSignWhat.getType(), typeNameFound);
49 public static String resolveFullNameOfReturnType(final Type type) {
50 final StringBuilder nameBuilder = new StringBuilder();
51 if (type instanceof ParameterizedType) {
52 nameBuilder.append(type.getName() + "<");
53 ParameterizedType parametrizedTypes = (ParameterizedType) type;
54 for (Type parametrizedType : parametrizedTypes.getActualTypeArguments()) {
55 nameBuilder.append(parametrizedType.getName() + ",");
57 if (nameBuilder.charAt(nameBuilder.length() - 1) == ',') {
58 nameBuilder.deleteCharAt(nameBuilder.length() - 1);
60 nameBuilder.append(">");
62 nameBuilder.append(type.getName());
64 return nameBuilder.toString();
67 public static void containsInterface(String interfaceNameSearched, GeneratedType genType) {
68 List<Type> caseCImplements = genType.getImplements();
69 boolean interfaceFound = false;
70 for (Type caseCImplement : caseCImplements) {
71 String interfaceName = resolveFullNameOfReturnType(caseCImplement);
72 if (interfaceName.equals(interfaceNameSearched)) {
73 interfaceFound = true;
77 assertTrue("Generated type " + genType.getName() + " doesn't implement inrerface " + interfaceNameSearched,