325 lines
12 KiB
Java
325 lines
12 KiB
Java
package org.gcube.portal.databook.server;
|
|
|
|
import static org.junit.Assert.assertNotNull;
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.Random;
|
|
import java.util.UUID;
|
|
|
|
import org.gcube.portal.databook.shared.Comment;
|
|
import org.gcube.portal.databook.shared.Feed;
|
|
import org.gcube.portal.databook.shared.FeedType;
|
|
import org.gcube.portal.databook.shared.Like;
|
|
import org.gcube.portal.databook.shared.Notification;
|
|
import org.gcube.portal.databook.shared.NotificationChannelType;
|
|
import org.gcube.portal.databook.shared.NotificationType;
|
|
import org.gcube.portal.databook.shared.PrivacyLevel;
|
|
import org.gcube.portal.databook.shared.ex.FeedIDNotFoundException;
|
|
import org.gcube.portal.databook.shared.ex.NotificationChannelTypeNotFoundException;
|
|
import org.junit.AfterClass;
|
|
import org.junit.BeforeClass;
|
|
import org.junit.Test;
|
|
|
|
public class DatabookCassandraTest {
|
|
private static DatabookStore store;
|
|
|
|
@BeforeClass
|
|
public static void setup() throws Exception {
|
|
store = new DBCassandraAstyanaxImpl(true); //set to true if you want to drop the KeySpace and recreate it
|
|
}
|
|
|
|
@AfterClass
|
|
public static void close(){
|
|
store.closeConnection();
|
|
System.out.println("End");
|
|
}
|
|
|
|
@Test
|
|
public void testFriendships() {
|
|
assertTrue(store.requestFriendship("massimiliano.assante", "leonardo.candela"));
|
|
assertTrue(store.requestFriendship("massimiliano.assante", "ermit"));
|
|
assertTrue(store.requestFriendship("massimiliano.assante", "giorgino"));
|
|
assertTrue(store.requestFriendship("barabba", "massimiliano.assante"));
|
|
|
|
assertTrue(store.approveFriendship("leonardo.candela", "massimiliano.assante"));
|
|
assertTrue(store.approveFriendship("ermit", "massimiliano.assante"));
|
|
|
|
assertTrue(store.denyFriendship("giorgino", "massimiliano.assante"));
|
|
System.out.println("Pending Connections for massimiliano.assante:");
|
|
for (String userid: store.getPendingFriendRequests("massimiliano.assante")) {
|
|
System.out.println(userid);
|
|
}
|
|
|
|
System.out.println("Connections for massimiliano.assante:");
|
|
for (String userid: store.getFriends("massimiliano.assante")) {
|
|
System.out.println(userid);
|
|
}
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testNotificationSettings() {
|
|
try {
|
|
for (NotificationChannelType channel : store.getUserNotificationChannels("leonardo.candela")) {
|
|
System.out.println(channel);
|
|
}
|
|
} catch (NotificationChannelTypeNotFoundException e) {
|
|
e.printStackTrace();
|
|
};
|
|
store.setUserNotificationChannel("leonardo.candela", NotificationChannelType.TWITTER, false);
|
|
}
|
|
|
|
@Test
|
|
public void testSingleNotification() {
|
|
Notification not = new Notification(
|
|
UUID.randomUUID().toString(),
|
|
NotificationType.LIKE,
|
|
"leonardo.candela",
|
|
"MESSAGEID",
|
|
new Date(),
|
|
"uri",
|
|
"This is notification about a like",
|
|
false,
|
|
"leonardo.candela", "Leonardo Candela",
|
|
"thumburl");
|
|
assertTrue(store.saveNotification(not));
|
|
|
|
not = new Notification(
|
|
UUID.randomUUID().toString(),
|
|
NotificationType.MESSAGE,
|
|
"massimiliano.assante",
|
|
"MESSAGEID",
|
|
new Date(),
|
|
"uri",
|
|
"This is notification about a like",
|
|
false,
|
|
"antonio.gioia", "Antonio Gioia",
|
|
"thumburl");
|
|
assertTrue(store.saveNotification(not));
|
|
System.out.println("Writing one Notification " + not);
|
|
}
|
|
|
|
@Test
|
|
public void testNotifications() {
|
|
Notification not = null;
|
|
System.out.println("Writing 18 Notifications");
|
|
int count = 18;
|
|
for (int i = 0; i < count; i++) {
|
|
if (i % 2 != 0) {
|
|
not = new Notification(UUID.randomUUID().toString(), NotificationType.JOB_COMPLETED_OK,
|
|
"leonardo.candela", "TWEETID", new Date(), "uri", "This is notification about job completed OK #"+i, false, "pasquale.pagano", "Pasquale Pagano", "thumburl");
|
|
} else {
|
|
not = new Notification(UUID.randomUUID().toString(), NotificationType.JOB_COMPLETED_NOK,
|
|
"massimiliano.assante", "MESSAGEID", new Date(), "uri", "This is notification about completed NOK #"+i, false, "leonardo.candela", "Leonardo Candela", "thumburl");
|
|
}
|
|
assertTrue(store.saveNotification(not));
|
|
try {
|
|
Thread.sleep(150);
|
|
} catch (InterruptedException e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
Notification rNot= null;
|
|
try {
|
|
|
|
//read
|
|
rNot = store.readNotification(not.getKey().toString());
|
|
assertNotNull(rNot);
|
|
System.out.println("Reading one Notification " + rNot.getKey() + ": " + rNot.getDescription() + " Type: " + rNot.getType());
|
|
|
|
//set Read
|
|
assertTrue(store.setNotificationRead(rNot.getKey().toString()));
|
|
|
|
System.out.println("Notification " + rNot.getKey() + " of Type: " + rNot.getType() + " was set to READ");
|
|
|
|
not = new Notification(UUID.randomUUID().toString(), NotificationType.LIKE,
|
|
"leonardo.candela", "FEEDID", new Date(), "uri", "This is notification of a Liked Leo feed by Massi", false, "massimiliano.assante", "Massimiliano Assante", "thumburl");
|
|
assertTrue(store.saveNotification(not));
|
|
try {
|
|
Thread.sleep(150);
|
|
} catch (InterruptedException e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
rNot = store.readNotification(not.getKey().toString());
|
|
System.out.println("Reading another Notification " + rNot.getKey() + " of Type: " + rNot.getType() + " Read:? " + rNot.isRead());
|
|
// //set Read
|
|
// assertTrue(store.setNotificationRead(rNot.getKey().toString()));
|
|
// System.out.println("Notification " + rNot.getKey() + " of Type: " + rNot.getType() + " was set to READ subject was this: " + rNot.getSubjectid());
|
|
//
|
|
Random randomGenerator = new Random();
|
|
|
|
System.out.println("leonardo.candela Notifications: ");
|
|
List<Notification> recentNots = store.getAllNotificationByUser("leonardo.candela", randomGenerator.nextInt(50));
|
|
assertNotNull(recentNots);
|
|
for (Notification notif :recentNots)
|
|
System.out.println(notif);
|
|
|
|
|
|
System.out.println("massimiliano.assante Notifications: ");
|
|
recentNots = store.getUnreadNotificationsByUser("massimiliano.assante");
|
|
assertNotNull(recentNots);
|
|
for (Notification notif :recentNots)
|
|
System.out.println(notif);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testFeeds() {
|
|
int count = 18;
|
|
Feed feed = null;
|
|
for (int i = 0; i < count; i++) {
|
|
if (i % 2 != 0) {
|
|
feed = new Feed(UUID.randomUUID().toString(), FeedType.JOIN, "massimiliano.assante", new Date(), "/gcube/devsec/devVRE",
|
|
"www.d4science.org/monitor", "thumbUri", "This is feed# "+ i, PrivacyLevel.VRES, "Massimiliano Assante", "massimiliano.assante@isti.cnr.it", "thumburl", "linkTitle", "linkDesc", "host");
|
|
} else {
|
|
feed = new Feed(UUID.randomUUID().toString(), FeedType.TWEET, "leonardo.candela", new Date(), "",
|
|
"www.d4science.org/web/guest", "thumbUri", "This is feed# "+ i, PrivacyLevel.PORTAL, "Leonardo Candela", "leonardo.candela@isti.cnr.it", "thumburl", "linkTitle", "linkDesc", "host");
|
|
}
|
|
assertTrue(store.saveUserFeed(feed));
|
|
try {
|
|
Thread.sleep(150);
|
|
} catch (InterruptedException e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
Feed rFeed = null;
|
|
try {
|
|
rFeed = store.readFeed(feed.getKey().toString());
|
|
rFeed = store.readFeed(feed.getKey().toString());
|
|
rFeed = store.readFeed(feed.getKey().toString());
|
|
rFeed = store.readFeed(feed.getKey().toString());
|
|
assertNotNull(rFeed);
|
|
|
|
String feedIdToDelete = UUID.randomUUID().toString();
|
|
feed = new Feed(feedIdToDelete, FeedType.PUBLISH, "massimiliano.assante", new Date(), "/gcube/devsec/devVRE",
|
|
"www.d4science.org/monitor", "thumbUri", "This is feed to be deleted", PrivacyLevel.VRES, "Massimiliano Assante", "massimiliano.assante@isti.cnr.it", "thumburl", "linkTitle", "linkDesc", "host", false);
|
|
assertTrue(store.saveUserFeed(feed));
|
|
try {
|
|
Thread.sleep(250);
|
|
} catch (InterruptedException e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
System.out.println("Test Delete Feed ");
|
|
assertTrue(store.deleteFeed(feedIdToDelete));
|
|
|
|
System.out.println("massimiliano.assante ALL FEEDS: ");
|
|
for (Feed recFeed : store.getAllFeedsByUser("massimiliano.assante"))
|
|
System.out.println(recFeed);
|
|
|
|
Random randomGenerator = new Random();
|
|
|
|
System.out.println("leonardo.candela TIMELINE: ");
|
|
List<Feed> recentFeeds = store.getRecentFeedsByUser("leonardo.candela", randomGenerator.nextInt(50));
|
|
assertNotNull(recentFeeds);
|
|
for (Feed recFeed :recentFeeds)
|
|
System.out.println(recFeed);
|
|
|
|
|
|
System.out.println("/gcube/devsec/devVRE TIMELINE: ");
|
|
recentFeeds = store.getRecentFeedsByVRE("/gcube/devsec/devVRE", randomGenerator.nextInt(50));
|
|
assertNotNull(recentFeeds);
|
|
for (Feed recFeed :recentFeeds)
|
|
System.out.println(recFeed);
|
|
|
|
System.out.println("PORTAL TIMELINE: ");
|
|
recentFeeds = store.getAllPortalPrivacyLevelFeeds();
|
|
assertNotNull(recentFeeds);
|
|
for (Feed recFeed :recentFeeds)
|
|
System.out.println(recFeed);
|
|
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// @Test
|
|
// public void testNotifications() {
|
|
// int count = 10;
|
|
// Notification notf = null;
|
|
// for (int i = 0; i < count; i++) {
|
|
// notf = new Notification(UUID.randomUUID().toString(), NotificationType.MESSAGE, "massimiliano.assante", new Date(), "http://urir.com", "Desc #"+i, "Gino Camillo", false);
|
|
// assertTrue(store.saveNotification(notf));
|
|
// }
|
|
// try {
|
|
// assertNotNull(store.getAllNotificationByUser("massimiliano.assante"));
|
|
// } catch (Exception e) {
|
|
// e.printStackTrace();
|
|
// }
|
|
// }
|
|
|
|
@Test
|
|
public void testComments() {
|
|
int count = 10;
|
|
Feed feed = new Feed(UUID.randomUUID().toString(), FeedType.SHARE, "massimiliano.assante", new Date(), "/gcube/devsec/devVRE",
|
|
"http://www.d4science.org/monitor", "thumbUri", "This is feed that is going to be commented ", PrivacyLevel.PUBLIC, "Massimiliano Assante",
|
|
"massimiliano.assante@isti.cnr.it", "thumburl", "linkTitle", "linkDesc", "host", false);
|
|
assertTrue(store.saveUserFeed(feed));
|
|
|
|
Comment toDelete = null;
|
|
for (int i = 0; i < count; i++) {
|
|
try {
|
|
toDelete = new Comment(UUID.randomUUID().toString(),"leonardo.candela",
|
|
new Date(), feed.getKey().toString(), "This comment #"+i, "Leonardo Candela", "thumbUrl");
|
|
assertTrue(store.addComment(toDelete));
|
|
|
|
} catch (FeedIDNotFoundException e) {
|
|
System.out.println("Exception feed id not found");
|
|
}
|
|
}
|
|
System.out.println("GetAllCOmmentsByFeed ");
|
|
for (Comment cm : store.getAllCommentByFeed(feed.getKey().toString())) {
|
|
System.out.println(cm.getText());
|
|
};
|
|
|
|
try {
|
|
assertTrue(store.deleteComment(toDelete.getKey(), toDelete.getFeedid()));
|
|
} catch (Exception e) {
|
|
System.out.println("Exception feed id not found");
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testLikes() {
|
|
int count = 10;
|
|
Feed feed = new Feed(UUID.randomUUID().toString(), FeedType.SHARE, "massimiliano.assante", new Date(), "/gcube/devsec/devVRE",
|
|
"http://www.d4science.org/monitor", "thumbUri", "This feed is Liked ", PrivacyLevel.PUBLIC,
|
|
"Massimiliano Assante", "massimiliano.assante@isti.cnr.it", "thumburl", "linkTitle", "linkDesc", "host", false);
|
|
assertTrue(store.saveUserFeed(feed));
|
|
Like toUnlike = new Like(UUID.randomUUID().toString(),"massimiliano.assante",
|
|
new Date(), feed.getKey().toString(), "Massi Pallino", "thumbUrl");
|
|
|
|
try {
|
|
assertTrue(store.like(toUnlike));
|
|
for (int i = 0; i < count; i++)
|
|
assertTrue(store.like(new Like(UUID.randomUUID().toString(),"massimiliano.assante",
|
|
new Date(), feed.getKey().toString(), "Rino Pallino", "thumbUrl")));
|
|
|
|
System.out.println("massimiliano.assante liked the following feeds: ");
|
|
for (String feedid : store.getAllLikedFeedIdsByUser("massimiliano.assante")) {
|
|
System.out.println(feedid);
|
|
}
|
|
|
|
for (Like like : store.getAllLikesByFeed(feed.getKey().toString())) {
|
|
System.out.println(like);
|
|
}
|
|
|
|
System.out.println("trying unlike");
|
|
assertTrue(store.unlike(toUnlike.getKey(), toUnlike.getFeedid()));
|
|
|
|
} catch (Exception e) {
|
|
System.out.println("Exception feed id not found");
|
|
}
|
|
}
|
|
}
|