Skip to content

Commit

Permalink
fix for #509
Browse files Browse the repository at this point in the history
  • Loading branch information
fehguy committed Mar 25, 2014
1 parent f00f443 commit 1814035
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ class JodaDateTimeConverter extends ModelConverter with BaseConverter {
// }
//
// (note the keys are lowercase when matching)
override def typeMap = Map("datetime" -> "Date")
override def typeMap = Map("datetime" -> "Date", "xmlgregoriancalendar" -> "Date")

// don't expand DateTime models
override def ignoredClasses: Set[String] = Set("org.joda.time.DateTime")
override def ignoredClasses: Set[String] = Set("org.joda.time.DateTime", "javax.xml.datatype.XMLGregorianCalendar")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package converter

import model._

import com.wordnik.swagger.annotations._
import com.wordnik.swagger.converter._
import com.wordnik.swagger.core.util._
import com.wordnik.swagger.model._

import org.joda.time.DateTime

import scala.collection.mutable.LinkedHashMap
import scala.annotation.target.field
import javax.xml.datatype.XMLGregorianCalendar

import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import org.scalatest.FlatSpec
import org.scalatest.matchers.ShouldMatchers

@RunWith(classOf[JUnitRunner])
class XMLGregorianCalendarTest extends FlatSpec with ShouldMatchers {
it should "read a model with XMLGregorianCalendar" in {
val models = ModelConverters.readAll(classOf[ModelWithCalendar])
models.size should be (1) // don't create a Joda DateTime object

val model = models.head
val nameProperty = model.properties("name")
nameProperty.`type` should be ("string")
nameProperty.position should be (2)
nameProperty.description should be (Some("name of the model"))

val dateTimeProperty = model.properties("createdAt")
dateTimeProperty.`type` should be ("Date")
dateTimeProperty.position should be (1)
dateTimeProperty.required should be (true)
dateTimeProperty.description should be (Some("creation timestamp"))

println(JsonSerializer.asJson(models.head))
}
}


case class ModelWithCalendar (
@(ApiModelProperty @field)(value = "name of the model", position = 2) name: String,
@(ApiModelProperty @field)(value = "creation timestamp", required = true, position = 1) createdAt: XMLGregorianCalendar)

0 comments on commit 1814035

Please sign in to comment.