From d927fa46b8a97fe58dce5ec13fbb09bb22fd129b Mon Sep 17 00:00:00 2001 From: Mohammad Salehe Date: Mon, 26 Nov 2018 19:32:55 -0500 Subject: Move runnable test classes Move runnable test classes which are not actually tests from src/test to src/main in order for maven to include them in fat jar Change-Id: Ib57db631b1c91ae796fa33becc9f06d05eef4219 Issue-ID: MUSIC-148 Signed-off-by: Mohammad Salehe --- .../org/onap/music/testruns/TestVotingApp.java | 118 +++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 src/main/java/org/onap/music/testruns/TestVotingApp.java (limited to 'src/main/java/org/onap/music/testruns/TestVotingApp.java') diff --git a/src/main/java/org/onap/music/testruns/TestVotingApp.java b/src/main/java/org/onap/music/testruns/TestVotingApp.java new file mode 100644 index 00000000..10830a14 --- /dev/null +++ b/src/main/java/org/onap/music/testruns/TestVotingApp.java @@ -0,0 +1,118 @@ +package org.onap.music.testruns; + +import java.util.HashMap; +import java.util.Map; + +import org.onap.music.datastore.PreparedQueryObject; +import org.onap.music.exceptions.MusicLockingException; +import org.onap.music.exceptions.MusicQueryException; +import org.onap.music.exceptions.MusicServiceException; +import org.onap.music.main.MusicCore; + +import com.datastax.driver.core.ResultSet; +import com.datastax.driver.core.Row; + +/** + * + */ +public class TestVotingApp +{ + String keyspaceName; + String tableName; + + public TestVotingApp() throws MusicServiceException { + keyspaceName = "VotingAppForMusic"+System.currentTimeMillis(); + tableName = "votecount"; + } + + private void initialize() throws MusicServiceException { + createVotingKeyspace(); + System.out.println("Created keyspaces"); + createVotingTable(); + System.out.println("Created tables"); + + createEntryForCandidate("Popeye"); + createEntryForCandidate("Judy"); + createEntryForCandidate("Flash"); + createEntryForCandidate("Mickey"); + System.out.println("Created candidates"); + } + + private void createVotingKeyspace() throws MusicServiceException { + Map replicationInfo = new HashMap(); + replicationInfo.put("'class'", "'SimpleStrategy'"); + replicationInfo.put("'replication_factor'", 1); + + PreparedQueryObject queryObject = new PreparedQueryObject(); + queryObject.appendQueryString( + "CREATE KEYSPACE " + keyspaceName + " WITH REPLICATION = " + replicationInfo.toString().replaceAll("=", ":")); + + try { + MusicCore.nonKeyRelatedPut(queryObject, "eventual"); + } catch (MusicServiceException e) { + throw(e); + } + } + + private void createVotingTable() throws MusicServiceException { + PreparedQueryObject queryObject = new PreparedQueryObject(); + queryObject.appendQueryString( + "CREATE TABLE " + keyspaceName + "." + tableName + " (name text PRIMARY KEY, count int);"); + + try { + MusicCore.createTable(keyspaceName, tableName, queryObject, "eventual"); + } catch (MusicServiceException e) { + throw (e); + } + } + + private void createEntryForCandidate(String candidateName) throws MusicServiceException { + PreparedQueryObject queryObject = new PreparedQueryObject(); + queryObject.appendQueryString( + "INSERT INTO " + keyspaceName + "." + tableName + " (name, count) " + + "VALUES ('"+candidateName+"', 0);"); + + MusicCore.eventualPut(queryObject); + } + + + private void updateVoteCount(String candidateName, int numVotes) throws MusicLockingException, MusicQueryException, MusicServiceException { + PreparedQueryObject queryObject = new PreparedQueryObject(); + queryObject.appendQueryString( + "UPDATE " + keyspaceName + "." + tableName + " SET count=" +numVotes + " where name='" + candidateName + "';"); + MusicCore.atomicPut(keyspaceName, tableName, candidateName, queryObject, null); + } + + private HashMap readAllVotes() throws MusicServiceException { + PreparedQueryObject queryObject = new PreparedQueryObject(); + queryObject.appendQueryString("SELECT * FROM " + keyspaceName + "." + tableName); + ResultSet rs = MusicCore.get(queryObject); + HashMap voteCount = new HashMap(); + for(Row candidate : rs.all()) { + voteCount.put(candidate.getString("name"), candidate.getInt("count")); + } + return voteCount; + } + + public static void main( String[] args ) throws Exception { + TestVotingApp tva = new TestVotingApp(); + tva.initialize(); + + tva.updateVoteCount("Popeye",5); + tva.updateVoteCount("Judy",9); + tva.updateVoteCount("Mickey",8); + tva.updateVoteCount("Flash",1); + tva.updateVoteCount("Flash",2); + tva.updateVoteCount("Flash",3); + + HashMap voteCount = tva.readAllVotes(); + System.out.println(voteCount); + + assert(voteCount.get("Popeye") == 5); + assert(voteCount.get("Judy") == 9); + assert(voteCount.get("Mickey") == 8); + assert(voteCount.get("Flash") == 3); + System.exit(0); + } + +} \ No newline at end of file -- cgit 1.2.3-korg