Skip to content

Commit 32084ae

Browse files
Add enum values tests to RPCGenericTests
1 parent 47067b9 commit 32084ae

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/RPCGenericTests.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,22 @@ private boolean isDeprecated (AnnotatedElement element) {
518518
return false;
519519
}
520520

521+
private Field getEnumField(Class aClass, String elementName) {
522+
Field field = null;
523+
for (Object anEnum : EnumSet.allOf(aClass)) {
524+
if (anEnum.toString().equals(elementName)) {
525+
try {
526+
String value = ((Enum)anEnum).name();
527+
field = aClass.getField(value);
528+
break;
529+
} catch (NoSuchFieldException e) {
530+
e.printStackTrace();
531+
}
532+
}
533+
}
534+
return field;
535+
}
536+
521537
// This method returns the correct java reflection method in a specific class
522538
private Method getMethod(Class aClass, Parameter parameter, String methodName, boolean isGetter) throws NoSuchMethodException {
523539
Method method = null;
@@ -790,7 +806,7 @@ public void testEnums() {
790806
String errMsg = rpcName + " deprecation status does not match RPC spec" + ". \n";
791807
errors.add(errMsg);
792808
}
793-
809+
794810
// Loop through all elements for the current RPC and make sure everyone matches the RPC spec
795811
List<Element> elements = rpcAllParamsMapFromXml.get(rpcName).elements;
796812
for (int i = 0; i < elements.size(); i++) {
@@ -799,6 +815,17 @@ public void testEnums() {
799815
if (element.skip) {
800816
continue;
801817
}
818+
819+
Field field = getEnumField(aClass, element.name);
820+
if (field != null) {
821+
if (isDeprecated(field) != element.isDeprecated) {
822+
String errMsg = rpcName + "." + element.name + " deprecation status does not match RPC spec" + ". \n";
823+
errors.add(errMsg);
824+
}
825+
} else {
826+
String errMsg = rpcName + "." + element.name + " cannot be found in code" + ". \n";
827+
errors.add(errMsg);
828+
}
802829
}
803830
}
804831

0 commit comments

Comments
 (0)