You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2021/12/16 23:45:05 UTC

[nifi] branch main updated: NIFI-9495 Corrected BulletinMergerTest using static timestamps

This is an automated email from the ASF dual-hosted git repository.

mattyb149 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 784ee68  NIFI-9495 Corrected BulletinMergerTest using static timestamps
784ee68 is described below

commit 784ee680d54bc2f9cda182762db1349a312e0c4e
Author: exceptionfactory <ex...@apache.org>
AuthorDate: Thu Dec 16 13:56:44 2021 -0600

    NIFI-9495 Corrected BulletinMergerTest using static timestamps
    
    - Replaced JUnit 4 and TestNG references with JUnit 5
    - Added test method for bulletin sorting
    
    Signed-off-by: Matthew Burgess <ma...@apache.org>
    
    This closes #5607
---
 .../nifi/cluster/manager/BulletinMergerTest.java   | 77 +++++++++++++---------
 1 file changed, 45 insertions(+), 32 deletions(-)

diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/BulletinMergerTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/BulletinMergerTest.java
index cb0d181..5b79d27 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/BulletinMergerTest.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/BulletinMergerTest.java
@@ -19,68 +19,81 @@ package org.apache.nifi.cluster.manager;
 import org.apache.nifi.cluster.protocol.NodeIdentifier;
 import org.apache.nifi.web.api.dto.BulletinDTO;
 import org.apache.nifi.web.api.entity.BulletinEntity;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Date;
+import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
 import static org.apache.nifi.cluster.manager.BulletinMerger.ALL_NODES_MESSAGE;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class BulletinMergerTest {
+    private static final Date FIRST_TIMESTAMP = new Date(86400);
 
-    long bulletinId = 0;
+    private static final Date SECOND_TIMESTAMP = new Date(178000);
 
-    private BulletinEntity createBulletin(final String message) {
+    private static final NodeIdentifier FIRST_NODE = new NodeIdentifier("node-1", "host-1", 8080, "host-address-1", 8888, null, null, null, false);
+
+    private static final NodeIdentifier SECOND_NODE = new NodeIdentifier("node-2", "host-2", 8080, "host-address-2", 8888, null, null, null, false);
+
+    private long bulletinId = 0;
+
+    private BulletinEntity createBulletin(final String message, final Date timestamp, final boolean readable) {
         final BulletinDTO bulletin = new BulletinDTO();
         bulletin.setId(bulletinId++);
         bulletin.setMessage(message);
-        bulletin.setTimestamp(new Date());
+        bulletin.setTimestamp(timestamp);
 
         final BulletinEntity entity = new BulletinEntity();
         entity.setId(bulletin.getId());
         entity.setTimestamp(bulletin.getTimestamp());
-        entity.setCanRead(true);
+        entity.setCanRead(readable);
         entity.setBulletin(bulletin);
 
         return entity;
     }
 
     @Test
-    public void mergeBulletins() throws Exception {
-        final BulletinEntity bulletinEntity1 = createBulletin("This is bulletin 1");
-        final BulletinEntity bulletinEntity2 = createBulletin("This is bulletin 2");
-
-        final BulletinEntity unauthorizedBulletin = new BulletinEntity();
-        unauthorizedBulletin.setId(bulletinId++);
-        unauthorizedBulletin.setTimestamp(new Date());
-        unauthorizedBulletin.setCanRead(false);
-
-        final BulletinEntity copyOfBulletin1 = createBulletin("This is bulletin 1");
-
-        final NodeIdentifier node1 = new NodeIdentifier("node-1", "host-1", 8080, "host-1", 19998, null, null, null, false);
-        final NodeIdentifier node2 = new NodeIdentifier("node-2", "host-2", 8081, "host-2", 19999, null, null, null, false);
+    public void testMergeBulletins() {
+        final BulletinEntity bulletinEntity1 = createBulletin("This is bulletin 1", FIRST_TIMESTAMP, true);
+        final BulletinEntity bulletinEntity2 = createBulletin("This is bulletin 2", FIRST_TIMESTAMP,true);
+        final BulletinEntity unauthorizedBulletin = createBulletin("Protected Bulletin", FIRST_TIMESTAMP, false);
+        final List<BulletinEntity> bulletins = Arrays.asList(bulletinEntity1, bulletinEntity2, unauthorizedBulletin);
 
         final Map<NodeIdentifier, List<BulletinEntity>> nodeMap = new LinkedHashMap<>();
-        nodeMap.put(node1, new ArrayList<>());
-        nodeMap.put(node2, new ArrayList<>());
+        nodeMap.put(FIRST_NODE, bulletins);
+        nodeMap.put(SECOND_NODE, Collections.singletonList(bulletinEntity1));
 
-        nodeMap.get(node1).add(bulletinEntity1);
-        nodeMap.get(node1).add(bulletinEntity2);
-        nodeMap.get(node1).add(unauthorizedBulletin);
+        final List<BulletinEntity> merged = BulletinMerger.mergeBulletins(nodeMap, nodeMap.size());
 
-        nodeMap.get(node2).add(copyOfBulletin1);
+        assertEquals(merged.size(), bulletins.size());
+        assertTrue(merged.contains(bulletinEntity1), "First Bulletin not found");
+        assertTrue(merged.contains(bulletinEntity2), "Second Bulletin not found");
+        assertTrue(merged.contains(unauthorizedBulletin), "Protected Bulletin not found");
 
-        final List<BulletinEntity> bulletinEntities = BulletinMerger.mergeBulletins(nodeMap, nodeMap.size());
-        assertEquals(bulletinEntities.size(), 3);
-        assertTrue(bulletinEntities.contains(bulletinEntity1));
         assertEquals(bulletinEntity1.getNodeAddress(), ALL_NODES_MESSAGE);
-        assertTrue(bulletinEntities.contains(bulletinEntity2));
-        assertTrue(bulletinEntities.contains(unauthorizedBulletin));
     }
 
+    @Test
+    public void testMergeBulletinsSortedOldestNewest() {
+        final BulletinEntity newerBulletin = createBulletin("Second Message", SECOND_TIMESTAMP, true);
+        final BulletinEntity olderBulletin = createBulletin("First Message", FIRST_TIMESTAMP, true);
+        final List<BulletinEntity> bulletins = Arrays.asList(newerBulletin, olderBulletin);
+
+        final Map<NodeIdentifier, List<BulletinEntity>> nodeMap = new LinkedHashMap<>();
+        nodeMap.put(FIRST_NODE, bulletins);
+
+        final List<BulletinEntity> merged = BulletinMerger.mergeBulletins(nodeMap, nodeMap.size());
+        assertEquals(merged.size(), bulletins.size());
+
+        final Iterator<BulletinEntity> mergedBulletins = merged.iterator();
+        assertEquals(olderBulletin, mergedBulletins.next(), "Older Bulletin not matched");
+        assertEquals(newerBulletin, mergedBulletins.next(), "Newer Bulletin not matched");
+    }
 }