Skip to content

Commit ea4d5db

Browse files
committed
Parsing input Query q,Test for searchRepositories
1 parent a4e89b4 commit ea4d5db

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

src/main/scala/codecheck/github/models/Search.scala

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package codecheck.github.models
22

33
import org.json4s.JValue
4+
import org.json4s.JArray
45
import codecheck.github.models.SortDirection
56

67
sealed abstract class SearchSort(val name: String) {
@@ -21,5 +22,8 @@ case class SearchInput (
2122
case class SearchRepositoryResult(value: JValue) extends AbstractJson(value) {
2223
def total_count: Long = get("total_count").toLong
2324
def incomplete_results: Boolean = boolean("incomplete_results")
24-
lazy val items = Repository(value \ "items")
25+
lazy val items = (value \ "items") match {
26+
case JArray(arr) => arr.map(new Repository(_))
27+
case _ => Nil
28+
}
2529
}

src/test/scala/SearchOpSpec.scala

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,33 @@ import codecheck.github.models.SearchRepositoryResult
99
class SearchOpSpec extends FunSpec
1010
with Constants
1111
{
12-
val input = SearchInput("tetris",sort=Some(SearchSort.stars),order=SortDirection.desc)
13-
describe("searchRepositories") {
12+
13+
describe("searchRepositories") {
1414
it("with valid SearchInput should succeed") {
15+
var q = "tetris language:assembly"
16+
val q1 = q.trim.replaceAll(" ","+");
17+
val input = SearchInput(q1,sort=Some(SearchSort.stars),order=SortDirection.desc)
18+
Await.result(api.searchRepositories(input), TIMEOUT).map { res =>
19+
assert(res.total_count >= 1)
20+
assert(res.items(0).id >= 1 )
21+
assert(res.items(0).name.length >= 1)
22+
assert(res.items(0).full_name.length >= 1)
23+
assert(res.items(0).description.isDefined)
24+
assert(res.items(0).open_issues_count >= 0)
25+
println("RESULT" + res)
26+
}
27+
}
28+
it("with valid changed query(q) SearchInput should succeed") {
29+
var q = "jquery in:name,description"
30+
val q1 = q.trim.replaceAll(" ","+");
31+
val input = SearchInput(q1,sort=Some(SearchSort.stars),order=SortDirection.desc)
1532
Await.result(api.searchRepositories(input), TIMEOUT).map { res =>
1633
assert(res.total_count >= 1)
34+
assert(res.items(0).id >= 1 )
35+
assert(res.items(0).name.length >= 1)
36+
assert(res.items(0).full_name.length >= 1)
37+
assert(res.items(0).description.isDefined)
38+
assert(res.items(0).open_issues_count >= 0)
1739
println("RESULT" + res)
1840
}
1941
}

0 commit comments

Comments
 (0)