diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/att/nsa/dmaapMMAgent/MirrorMakerAgent.java | 111 | ||||
-rw-r--r-- | src/test/java/com/att/nsa/dmaapMMAgent/TestMirrorMakerAgent.java | 121 |
2 files changed, 163 insertions, 69 deletions
diff --git a/src/main/java/com/att/nsa/dmaapMMAgent/MirrorMakerAgent.java b/src/main/java/com/att/nsa/dmaapMMAgent/MirrorMakerAgent.java index 71bd85c..a80d5b9 100644 --- a/src/main/java/com/att/nsa/dmaapMMAgent/MirrorMakerAgent.java +++ b/src/main/java/com/att/nsa/dmaapMMAgent/MirrorMakerAgent.java @@ -52,7 +52,7 @@ import com.google.gson.internal.LinkedTreeMap; import com.sun.org.apache.xerces.internal.impl.dtd.models.CMAny; import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; -public class MirrorMakerAgent {/* +public class MirrorMakerAgent { static final Logger logger = Logger.getLogger(MirrorMakerAgent.class); Properties mirrorMakerProperties = new Properties(); ListMirrorMaker mirrorMakers = null; @@ -62,6 +62,7 @@ public class MirrorMakerAgent {/* String topicname = ""; String mechid = ""; String password = ""; + public boolean exitLoop=false; private static String secret = "utdfpWlgyDQ2ZB8SLVRtmN834I1JcT9J"; public static void main(String[] args) { @@ -110,7 +111,7 @@ public class MirrorMakerAgent {/* loadProperties(); input = null; try { - input = new FileInputStream(kafkahome + "/bin/kafka-run-class.sh"); + /*input = new FileInputStream(kafkahome + "/bin/kafka-run-class.sh");*/ if(false) { throw new IOException(); } @@ -227,7 +228,7 @@ public class MirrorMakerAgent {/* // System.out.println(g.toJson(mirrorMakers)); } - private String subscribeTopic(String timeout) { + public String subscribeTopic(String timeout) { String response = ""; try { String requestURL = this.topicURL + "/events/" + this.topicname + "/mirrormakeragent/1?timeout=" + timeout @@ -260,7 +261,7 @@ public class MirrorMakerAgent {/* return null; } - private String publishTopic(String message) { + public String publishTopic(String message) { try { String requestURL = this.topicURL + "/events/" + this.topicname; String authString = this.mechid + ":" + this.password; @@ -290,7 +291,7 @@ public class MirrorMakerAgent {/* } } - private void readAgentTopic() { + public void readAgentTopic() { try { int connectionattempt = 0; while (true) { @@ -305,49 +306,7 @@ public class MirrorMakerAgent {/* // Cast the 1st item (since limit=1 and see the type of // object - if (object.get("createMirrorMaker") != null) { - logger.info("Received createMirrorMaker request from topic"); - CreateMirrorMaker m = g.fromJson(topicMessage, CreateMirrorMaker.class); - createMirrorMaker(m.getCreateMirrorMaker()); - checkAgentProcess(); - mirrorMakers.setMessageID(m.getMessageID()); - publishTopic(g.toJson(mirrorMakers)); - mirrorMakers.setMessageID(""); - } else if (object.get("updateMirrorMaker") != null) { - logger.info("Received updateMirrorMaker request from topic"); - UpdateMirrorMaker m = g.fromJson(topicMessage, UpdateMirrorMaker.class); - updateMirrorMaker(m.getUpdateMirrorMaker()); - checkAgentProcess(); - mirrorMakers.setMessageID(m.getMessageID()); - publishTopic(g.toJson(mirrorMakers)); - mirrorMakers.setMessageID(""); - } else if (object.get("deleteMirrorMaker") != null) { - logger.info("Received deleteMirrorMaker request from topic"); - DeleteMirrorMaker m = g.fromJson(topicMessage, DeleteMirrorMaker.class); - deleteMirrorMaker(m.getDeleteMirrorMaker()); - checkAgentProcess(); - mirrorMakers.setMessageID(m.getMessageID()); - publishTopic(g.toJson(mirrorMakers)); - mirrorMakers.setMessageID(""); - } else if (object.get("listAllMirrorMaker") != null) { - logger.info("Received listALLMirrorMaker request from topic"); - checkAgentProcess(); - mirrorMakers.setMessageID((String) object.get("messageID")); - publishTopic(g.toJson(mirrorMakers)); - mirrorMakers.setMessageID(""); - } else if (object.get("updateWhiteList") != null) { - logger.info("Received updateWhiteList request from topic"); - UpdateWhiteList m = g.fromJson(topicMessage, UpdateWhiteList.class); - updateWhiteList(m.getUpdateWhiteList()); - checkAgentProcess(); - mirrorMakers.setMessageID(m.getMessageID()); - publishTopic(g.toJson(mirrorMakers)); - mirrorMakers.setMessageID(""); - } else if (object.get("listMirrorMaker") != null) { - logger.info("Received listMirrorMaker from topic, skipping messages"); - } else { - logger.info("Received unknown request from topic"); - } + readAgent(object, topicMessage); } catch (Exception ex) { connectionattempt++; if (connectionattempt > 5) { @@ -363,13 +322,65 @@ public class MirrorMakerAgent {/* connectionattempt = 0; checkAgentProcess(); } - + if(exitLoop){ + break; + } } } catch (Exception e) { logger.error("Exception at readAgentTopic : " + e); } } + + public void readAgent(LinkedTreeMap<?, ?> object,String topicMessage){ + + Gson g = new Gson(); + + if (object.get("createMirrorMaker") != null) { + logger.info("Received createMirrorMaker request from topic"); + CreateMirrorMaker m = g.fromJson(topicMessage, CreateMirrorMaker.class); + createMirrorMaker(m.getCreateMirrorMaker()); + checkAgentProcess(); + mirrorMakers.setMessageID(m.getMessageID()); + publishTopic(g.toJson(mirrorMakers)); + mirrorMakers.setMessageID(""); + } else if (object.get("updateMirrorMaker") != null) { + logger.info("Received updateMirrorMaker request from topic"); + UpdateMirrorMaker m = g.fromJson(topicMessage, UpdateMirrorMaker.class); + updateMirrorMaker(m.getUpdateMirrorMaker()); + checkAgentProcess(); + mirrorMakers.setMessageID(m.getMessageID()); + publishTopic(g.toJson(mirrorMakers)); + mirrorMakers.setMessageID(""); + } else if (object.get("deleteMirrorMaker") != null) { + logger.info("Received deleteMirrorMaker request from topic"); + DeleteMirrorMaker m = g.fromJson(topicMessage, DeleteMirrorMaker.class); + deleteMirrorMaker(m.getDeleteMirrorMaker()); + checkAgentProcess(); + mirrorMakers.setMessageID(m.getMessageID()); + publishTopic(g.toJson(mirrorMakers)); + mirrorMakers.setMessageID(""); + } else if (object.get("listAllMirrorMaker") != null) { + logger.info("Received listALLMirrorMaker request from topic"); + checkAgentProcess(); + mirrorMakers.setMessageID((String) object.get("messageID")); + publishTopic(g.toJson(mirrorMakers)); + mirrorMakers.setMessageID(""); + } else if (object.get("updateWhiteList") != null) { + logger.info("Received updateWhiteList request from topic"); + UpdateWhiteList m = g.fromJson(topicMessage, UpdateWhiteList.class); + updateWhiteList(m.getUpdateWhiteList()); + checkAgentProcess(); + mirrorMakers.setMessageID(m.getMessageID()); + publishTopic(g.toJson(mirrorMakers)); + mirrorMakers.setMessageID(""); + } else if (object.get("listMirrorMaker") != null) { + logger.info("Received listMirrorMaker from topic, skipping messages"); + } else { + logger.info("Received unknown request from topic"); + } + + } protected void createMirrorMaker(MirrorMaker newMirrorMaker) { boolean exists = false; @@ -599,4 +610,4 @@ public class MirrorMakerAgent {/* } } -*/} +} diff --git a/src/test/java/com/att/nsa/dmaapMMAgent/TestMirrorMakerAgent.java b/src/test/java/com/att/nsa/dmaapMMAgent/TestMirrorMakerAgent.java index f4fb127..22ceaf9 100644 --- a/src/test/java/com/att/nsa/dmaapMMAgent/TestMirrorMakerAgent.java +++ b/src/test/java/com/att/nsa/dmaapMMAgent/TestMirrorMakerAgent.java @@ -23,43 +23,126 @@ package com.att.nsa.dmaapMMAgent; import static org.junit.Assert.*; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; -import java.io.DataOutputStream; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.net.HttpURLConnection; import java.util.ArrayList; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.Mock; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.powermock.modules.junit4.PowerMockRunner; import com.att.nsa.dmaapMMAgent.dao.ListMirrorMaker; import com.att.nsa.dmaapMMAgent.dao.MirrorMaker; +import com.google.gson.Gson; +import com.google.gson.internal.LinkedTreeMap; -//@RunWith(PowerMockRunner.class) -public class TestMirrorMakerAgent {/* +@RunWith(PowerMockRunner.class) +public class TestMirrorMakerAgent { MirrorMakerAgent mirrorMakerAgent = new MirrorMakerAgent(); ListMirrorMaker listMirrorMaker = new ListMirrorMaker(); MirrorMaker mirrorMaker = new MirrorMaker(); MirrorMaker mirrorMaker2 = new MirrorMaker(); ArrayList<MirrorMaker> listsMirrorMaker = new ArrayList<MirrorMaker>(); + Gson g = new Gson(); + @Mock + ListMirrorMaker mirrorMakers; + @InjectMocks + MirrorMakerAgent agent; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + } @Test public void testcheckStartup() { String currentDirectory = System.getProperty("user.dir"); String MMAGENTHOME = currentDirectory + "/src/test/resources/"; - String parameters[] = {"-encrypt", "test"}; + String parameters[] = { "-encrypt", "test" }; String args[] = null; - + System.setProperty("MMAGENTHOME", MMAGENTHOME); - mirrorMakerAgent.main(args); - + } - + + @Test + public void testReadAgentTopics() { + MirrorMakerAgent agent = spy(new MirrorMakerAgent()); + when(agent.subscribeTopic("60000")).thenReturn(null); + agent.exitLoop = true; + agent.readAgentTopic(); + } + + @Test + public void testReadCreateMirrorMaker() { + agent = spy(new MirrorMakerAgent()); + when(agent.publishTopic( + "{\"messageID\":\"test\",\"listMirrorMaker\":[{\"name\":\"test\",\"consumer\":\"test\",\"producer\":\"test\",\"status\":\"STOPPED\"}]}")) + .thenReturn(null); + String topicMessage = "{ messageID:\"test\", createMirrorMaker: { name:\"test\", consumer:\"test\", producer:\"test\"}}"; + LinkedTreeMap<?, ?> object = g.fromJson(topicMessage, LinkedTreeMap.class); + agent.readAgent(object, topicMessage); + + } + + @Test + public void testReadUpdateMirrorMaker() { + agent = spy(new MirrorMakerAgent()); + when(agent.publishTopic( + "{\"messageID\":\"test\",\"listMirrorMaker\":[{\"name\":\"test\",\"consumer\":\"test\",\"producer\":\"test\",\"status\":\"STOPPED\"}]}")) + .thenReturn(null); + String topicMessage = "{ messageID:\"test\", updateMirrorMaker: { name:\"test\", consumer:\"test\", producer:\"test\"}}"; + LinkedTreeMap<?, ?> object = g.fromJson(topicMessage, LinkedTreeMap.class); + testReadCreateMirrorMaker(); + agent.readAgent(object, topicMessage); + + } + + @Test + public void testReadDeleteMirrorMaker() { + agent = spy(new MirrorMakerAgent()); + when(agent.publishTopic( + "{\"messageID\":\"test\",\"listMirrorMaker\":[{\"name\":\"test\",\"consumer\":\"test\",\"producer\":\"test\",\"status\":\"STOPPED\"}]}")) + .thenReturn(null); + String topicMessage = "{ messageID:\"test\", deleteMirrorMaker: { name:\"test\", consumer:\"test\", producer:\"test\", whitelist:\"test\",status:\"test\" }}"; + LinkedTreeMap<?, ?> object = g.fromJson(topicMessage, LinkedTreeMap.class); + testReadCreateMirrorMaker(); + agent.readAgent(object, topicMessage); + + } + + @Test + public void testReadListMirrorMaker() { + agent = spy(new MirrorMakerAgent()); + when(agent.publishTopic( + "{\"messageID\":\"test\",\"listMirrorMaker\":[{\"name\":\"test\",\"consumer\":\"test\",\"producer\":\"test\",\"status\":\"STOPPED\"}]}")) + .thenReturn(null); + String topicMessage = "{ messageID:\"test\", listAllMirrorMaker: { name:\"test\", consumer:\"test\", producer:\"test\", whitelist:\"test\",status:\"test\" }}"; + LinkedTreeMap<?, ?> object = g.fromJson(topicMessage, LinkedTreeMap.class); + testReadCreateMirrorMaker(); + agent.readAgent(object, topicMessage); + + } + + @Test + public void testReadWhitelistMirrorMaker() { + agent = spy(new MirrorMakerAgent()); + when(agent.publishTopic( + "{\"messageID\":\"test\",\"listMirrorMaker\":[{\"name\":\"test\",\"consumer\":\"test\",\"producer\":\"test\",\"status\":\"STOPPED\"}]}")) + .thenReturn(null); + String topicMessage = "{ messageID:\"test\", updateWhiteList: { name:\"test\", consumer:\"test\", producer:\"test\", whitelist:\"test\",status:\"test\" }}"; + LinkedTreeMap<?, ?> object = g.fromJson(topicMessage, LinkedTreeMap.class); + testReadCreateMirrorMaker(); + agent.readAgent(object, topicMessage); + + } + @Test public void testCreateMirrorMaker() { mirrorMaker.setConsumer("consumer"); @@ -67,21 +150,21 @@ public class TestMirrorMakerAgent {/* mirrorMaker.setProducer("producer"); mirrorMaker.setStatus("200"); mirrorMaker.setWhitelist("whitelist"); - + mirrorMaker2.setConsumer("consumer"); mirrorMaker2.setName("MirrorMaker2"); mirrorMaker2.setProducer("producer"); mirrorMaker2.setStatus("200"); mirrorMaker2.setWhitelist("whitelist"); - + listsMirrorMaker.add(mirrorMaker2); listMirrorMaker.setListMirrorMaker(listsMirrorMaker); - + mirrorMakerAgent.mirrorMakers = listMirrorMaker; - + mirrorMakerAgent.createMirrorMaker(mirrorMaker); - + assertEquals(2, mirrorMakerAgent.mirrorMakers.getListMirrorMaker().size()); } -*/} +} |