Skip to content

Commit a96e6bd

Browse files
committed
tests for #610
1 parent 94e1b75 commit a96e6bd

File tree

3 files changed

+109
-0
lines changed

3 files changed

+109
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import testresources._
2+
3+
import com.wordnik.swagger.jaxrs.reader._
4+
import com.wordnik.swagger.core.util._
5+
import com.wordnik.swagger.model._
6+
import com.wordnik.swagger.config._
7+
import com.wordnik.swagger.core.filter._
8+
import com.wordnik.swagger.core.util.ReaderUtil
9+
10+
import java.lang.reflect.Method
11+
12+
import java.util.Date
13+
14+
import org.junit.runner.RunWith
15+
import org.scalatest.junit.JUnitRunner
16+
import org.scalatest.FlatSpec
17+
import org.scalatest.matchers.ShouldMatchers
18+
19+
import scala.collection.mutable.ListBuffer
20+
21+
@RunWith(classOf[JUnitRunner])
22+
class MergedResourceTest extends FlatSpec with ShouldMatchers {
23+
it should "read an api and extract an error model" in {
24+
val reader = new DefaultJaxrsApiReader
25+
val config = new SwaggerConfig()
26+
val r1 = reader.read("/api-docs", classOf[MergedResource1], config).getOrElse(fail("should not be None"))
27+
val r2 = reader.read("/api-docs", classOf[MergedResource2], config).getOrElse(fail("should not be None"))
28+
29+
val merged = new TestReader().groupByResourcePath(List(r1, r2))
30+
merged.size should be (1)
31+
val listing = merged.head
32+
println(listing.models.get.keys)
33+
// (listing.models.get.keys.toSet & Set("NotFoundModel", "Sample1", "Sample2")).size should be (3)
34+
}
35+
}
36+
37+
class TestReader extends ReaderUtil
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package testresources
2+
3+
import testmodels._
4+
import com.wordnik.swagger.core._
5+
import com.wordnik.swagger.annotations._
6+
7+
import javax.ws.rs._
8+
import javax.ws.rs.core.Response
9+
10+
import javax.xml.bind.annotation._
11+
12+
import scala.beans.BeanProperty
13+
14+
@Path("/merged")
15+
@Api(value = "/merged", description = "MergedResource")
16+
class MergedResource1 {
17+
@GET
18+
@Path("/model1")
19+
@ApiOperation(value = "Get object by ID",
20+
notes = "No details provided",
21+
response = classOf[Sample1],
22+
position = 0)
23+
@ApiResponses(Array(
24+
new ApiResponse(code = 400, message = "Invalid ID", response = classOf[NotFoundModel]),
25+
new ApiResponse(code = 404, message = "object not found")))
26+
def getTest(
27+
@ApiParam(value = "sample param data", required = true, allowableValues = "range[0,10]")@DefaultValue("1") @QueryParam("id") id: String) = {
28+
val out = new Sample1
29+
out.name = "foo"
30+
Response.ok.entity(out).build
31+
}
32+
}
33+
34+
class Sample1 {
35+
@BeanProperty var name: String = _
36+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package testresources
2+
3+
import testmodels._
4+
import com.wordnik.swagger.core._
5+
import com.wordnik.swagger.annotations._
6+
7+
import javax.ws.rs._
8+
import javax.ws.rs.core.Response
9+
10+
import javax.xml.bind.annotation._
11+
12+
import scala.beans.BeanProperty
13+
14+
@Path("/merged")
15+
@Api(value = "/merged", description = "MergedResource")
16+
class MergedResource2 {
17+
@GET
18+
@Path("/model2")
19+
@ApiOperation(value = "Get object by ID",
20+
notes = "No details provided",
21+
response = classOf[Sample2],
22+
position = 0)
23+
@ApiResponses(Array(
24+
new ApiResponse(code = 400, message = "Invalid ID", response = classOf[NotFoundModel]),
25+
new ApiResponse(code = 404, message = "object not found")))
26+
def getTest(
27+
@ApiParam(value = "sample param data", required = true, allowableValues = "range[0,10]")@DefaultValue("1") @QueryParam("id") id: String) = {
28+
val out = new Sample2
29+
out.id = "100"
30+
Response.ok.entity(out).build
31+
}
32+
}
33+
34+
class Sample2 {
35+
@BeanProperty var id: String = _
36+
}

0 commit comments

Comments
 (0)