2013-01-10 14:19:53 +01:00
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 ;
2013-01-30 17:58:23 +01:00
import org.gcube.portal.databook.shared.NotificationChannelType ;
2013-01-10 14:19:53 +01:00
import org.gcube.portal.databook.shared.NotificationType ;
import org.gcube.portal.databook.shared.PrivacyLevel ;
2013-02-02 18:21:56 +01:00
import org.gcube.portal.databook.shared.ex.ColumnNameNotFoundException ;
2013-01-10 14:19:53 +01:00
import org.gcube.portal.databook.shared.ex.FeedIDNotFoundException ;
2013-02-02 18:21:56 +01:00
import org.gcube.portal.databook.shared.ex.FeedTypeNotFoundException ;
2013-01-30 17:58:23 +01:00
import org.gcube.portal.databook.shared.ex.NotificationChannelTypeNotFoundException ;
2013-02-02 18:21:56 +01:00
import org.gcube.portal.databook.shared.ex.PrivacyLevelTypeNotFoundException ;
2013-01-10 14:19:53 +01:00
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 {
2013-02-02 18:21:56 +01:00
store = new DBCassandraAstyanaxImpl ( false ) ; //set to true if you want to drop the KeySpace and recreate it
2013-01-10 14:19:53 +01:00
}
@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 ) ;
}
}
2013-02-02 18:21:56 +01:00
@Test
public void testLikedFeedsRetrieval ( ) {
try {
for ( Feed feed : store . getAllLikedFeedsByUser ( " luca.frosini " , 10 ) ) {
System . out . println ( feed ) ;
}
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
}
2013-01-10 14:19:53 +01:00
2013-01-30 17:58:23 +01:00
@Test
public void testNotificationSettings ( ) {
2013-02-02 18:21:56 +01:00
try {
for ( NotificationChannelType channel : store . getUserNotificationChannels ( " luca.frosini " ) ) {
System . out . println ( channel ) ;
}
} catch ( NotificationChannelTypeNotFoundException e ) {
e . printStackTrace ( ) ;
} ;
2013-01-31 01:31:42 +01:00
// store.setUserNotificationChannel("luca.frosini", NotificationChannelType.EMAIL, true);
2013-01-30 17:58:23 +01:00
}
2013-01-10 14:19:53 +01:00
@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 " ) ;
}
}
}