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/ComparisonPoints1.java | 273 +++++++++++++++++++++ .../org/onap/music/testruns/TestVotingApp.java | 118 +++++++++ .../onap/music/unittests/ComparisonPoints1.java | 239 ------------------ .../org/onap/music/unittests/TestVotingApp.java | 118 --------- 4 files changed, 391 insertions(+), 357 deletions(-) create mode 100644 src/main/java/org/onap/music/testruns/ComparisonPoints1.java create mode 100644 src/main/java/org/onap/music/testruns/TestVotingApp.java delete mode 100644 src/test/java/org/onap/music/unittests/ComparisonPoints1.java delete mode 100644 src/test/java/org/onap/music/unittests/TestVotingApp.java (limited to 'src') diff --git a/src/main/java/org/onap/music/testruns/ComparisonPoints1.java b/src/main/java/org/onap/music/testruns/ComparisonPoints1.java new file mode 100644 index 00000000..fb510403 --- /dev/null +++ b/src/main/java/org/onap/music/testruns/ComparisonPoints1.java @@ -0,0 +1,273 @@ +package org.onap.music.testruns; + +import com.datastax.driver.core.ResultSet; +import org.apache.commons.lang3.tuple.Pair; +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 org.onap.music.util.SamplerHistogramTimeMeasure; +import org.onap.music.util.TimeMeasure; +import org.onap.music.util.TimeMeasureInstance; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +/** + * + */ +public class ComparisonPoints1 +{ + String keyspaceName; + int BENCH_TIMES = 100; + + public ComparisonPoints1() { + keyspaceName = "ComparisonPoints1_"+System.currentTimeMillis(); + } + + private void initialize() throws MusicServiceException { + createKeyspace(); + System.out.println("Created keyspaces"); + } + + private int readAge(String tableName, String name) throws MusicServiceException { + PreparedQueryObject query = new PreparedQueryObject(); + query.appendQueryString("SELECT age FROM " + keyspaceName + "." + tableName + " WHERE name = ?;"); + query.addValue(name); + ResultSet rs = MusicCore.get(query); + return rs.one().getInt("age"); + } + + private void check(String tableName, String name1, int age) throws MusicServiceException { + int readage = readAge(tableName, name1); + if (age != readage) + System.out.println("Inconsistency: age = " + readage + " != " + age); + } + + private void performWarmup(String tableName, String name, int age) throws MusicServiceException, MusicLockingException, MusicQueryException { + PreparedQueryObject query = new PreparedQueryObject(); + query.appendQueryString( + "INSERT INTO " + keyspaceName + "." + tableName + " (name, age) " + + "VALUES (?, ?);"); + query.addValue(name); + query.addValue(age); + + MusicCore.atomicPut(keyspaceName, tableName, name, query, null); + } + + + + private void warmup() throws Exception { + TimeMeasureInstance.instance().enter("warmup"); + String tableName = "warmup"; + System.out.println("Warming Up"); + createTable(tableName); + Thread.sleep(1000); + + for (int i = 0; i < BENCH_TIMES; i++) { + String name = "Joe" + i; + int age = i + 12300; + performWarmup(tableName, name, age); +// check(tableName, name, age); + } + + System.out.println("done"); + TimeMeasureInstance.instance().exit(); + } + + private void performMusicEntryConsistentPut(String tableName, String name, int age) throws MusicServiceException, MusicLockingException, MusicQueryException { + TimeMeasureInstance.instance().enter("performMusicEntryConsistentPut"); + PreparedQueryObject query = new PreparedQueryObject(); + query.appendQueryString( + "INSERT INTO " + keyspaceName + "." + tableName + " (name, age) " + + "VALUES (?, ?);"); + query.addValue(name); + query.addValue(age); + + MusicCore.atomicPut(keyspaceName, tableName, name, query, null); + TimeMeasureInstance.instance().exit(); + } + + private void benchmarkMusicEntryConsistentPut() throws Exception { + TimeMeasureInstance.instance().enter("benchmarkMusicEntryConsistentPut"); + String tableName = "mentry2"; + System.out.println("Benchmark music entry consistent put"); + createTable(tableName); + Thread.sleep(1000); + System.out.println("begin"); + + for (int i = 0; i < BENCH_TIMES; i++) { + String name = "Joe" + i; + int age = i + 10; + performMusicEntryConsistentPut(tableName, name, age); +// check(tableName, name, age); + } + + System.out.println("done"); + TimeMeasureInstance.instance().exit(); + } + + private void performMusicSequentialConsistentPut(String tableName, String name, int age) throws MusicServiceException, MusicLockingException, MusicQueryException { + TimeMeasureInstance.instance().enter("performMusicSequentialConsistentPut"); + PreparedQueryObject query = new PreparedQueryObject(); + query.appendQueryString( + "INSERT INTO " + keyspaceName + "." + tableName + " (name, age) " + + "VALUES (?, ?) IF NOT EXISTS;"); + query.addValue(name); + query.addValue(age); + + MusicCore.atomicPut(keyspaceName, tableName, name, query, null); + TimeMeasureInstance.instance().exit(); + } + + private void benchmarkMusicSequentialConsistentPut() throws Exception { + TimeMeasureInstance.instance().enter("benchmarkMusicSequentialConsistentPut"); + String tableName = "mseq"; + System.out.println("Benchmark music sequential consistent put"); + createTable(tableName); + Thread.sleep(1000); + System.out.println("begin"); + + for (int i = 0; i < BENCH_TIMES; i++) { + String name = "Joe" + i; + int age = i + 10; + performMusicSequentialConsistentPut(tableName, name, age); +// check(tableName, name, age); + } + + System.out.println("done"); + TimeMeasureInstance.instance().exit(); + } + + private void performEventualPut(String tableName, String name, int age) throws MusicServiceException, MusicLockingException, MusicQueryException { + TimeMeasureInstance.instance().enter("performEventualPut"); + PreparedQueryObject query = new PreparedQueryObject(); + query.appendQueryString( + "INSERT INTO " + keyspaceName + "." + tableName + " (name, age) " + + "VALUES (?, ?);"); + query.addValue(name); + query.addValue(age); + + MusicCore.eventualPut(query); + TimeMeasureInstance.instance().exit(); + } + + private void benchmarkEventualPut() throws Exception { + TimeMeasureInstance.instance().enter("benchmarkEventualPut"); + String tableName = "eventual"; + System.out.println("Benchmark eventual put"); + createTable(tableName); + Thread.sleep(1000); + System.out.println("begin"); + + for (int i = 0; i < BENCH_TIMES; i++) { + String name = "Joe" + i; + int age = i + 10; + performEventualPut(tableName, name, age); +// check(tableName, name, age); + } + System.out.println("done"); + TimeMeasureInstance.instance().exit(); + } + + private void performPureConsistentPut(String tableName, String name, int age) throws MusicServiceException, MusicLockingException, MusicQueryException { + TimeMeasureInstance.instance().enter("performPureConsistentPut"); + PreparedQueryObject query = new PreparedQueryObject(); + query.appendQueryString( + "INSERT INTO " + keyspaceName + "." + tableName + " (name, age) " + + "VALUES (?, ?) IF NOT EXISTS;"); + query.addValue(name); + query.addValue(age); + + MusicCore.eventualPut(query); + TimeMeasureInstance.instance().exit(); + } + + private void benchmarkPureConsistentPut() throws Exception { + TimeMeasureInstance.instance().enter("benchmarkPureConsistentPut"); + String tableName = "pure"; + System.out.println("Benchmark pure consistent put"); + createTable(tableName); + Thread.sleep(1000); + System.out.println("begin"); + + for (int i = 0; i < BENCH_TIMES; i++) { + String name = "Joe" + i; + int age = i + 10; + performPureConsistentPut(tableName, name, age); +// check(tableName, name, age); + } + + System.out.println("done"); + TimeMeasureInstance.instance().exit(); + } + + private void createKeyspace() throws MusicServiceException { + Map replicationInfo = new HashMap(); + replicationInfo.put("'class'", "'SimpleStrategy'"); + replicationInfo.put("'replication_factor'", 3); + + 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 createTable(String tableName) throws MusicServiceException { + PreparedQueryObject queryObject = new PreparedQueryObject(); + queryObject.appendQueryString( + "CREATE TABLE " + keyspaceName + "." + tableName + " (name text PRIMARY KEY, age int);"); + + try { + MusicCore.createTable(keyspaceName, tableName, queryObject, "eventual"); + } catch (MusicServiceException e) { + throw (e); + } + } + + public static void main( String[] args ) throws Exception { + TimeMeasureInstance.setInstance(new SamplerHistogramTimeMeasure()); + ComparisonPoints1 cp1 = new ComparisonPoints1(); + cp1.initialize(); + Thread.sleep(2000); + + cp1.warmup(); + System.out.println("-----\n\n"); + Thread.sleep(1000); + + cp1.benchmarkEventualPut(); + System.out.println("-----\n\n"); + Thread.sleep(1000); + + cp1.benchmarkMusicSequentialConsistentPut(); + System.out.println("-----\n\n"); + Thread.sleep(1000); + + cp1.benchmarkPureConsistentPut(); + System.out.println("-----\n\n"); + Thread.sleep(1000); + + cp1.benchmarkMusicEntryConsistentPut(); + System.out.println("-----\n\n"); + + TimeMeasure tm = TimeMeasureInstance.instance(); + + Map> e = tm.percentiles(); + Map> m = tm.stats(); + DecimalFormat df = new DecimalFormat("000.000000"); + e.forEach((k,v) -> System.out.println("" + k + "\t\t: " + Arrays.toString(v.stream().map(w -> "" + df.format(w)).toArray()))); + m.forEach((k,v) -> System.out.println("" + k + "\t\t: " + df.format(v.getLeft()) + " (" + df.format(v.getRight()) + ")")); + + System.exit(0); + } + +} \ No newline at end of file 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 diff --git a/src/test/java/org/onap/music/unittests/ComparisonPoints1.java b/src/test/java/org/onap/music/unittests/ComparisonPoints1.java deleted file mode 100644 index 1f74d39e..00000000 --- a/src/test/java/org/onap/music/unittests/ComparisonPoints1.java +++ /dev/null @@ -1,239 +0,0 @@ -package org.onap.music.unittests; - -import com.datastax.driver.core.ResultSet; -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 java.util.HashMap; -import java.util.Map; - -/** - * - */ -public class ComparisonPoints1 -{ - String keyspaceName; - int BENCH_TIMES = 100; - - public ComparisonPoints1() { - keyspaceName = "ComparisonPoints1_"+System.currentTimeMillis(); - } - - private void initialize() throws MusicServiceException { - createKeyspace(); - System.out.println("Created keyspaces"); - } - - private int readAge(String tableName, String name) throws MusicServiceException { - PreparedQueryObject query = new PreparedQueryObject(); - query.appendQueryString("SELECT age FROM " + keyspaceName + "." + tableName + " WHERE name = ?;"); - query.addValue(name); - ResultSet rs = MusicCore.get(query); - return rs.one().getInt("age"); - } - - private void check(String tableName, String name1, int age) throws MusicServiceException { - int readage = readAge(tableName, name1); - if (age != readage) - System.out.println("Inconsistency: age = " + readage + " != " + age); - } - - private void performMusicEntryConsistentPut(String tableName, String name, int age) throws MusicServiceException, MusicLockingException, MusicQueryException { - - PreparedQueryObject query = new PreparedQueryObject(); - query.appendQueryString( - "INSERT INTO " + keyspaceName + "." + tableName + " (name, age) " - + "VALUES (?, ?);"); - query.addValue(name); - query.addValue(age); - - MusicCore.atomicPut(keyspaceName, tableName, name, query, null); - } - - private void warmup() throws Exception { - String tableName = "warmup"; - System.out.println("Warming Up"); - createTable(tableName); - System.out.println("Created tables"); - Thread.sleep(1000); - - long btime = System.currentTimeMillis(); - for (int i = 0; i < BENCH_TIMES; i++) { - String name = "Joe" + i; - int age = i + 10; - performMusicEntryConsistentPut(tableName, name, age); -// check(tableName, name, age); - } - long bdur = System.currentTimeMillis() - btime; - - System.out.println("done"); - } - - private void testMusicEntryConsistentPut() throws Exception { - String tableName = "mentry2"; - System.out.println("Test music entry consistent put 2"); - createTable(tableName); - System.out.println("Created tables"); - Thread.sleep(1000); - - long btime = System.currentTimeMillis(); - for (int i = 0; i < BENCH_TIMES; i++) { - String name = "Joe" + i; - int age = i + 10; - performMusicEntryConsistentPut(tableName, name, age); -// check(tableName, name, age); - } - long bdur = System.currentTimeMillis() - btime; - - System.out.println("done " + ((float)bdur / BENCH_TIMES)); - } - - private void performMusicSequentialConsistentPut(String tableName, String name, int age) throws MusicServiceException, MusicLockingException, MusicQueryException { - PreparedQueryObject query = new PreparedQueryObject(); - query.appendQueryString( - "INSERT INTO " + keyspaceName + "." + tableName + " (name, age) " - + "VALUES (?, ?) IF NOT EXISTS;"); - query.addValue(name); - query.addValue(age); - - MusicCore.atomicPut(keyspaceName, tableName, name, query, null); - } - - private void testMusicSequentialConsistentPut() throws Exception { - String tableName = "mseq"; - System.out.println("Test music sequential consistent put"); - createTable(tableName); - System.out.println("Created tables"); - Thread.sleep(1000); - - long btime = System.currentTimeMillis(); - for (int i = 0; i < BENCH_TIMES; i++) { - String name = "Joe" + i; - int age = i + 10; - performMusicSequentialConsistentPut(tableName, name, age); -// check(tableName, name, age); - } - long bdur = System.currentTimeMillis() - btime; - - System.out.println("done " + ((float)bdur / BENCH_TIMES)); - } - - private void performEventualPut(String tableName, String name, int age) throws MusicServiceException, MusicLockingException, MusicQueryException { - PreparedQueryObject query = new PreparedQueryObject(); - query.appendQueryString( - "INSERT INTO " + keyspaceName + "." + tableName + " (name, age) " - + "VALUES (?, ?);"); - query.addValue(name); - query.addValue(age); - - MusicCore.eventualPut(query); - } - - private void testEventualPut() throws Exception { - String tableName = "eventual"; - System.out.println("Test eventual put"); - createTable(tableName); - System.out.println("Created tables"); - Thread.sleep(1000); - - long btime = System.currentTimeMillis(); - for (int i = 0; i < BENCH_TIMES; i++) { - String name = "Joe" + i; - int age = i + 10; - performEventualPut(tableName, name, age); -// check(tableName, name, age); - } - long bdur = System.currentTimeMillis() - btime; - - System.out.println("done " + ((float)bdur / BENCH_TIMES)); - } - - private void performPureConsistentPut(String tableName, String name, int age) throws MusicServiceException, MusicLockingException, MusicQueryException { - PreparedQueryObject query = new PreparedQueryObject(); - query.appendQueryString( - "INSERT INTO " + keyspaceName + "." + tableName + " (name, age) " - + "VALUES (?, ?) IF NOT EXISTS;"); - query.addValue(name); - query.addValue(age); - - MusicCore.eventualPut(query); - } - - private void testPureConsistentPut() throws Exception { - String tableName = "pure"; - System.out.println("Performing pure consistent put"); - createTable(tableName); - System.out.println("Created tables"); - Thread.sleep(1000); - - long btime = System.currentTimeMillis(); - for (int i = 0; i < BENCH_TIMES; i++) { - String name = "Joe" + i; - int age = i + 10; - performPureConsistentPut(tableName, name, age); -// check(tableName, name, age); - } - long bdur = System.currentTimeMillis() - btime; - - System.out.println("done " + ((float)bdur / BENCH_TIMES)); - } - - private void createKeyspace() throws MusicServiceException { - Map replicationInfo = new HashMap(); - replicationInfo.put("'class'", "'SimpleStrategy'"); - replicationInfo.put("'replication_factor'", 3); - - 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 createTable(String tableName) throws MusicServiceException { - PreparedQueryObject queryObject = new PreparedQueryObject(); - queryObject.appendQueryString( - "CREATE TABLE " + keyspaceName + "." + tableName + " (name text PRIMARY KEY, age int);"); - - try { - MusicCore.createTable(keyspaceName, tableName, queryObject, "eventual"); - } catch (MusicServiceException e) { - throw (e); - } - } - - public static void main( String[] args ) throws Exception { - ComparisonPoints1 cp1 = new ComparisonPoints1(); - cp1.initialize(); - Thread.sleep(2000); - - cp1.warmup(); - System.out.println("-----\n\n"); - Thread.sleep(2000); - - cp1.testEventualPut(); - System.out.println("-----\n\n"); - Thread.sleep(2000); - - cp1.testMusicSequentialConsistentPut(); - System.out.println("-----\n\n"); - Thread.sleep(2000); - - cp1.testPureConsistentPut(); - System.out.println("-----\n\n"); - Thread.sleep(2000); - - cp1.testMusicEntryConsistentPut(); - System.out.println("-----\n\n"); - - System.exit(0); - } - -} \ No newline at end of file diff --git a/src/test/java/org/onap/music/unittests/TestVotingApp.java b/src/test/java/org/onap/music/unittests/TestVotingApp.java deleted file mode 100644 index 863959eb..00000000 --- a/src/test/java/org/onap/music/unittests/TestVotingApp.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.onap.music.unittests; - -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