Fix missing sorting of augmentations in AssertDataObjects
[mdsal.git] / binding / mdsal-binding-test-utils / src / main / java / org / opendaylight / mdsal / binding / testutils / XtendYangBeanGenerator.java
index fb12ea3e7da50d7ebaa59fcd3180dd13572429f0..b67c0176815611b6194624806de45858ea922539 100644 (file)
@@ -115,13 +115,16 @@ class XtendYangBeanGenerator extends XtendBeanGenerator {
         Optional<ClassToInstanceMap<Augmentation<?>>> optional = getAugmentations(bean);
         if (optional.isPresent()) {
             StringBuilder sb = new StringBuilder();
-            optional.get().forEach((klass, augmentation) -> {
-                sb.append("addAugmentation(");
-                sb.append(stringify(klass));
-                sb.append(", ");
-                sb.append(getNewBeanExpression(augmentation));
-                sb.append(")");
-            });
+            optional.get().entrySet().stream()
+                // We sort the augmentations by Class type, because the Map has unpredictable order:
+                .sorted((e1, e2) -> e1.getKey().getName().compareTo(e2.getKey().getName()))
+                .forEachOrdered(e -> {
+                    sb.append("addAugmentation(");
+                    sb.append(stringify(e.getKey()));
+                    sb.append(", ");
+                    sb.append(getNewBeanExpression(e.getValue()));
+                    sb.append(")");
+                });
             return sb;
         } else {
             return "";