2019-01-23 14:58:59 +01:00
package org.gcube.social_networking.socialutillibrary ;
import java.io.StringWriter ;
2019-01-23 15:51:28 +01:00
import java.util.ArrayList ;
2019-01-23 14:58:59 +01:00
import java.util.List ;
import org.apache.commons.codec.binary.Base64 ;
import org.gcube.portal.databook.client.GCubeSocialNetworking ;
2019-01-23 15:51:28 +01:00
import org.gcube.portlets.widgets.pickitem.shared.ItemBean ;
2019-01-23 16:36:14 +01:00
import org.gcube.socialnetworking.token.SocialStringTokenizer ;
import org.gcube.socialnetworking.token.Token ;
2019-01-23 14:58:59 +01:00
import org.junit.Assert ;
import org.junit.Test ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
public class MessageParserTest {
private static final Logger logger = LoggerFactory . getLogger ( MessageParserTest . class ) ;
public static final String TEST_11 =
" Dear all, this is a test to ignore, to select a week for the upcoming 194th #Tcom event, " +
" hosted by #Apple in #Cupertino, please use this #Doodle: http://Doodle.com/poll/not-existing-poll \ n \ n " +
" We're closing the poll next Thursday 16th March. " ;
public static final String TEST_12 =
" Just because I am so happy to have the SPARQL-endpoint available, \ n " +
" sharing some sample SPARQL queries: \ n \ n " +
" * Classes & usage counts: \ n " +
" https://virtuoso.parthenos.d4science.org/sparql?default-graph-uri=&query=%09SELECT+%3Fp+%28COUNT%28%3Fp%29+as+%3FpCount%29++%0D%0A%09%09%09%09%09WHERE+%7B%5B%5D+%3Fp+%5B%5D%7D%0D%0A%09%09%09%09%09GROUP+BY+%3Fp&format=text%2Fhtml&timeout=0&debug=on \ n " +
" \ n " +
" * properties and usage counts: \ n " +
" https://virtuoso.parthenos.d4science.org/sparql?default-graph-uri=&query=SELECT+%3Ftype+%28COUNT%28%3Ftype%29+as+%3FtypeCount%29++%0D%0A%09%09%09%09%09WHERE+%7B%5B%5D+a+%3Ftype%7D%0D%0A%09%09%09%09%09GROUP+BY+%3Ftype&format=text%2Fhtml&timeout=0&debug=on \ n " ;
2019-01-23 17:19:24 +01:00
public static final String TEST_13 = " Dear members, \ n " +
" The item 'Webinar on Ontology Management using VOCBENCH in the context of AGINFRAPLUS Project' has been just published by Leonardo Candela . \ n " +
" You can find it here: http://data.d4science.org/ctlg/AGINFRAplus/webinar_on_ontology_management_using_vocbench_in_the_context_of_aginfraplus_project \ n " +
" #AGINFRAPLUS #VOCBENCH " ;
2019-01-23 14:58:59 +01:00
public static final String TEST_LUCA = " Dear members, \ n " +
2019-01-23 15:51:28 +01:00
" The item 'just a test with time fields' has been just published by Francesco Mangiacrapa. \ n " +
2019-01-23 14:58:59 +01:00
" You can find it here: http://data-d.d4science.org/ctlg/NextNext/just_a_test_with_time_fields \ n " +
" #Text_mining #Field_1 #B3 " ;
@Test
public void test ( ) {
2019-01-23 17:19:24 +01:00
String message = " Prova #Pippo Pollo http://google) <a href= \" /test \" >Luca</a> https://www.linkedin.com/feed/update/urn:li:activity:6488779074213801984 :) " ;
2019-01-23 14:58:59 +01:00
MessageParser messageParser = new MessageParser ( message ) ;
logger . debug ( messageParser . getParsedMessage ( ) ) ;
messageParser = new MessageParser ( TEST_11 ) ;
logger . debug ( messageParser . getParsedMessage ( ) ) ;
messageParser = new MessageParser ( TEST_12 ) ;
logger . debug ( messageParser . getParsedMessage ( ) ) ;
2019-01-23 17:19:24 +01:00
messageParser = new MessageParser ( TEST_13 ) ;
logger . debug ( messageParser . getParsedMessage ( ) ) ;
2019-01-23 14:58:59 +01:00
messageParser = new MessageParser ( TEST_LUCA ) ;
logger . debug ( messageParser . getParsedMessage ( ) ) ;
2019-01-23 15:51:28 +01:00
List < ItemBean > mentionedUsers = new ArrayList < > ( ) ;
ItemBean itemBean = new ItemBean ( " 21150 " , " francesco.mangiacrapa " , " Francesco Mangiacrapa " , " " ) ;
itemBean . setItemGroup ( false ) ;
mentionedUsers . add ( itemBean ) ;
logger . debug ( messageParser . getParsedMessage ( mentionedUsers , " /group/nextnext " ) ) ;
2019-01-23 14:58:59 +01:00
}
@Test
public void aux ( ) {
String message = " Prova #Pippo Pollo http://google) :) " ;
2019-01-23 16:36:14 +01:00
SocialStringTokenizer socialStringTokenizer = new SocialStringTokenizer ( message ) ;
2019-01-23 14:58:59 +01:00
List < Token > tokens = socialStringTokenizer . getTokens ( ) ;
logger . debug ( " {} " , tokens ) ;
StringWriter stringWriter = new StringWriter ( ) ;
for ( Token token : tokens ) {
stringWriter . append ( token . getToken ( ) ) ;
stringWriter . append ( token . getDelimiter ( ) ) ;
}
Assert . assertTrue ( message . compareTo ( stringWriter . toString ( ) ) = = 0 ) ;
logger . debug ( " \ n'{}' \ n'{}' " , message , stringWriter . toString ( ) ) ;
logger . debug ( new String ( Base64 . encodeBase64 ( GCubeSocialNetworking . HASHTAG_OID . getBytes ( ) ) ) ) ;
logger . debug ( GCubeSocialNetworking . HASHTAG_OID ) ;
String hashtag = " #B3 " ;
logger . debug ( new String ( Base64 . encodeBase64 ( hashtag . getBytes ( ) ) ) ) ;
String taggedHTML = " <a class= \" link \" style= \" font-size:14px; \" href= \" ? " +
new String ( Base64 . encodeBase64 ( GCubeSocialNetworking . HASHTAG_OID . getBytes ( ) ) ) + " = " +
new String ( Base64 . encodeBase64 ( hashtag . getBytes ( ) ) ) + " \" > " + hashtag + " </a> " ;
logger . debug ( taggedHTML ) ;
}
}