Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2014
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 6.63 KB | None | 0 0
  1. package net.croz.csmi.dao.connect.facebook
  2.  
  3. import org.joda.time.{ DateTime, DateTimeZone, Interval }
  4. import org.springframework.beans.factory.annotation.Autowired
  5. import org.springframework.social.facebook.api.Facebook
  6. import org.springframework.stereotype.Service
  7. import com.restfb.FacebookClient
  8. import net.croz.csmi.{ BaseUnitTest, TestContext }
  9. import net.croz.csmi.domain.configuration.{ FacebookObjectConnectConfiguration, FacebookSearchConnectConfiguration, FacebookUrlConnectConfiguration }
  10. import net.croz.csmi.domain.connect.facebook.{ FacebookComment, FacebookPost }
  11. import net.croz.csmi.domain.connect.facebook.FacebookComment
  12. import net.croz.csmi.domain.connect.facebook.FacebookPost
  13. import net.croz.csmi.domain.connect.facebook.FacebookComment
  14.  
  15. class DefaultFacebookConnectorDaoIntegrationTest extends BaseUnitTest with TestContext {
  16.   val facebook = context getBean (classOf[Facebook])
  17.   val facebookClient = context getBean (classOf[FacebookClient])
  18.   val facebookConnectorDao = new DefaultFacebookConnectorDao(facebookClient, facebook)
  19.  
  20.   val facebookPost1 = new FacebookPost(
  21.     "316570575177906_316570891844541",
  22.     "316570575177906", "CSMI",
  23.     "Prvi post na stranici",
  24.     (new DateTime(2014, 7, 24, 15, 6, 25, DateTimeZone.forID("Europe/Belgrade"))),
  25.     (new DateTime(2014, 7, 24, 16, 5, 43, DateTimeZone.forID("Europe/Belgrade"))),
  26.     "316570575177906", "Csmitestpage", None, true, 0, 0, "")
  27.  
  28.   val facebookPost2 = new FacebookPost(
  29.     "316570575177906_316574498510847",
  30.     "316570575177906", "CSMI",
  31.     "Jos jedan post",
  32.     (new DateTime(2014, 7, 24, 15, 13, 14, DateTimeZone.forID("Europe/Belgrade"))),
  33.     (new DateTime(2014, 9, 22, 12, 27, 8, DateTimeZone.forID("Europe/Belgrade"))),
  34.     "316570575177906", "Csmitestpage", None, true, 0, 0, "")
  35.  
  36.   // Post without message (created with first post)
  37.   val facebookPostEmpty1 = new FacebookPost(
  38.     "316570575177906_316570591844571",
  39.     "316570575177906", "CSMI",
  40.     "",
  41.     (new DateTime(2014, 7, 24, 15, 5, 38, DateTimeZone.forID("Europe/Belgrade"))),
  42.     (new DateTime(2014, 7, 24, 15, 5, 38, DateTimeZone.forID("Europe/Belgrade"))),
  43.     "316570575177906", "Csmitestpage", None, true, 0, 0, "")
  44.  
  45.   // Post without message (created with first comment)
  46.   val facebookPostEmpty2 = new FacebookPost(
  47.     "316570575177906_316600641841566",
  48.     "316570575177906", "CSMI",
  49.     "",
  50.     (new DateTime(2014, 7, 24, 15, 55, 40, DateTimeZone.forID("Europe/Belgrade"))),
  51.     (new DateTime(2014, 7, 24, 15, 55, 40, DateTimeZone.forID("Europe/Belgrade"))),
  52.     "316570575177906", "Csmitestpage", None, true, 0, 0, "")
  53.  
  54.   // Post created automatically (when setting birthday)
  55.   val facebookPostEmpty3 = new FacebookPost(
  56.     "316570575177906_352844714883825",
  57.     "316570575177906", "CSMI",
  58.     "",
  59.     (new DateTime(2014, 9, 22, 12, 2, 7, DateTimeZone.forID("Europe/Belgrade"))),
  60.     (new DateTime(2014, 9, 22, 12, 2, 7, DateTimeZone.forID("Europe/Belgrade"))),
  61.     "316570575177906", "Csmitestpage", None, true, 0, 0, "")
  62.  
  63. //  it should "work" in {
  64. //    val configuration = new FacebookObjectConnectConfiguration(
  65. //      new Interval(new DateTime(2014, 8, 22, 12, 2, 7, DateTimeZone.forID("Europe/Belgrade")),
  66. //        new DateTime()), "VivasBar.hr", "source", "")
  67. //
  68. //    val posts = facebookConnectorDao.fetchAllPostsFor(configuration)
  69. //    val comments = facebookConnectorDao fetchAllCommentsFor (configuration, posts.map(_.id))
  70. //
  71. //    comments.foreach { comment =>
  72. //      val user = facebook.userOperations.getUserProfile(comment.fromId)
  73. //      println(user.getGender() + " - " + user.getLocale())
  74. //    }
  75. //  }
  76.  
  77.   it should "fetch all posts for Csmitestpage" in {
  78.     val configuration = new FacebookObjectConnectConfiguration(1, new Interval(new DateTime(0), new DateTime), "316570575177906", "CSMI", "")
  79.     val posts = facebookConnectorDao fetchAllPostsFor configuration
  80.    
  81.     posts.foreach(p => println(p.fromGender))
  82.  
  83.     posts should contain only (facebookPost1, facebookPost2, facebookPostEmpty1, facebookPostEmpty2, facebookPostEmpty3)
  84.   }
  85.  
  86.   it should "fetch all comments for facebookPost1, facebookPost2" in {
  87.     val configuration = new FacebookUrlConnectConfiguration(1, new Interval(new DateTime(0), new DateTime), "316570575177906", "CSMI", "")
  88.     val comments = facebookConnectorDao fetchAllCommentsFor (configuration, List(facebookPost1.id.toString, facebookPost2.id.toString))
  89.  
  90.     val facebookComment1 = new FacebookComment(
  91.       "316570891844541_316605608507736",
  92.       "316570575177906", "CSMI", "316570575177906_316570891844541",
  93.       "komentar",
  94.       (new DateTime(2014, 7, 24, 16, 5, 43, DateTimeZone.forID("Europe/Belgrade"))),
  95.       "316570575177906", "Csmitestpage", None, true, 0, "")
  96.  
  97.     val facebookComment2 = new FacebookComment(
  98.       "316574498510847_316600635174900",
  99.       "316570575177906", "CSMI", "316570575177906_316574498510847",
  100.       "komentar na drugi post",
  101.       (new DateTime(2014, 7, 24, 15, 55, 40, DateTimeZone.forID("Europe/Belgrade"))),
  102.       "316570575177906", "Csmitestpage", None, true, 0, "")
  103.  
  104.     val facebookComment3 = new FacebookComment(
  105.       "316574498510847_352852151549748",
  106.       "316570575177906", "CSMI", "316570575177906_316574498510847",
  107.       "komentar korisnika",
  108.       (new DateTime(2014, 9, 22, 12, 27, 8, DateTimeZone.forID("Europe/Belgrade"))),
  109.       "100006417347473", "Csmi Integrationtest", Some("male"), true, 0, "")
  110.  
  111.     val facebookComment4 = new FacebookComment(
  112.       "316574498510847_352884148213215",
  113.       "316570575177906", "CSMI", "316570575177906_316574498510847",
  114.       "komentar",
  115.       (new DateTime(2014, 9, 22, 14, 32, 4, DateTimeZone.forID("Europe/Belgrade"))),
  116.       "1128012474", "Domagoj Krivošić", Some("male"), false, 0, "")
  117.  
  118.     comments should have size 4
  119.     comments should contain only (facebookComment1, facebookComment2, facebookComment3, facebookComment4)
  120.   }
  121.  
  122.   it should "fetch facebookPost1, facebookPost2 by ids" in {
  123.     val configuration = new FacebookObjectConnectConfiguration(1, new Interval(new DateTime(0), new DateTime), "316570575177906", "CSMI", "")
  124.  
  125.     // TODO: actually test if all returned posts are defined
  126.     val posts = facebookConnectorDao fetchPostsBy (configuration, List(facebookPost1.id.toString, facebookPost2.id.toString)) map (_.get)
  127.  
  128.     posts should have size 2
  129.     posts should contain only (facebookPost1, facebookPost2)
  130.   }
  131.  
  132.   ignore should "search by" in {
  133.     val configuration = new FacebookSearchConnectConfiguration(1, new Interval((new DateTime).minusMinutes(5), new DateTime), "facebook", "search", "")
  134.     val results = facebookConnectorDao searchBy configuration
  135.  
  136.     results should not be empty
  137.   }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement