Skip to content

Commit

Permalink
Release 0.2.8
Browse files Browse the repository at this point in the history
  • Loading branch information
yukihirai0505 committed Oct 24, 2017
1 parent 8ed271b commit 3cd4f22
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 77 deletions.
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ sonatypeSettings

name := "sInstagram"

version := "0.2.7"
version := "0.2.8"

scalaVersion := "2.11.8"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,7 @@ class Instagram(override val auth: Auth) extends InstagramTrait {
request(Verbs.GET, Methods.TAGS_SEARCH, Some(params))
}

/* Location */
/* Locations */

/**
* Get information about a location.
Expand Down
163 changes: 88 additions & 75 deletions src/test/scala/com/yukihirai0505/sInstagram/InstagramSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -52,38 +52,25 @@ class InstagramSpec extends FlatSpec with Matchers {
var locationId: Option[String] = None
var latitude: Option[Double] = None
var longitude: Option[Double] = None
var mediaCommentId: Option[String] = None

/* User */
"getCurrentUserInfo" should "return a Some[UserInfo]" in {
val request = Await.result(instagram.getUserInfo(), 10 seconds)
userId = request.data.map(_.data.id)
request should be(anInstanceOf[Response[Data[UserInfo]]])
}


"A failed request" should "return a failed promise" in {
an[Exception] should be thrownBy Await.result(new Instagram(wrongToken).getUserInfo(userId), 10 seconds)
}

"getRecentMediaFeed" should "return a Some[MediaFeed]" in {
val request = Await.result(instagram.getRecentMediaFeed(), 10 seconds)
mediaId = request.data.flatMap(_.data.lastOption.flatMap(x => Some(x.id)))
locationId = request.data.flatMap(_.data.lastOption.flatMap(_.location.flatMap(x => Some(x.id.getOrElse("").toString)))
)
locationId = request.data.flatMap(_.data.lastOption.flatMap(_.location.flatMap(x => Some(x.id.getOrElse("").toString))))
request should be(anInstanceOf[Response[DataWithPage[MediaFeed]]])
}

"getUserFollowList" should "return a Some[UserFeed]" in {
val request = Await.result(instagram.getFollowList(), 10 seconds)
request should be(anInstanceOf[Response[Data[User]]])
}

"getUserAllFollowsList" should "return Seq[User]" in {
val request = Await.result(instagram.getAllFollowsList, 10 seconds)
if (request.isEmpty) request.isEmpty should be(true)
else request should be(anInstanceOf[Seq[User]])
}

"getUserLikedMediaFeed" should "return a Some[MediaFeed]" in {
val request = Await.result(instagram.getUserLikedMediaFeed(), 10 seconds)
request should be(anInstanceOf[Response[DataWithPage[MediaFeed]]])
Expand All @@ -94,118 +81,144 @@ class InstagramSpec extends FlatSpec with Matchers {
request should be(anInstanceOf[Response[Data[Seq[User]]]])
}

"getLocationInfo" should "return a Some[LocationInfo]" in {
val request = Await.result(instagram.getLocationInfo(locationId.getOrElse("")), 10 seconds)
latitude = request.data.flatMap(_.data.latitude)
longitude = request.data.flatMap(_.data.longitude)
request should be(anInstanceOf[Response[Data[Location]]])

/* Relationships */

"getUserFollowList" should "return a Some[UserFeed]" in {
val request = Await.result(instagram.getFollowList(), 10 seconds)
request should be(anInstanceOf[Response[Data[User]]])
}

"getTagInfo200" should "return a Some[TagInfoFeed]" in {
val request = Await.result(instagram.getTagInfo("test"), 10 seconds)
request should be(anInstanceOf[Response[Data[TagInfoFeed]]])
"getUserAllFollowsList" should "return Seq[User]" in {
val request = Await.result(instagram.getAllFollowsList, 10 seconds)
if (request.isEmpty) request.isEmpty should be(true)
else request should be(anInstanceOf[Seq[User]])
}

"getTagInfo400" should "return a Some[TagInfoFeed]" in {
// "lolita" will be 400 This tag cannot be viewed
an[Exception] should be thrownBy Await.result(instagram.getTagInfo("lolita"), 10 seconds)
"getUserFollowedByList" should "return a Some[UserFeed]" in {
val request = Await.result(instagram.getFollowedByList(), 10 seconds)
request should be(anInstanceOf[Response[DataWithPage[User]]])
}

"searchLocation" should "return a Some[LocationSearchFeed]" in {
val request = Await.result(instagram.searchLocation(latitude.getOrElse(0), longitude.getOrElse(0)), 10 seconds)
request should be(anInstanceOf[Response[Data[Seq[Location]]]])
"getUserAllFollowersList" should "return Seq[User]]" in {
val request = Await.result(instagram.getAllFollowersList, 10 seconds)
if (request.isEmpty) request.isEmpty should be(true)
else request should be(anInstanceOf[Seq[User]])
}

"getRecentMediaByLocation" should "return a Some[MediaFeed]" in {
val request = Await.result(instagram.getLocationRecentMedia(locationId.getOrElse("")), 10 seconds)
request should be(anInstanceOf[Response[DataWithPage[MediaFeed]]])
"getUserRequestedBy" should "return a Some[UserFeed]" in {
val request = Await.result(instagram.getUserRequestedBy, 10 seconds)
request should be(anInstanceOf[Response[DataWithPage[User]]])
}

"setUserLike" should "return a Some[LikesFeed]" in {
val request = Await.result(instagram.setUserLike(mediaId.getOrElse("")), 10 seconds)
request should be(anInstanceOf[Response[Data[LikeUserInfo]]])
"getUserRelationship" should "return a Some[RelationshipFeed]" in {
val request = Await.result(instagram.getUserRelationship(userId.getOrElse("")), 10 seconds)
request should be(anInstanceOf[Response[Data[RelationshipFeed]]])
}

"setUserRelationship" should "return a Some[RelationshipFeed]" in {
val request = Await.result(instagram.setUserRelationship(userId.getOrElse(""), Relationship.FOLLOW), 10 seconds)
request should be(anInstanceOf[Response[Data[RelationshipFeed]]])
}

/* Media */

"getMediaInfo" should "return a Some[MediaInfoFeed]" in {
val request = Await.result(instagram.getMediaInfo(mediaId.getOrElse("")), 10 seconds)
request should be(anInstanceOf[Response[Data[MediaFeed]]])
}

"deleteUserLike" should "return a Some[NoDataResponse]" in {
val request = Await.result(instagram.deleteUserLike(mediaId.getOrElse("")), 10 seconds)
request should be(anInstanceOf[Response[NoDataResponse]])
"getMediaInfoByShortcode" should "return a Some[MediaInfoFeed]" in {
val request = Await.result(instagram.getMediaInfoByShortcode("BZfmV4RFklR"), 10 seconds)
request should be(anInstanceOf[Response[Data[MediaFeed]]])
}

"setMediaComments" should "return a Some[NoDataResponse]" in {
val request = Await.result(instagram.setMediaComments(mediaId.getOrElse(""), "test"), 10 seconds)
request should be(anInstanceOf[Response[NoDataResponse]])
"searchMedia" should "return a Some[MediaFeed]" in {
val request = Await.result(instagram.searchMedia(latitude.getOrElse(0), longitude.getOrElse(0)), 10 seconds)
request should be(anInstanceOf[Response[Data[Seq[MediaFeed]]]])
}

/* Comments */

"getMediaComments" should "return a Some[MediaCommentsFeed]" in {
val request = Await.result(instagram.getMediaComments(mediaId.getOrElse("")), 10 seconds)
mediaCommentId = request.data.flatMap(_.data.lastOption).flatMap(x => Some(x.id))
val mediaCommentId = request.data.flatMap(_.data.lastOption).flatMap(x => Some(x.id))
request should be(anInstanceOf[Response[Data[Seq[CommentData]]]])
}

"setMediaComments" should "return a Some[NoDataResponse]" in {
val request = Await.result(instagram.setMediaComments(mediaId.getOrElse(""), "test"), 10 seconds)
request should be(anInstanceOf[Response[NoDataResponse]])
}

"deleteMediaCommentById" should "return a Some[NoDataResponse]" in {
val request = Await.result(instagram.deleteMediaCommentById(mediaId.getOrElse(""), mediaCommentId.getOrElse("")), 10 seconds)
val mediaCommentId = Await.result(instagram.getMediaComments(mediaId.getOrElse("")), 10 seconds).data.flatMap(_.data.lastOption).flatMap(x => Some(x.id)).get
val request = Await.result(instagram.deleteMediaCommentById(mediaId.getOrElse(""), mediaCommentId), 10 seconds)
request should be(anInstanceOf[Response[NoDataResponse]])
}

"getUserFollowedByList" should "return a Some[UserFeed]" in {
val request = Await.result(instagram.getFollowedByList(), 10 seconds)
request should be(anInstanceOf[Response[DataWithPage[User]]])
/* Like */

"getUserLikes" should "return a Some[LikesFeed]" in {
val request = Await.result(instagram.getUserLikes(mediaId.getOrElse("")), 10 seconds)
request should be(anInstanceOf[Response[Data[Seq[LikeUserInfo]]]])
}

"getUserAllFollowersList" should "return Seq[User]]" in {
val request = Await.result(instagram.getAllFollowersList, 10 seconds)
if (request.isEmpty) request.isEmpty should be(true)
else request should be(anInstanceOf[Seq[User]])
"setUserLike" should "return a Some[LikesFeed]" in {
val request = Await.result(instagram.setUserLike(mediaId.getOrElse("")), 10 seconds)
request should be(anInstanceOf[Response[Data[LikeUserInfo]]])
}

"getMediaInfoByShortCode" should "return a Some[MediaInfoFeed]" in {
val request = Await.result(instagram.getMediaInfoByShortcode("BZfmV4RFklR"), 10 seconds)
request should be(anInstanceOf[Response[Data[MediaFeed]]])
"deleteUserLike" should "return a Some[NoDataResponse]" in {
val request = Await.result(instagram.deleteUserLike(mediaId.getOrElse("")), 10 seconds)
request should be(anInstanceOf[Response[NoDataResponse]])
}

"searchTags" should "return a Some[TagSearchFeed]" in {
val request = Await.result(instagram.searchTags("test"), 10 seconds)
request should be(anInstanceOf[Response[Data[Seq[TagInfoFeed]]]])
/* Tags */

"getTagInfo200" should "return a Some[TagInfoFeed]" in {
val request = Await.result(instagram.getTagInfo("test"), 10 seconds)
request should be(anInstanceOf[Response[Data[TagInfoFeed]]])
}

"getTagInfo400" should "return a Some[TagInfoFeed]" in {
// "lolita" will be 400 This tag cannot be viewed
an[Exception] should be thrownBy Await.result(instagram.getTagInfo("lolita"), 10 seconds)
}

"getRecentMediaFeedTags" should "return a Some[MediaFeed]" in {
"getTagsRecentMedia" should "return a Some[MediaFeed]" in {
val request = Await.result(instagram.getTagsRecentMedia("test"), 10 seconds)
request should be(anInstanceOf[Response[DataWithPage[MediaFeed]]])
}

"setUserRelationship" should "return a Some[RelationshipFeed]" in {
val request = Await.result(instagram.setUserRelationship(userId.getOrElse(""), Relationship.FOLLOW), 10 seconds)
request should be(anInstanceOf[Response[Data[RelationshipFeed]]])
"searchTags" should "return a Some[TagSearchFeed]" in {
val request = Await.result(instagram.searchTags("test"), 10 seconds)
request should be(anInstanceOf[Response[Data[Seq[TagInfoFeed]]]])
}

"getUserRequestedBy" should "return a Some[UserFeed]" in {
val request = Await.result(instagram.getUserRequestedBy, 10 seconds)
request should be(anInstanceOf[Response[DataWithPage[User]]])
/* Locations */

"getLocationInfo" should "return a Some[LocationInfo]" in {
val request = Await.result(instagram.getLocationInfo(locationId.getOrElse("")), 10 seconds)
latitude = request.data.flatMap(_.data.latitude)
longitude = request.data.flatMap(_.data.longitude)
request should be(anInstanceOf[Response[Data[Location]]])
}

"getUserRelationship" should "return a Some[RelationshipFeed]" in {
val request = Await.result(instagram.getUserRelationship(userId.getOrElse("")), 10 seconds)
request should be(anInstanceOf[Response[Data[RelationshipFeed]]])
"getLocationRecentMedia" should "return a Some[MediaFeed]" in {
val request = Await.result(instagram.getLocationRecentMedia(locationId.getOrElse("")), 10 seconds)
request should be(anInstanceOf[Response[DataWithPage[MediaFeed]]])
}

"searchFacebookPlace" should "return a Some[LocationSearchFeed]" in {
val request = Await.result(instagram.searchFacebookPlace(locationId.getOrElse("")), 10 seconds)
"searchLocation" should "return a Some[LocationSearchFeed]" in {
val request = Await.result(instagram.searchLocation(latitude.getOrElse(0), longitude.getOrElse(0)), 10 seconds)
request should be(anInstanceOf[Response[Data[Seq[Location]]]])
}

"searchMedia" should "return a Some[MediaFeed]" in {
val request = Await.result(instagram.searchMedia(latitude.getOrElse(0), longitude.getOrElse(0)), 10 seconds)
request should be(anInstanceOf[Response[Data[Seq[MediaFeed]]]])
"searchFacebookPlace" should "return a Some[LocationSearchFeed]" in {
val request = Await.result(instagram.searchFacebookPlace(locationId.getOrElse("")), 10 seconds)
request should be(anInstanceOf[Response[Data[Seq[Location]]]])
}

"getUserLikes" should "return a Some[LikesFeed]" in {
val request = Await.result(instagram.getUserLikes(mediaId.getOrElse("")), 10 seconds)
request should be(anInstanceOf[Response[Data[Seq[LikeUserInfo]]]])
}

}

0 comments on commit 3cd4f22

Please sign in to comment.