Skip to content

Commit 7f00aed

Browse files
committed
Add tests
1 parent 7c95b8b commit 7f00aed

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

api-model/src/main/scala/hmda/api/protocol/public/ULIProtocol.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package hmda.api.protocol.public
33
import hmda.api.model.public.ULIModel.{ Loan, ULI, ULICheck, ULIValidated }
44
import spray.json.DefaultJsonProtocol
55

6-
object ULIProtocol extends DefaultJsonProtocol {
6+
trait ULIProtocol extends DefaultJsonProtocol {
77

88
implicit val loanFormat = jsonFormat1(Loan.apply)
99
implicit val uliFormat = jsonFormat3(ULI.apply)

api/src/main/scala/hmda/api/http/public/PublicHttpApi.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ import akka.util.Timeout
77
import hmda.api.http.HmdaCustomDirectives
88
import akka.http.scaladsl.server.Directives._
99
import hmda.api.model.public.ULIModel.{ Loan, ULI, ULICheck, ULIValidated }
10-
import hmda.api.protocol.public.ULIProtocol._
1110
import hmda.validation.engine.lar.ULI._
1211
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
1312
import akka.http.scaladsl.marshalling.ToResponseMarshallable
13+
import hmda.api.protocol.public.ULIProtocol
1414

1515
import scala.concurrent.ExecutionContext
1616

17-
trait PublicHttpApi extends PublicLarHttpApi with HmdaCustomDirectives {
17+
trait PublicHttpApi extends PublicLarHttpApi with HmdaCustomDirectives with ULIProtocol {
1818
implicit val system: ActorSystem
1919
implicit val materializer: ActorMaterializer
2020
implicit val timeout: Timeout

api/src/test/scala/hmda/api/http/public/PublicHttpApiSpec.scala

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,17 @@ import akka.http.scaladsl.model.StatusCodes
55
import akka.http.scaladsl.testkit.ScalatestRouteTest
66
import akka.util.Timeout
77
import hmda.api.RequestHeaderUtils
8+
import hmda.api.model.public.ULIModel.{ Loan, ULI, ULICheck, ULIValidated }
9+
import hmda.api.protocol.public.ULIProtocol
810
import hmda.model.fi.lar.LarGenerators
911
import hmda.query.repository.filing.LarConverter._
1012
import org.scalatest.{ BeforeAndAfterAll, MustMatchers, WordSpec }
13+
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
1114

1215
import scala.concurrent.duration._
1316

1417
class PublicHttpApiSpec extends WordSpec with MustMatchers with BeforeAndAfterAll
15-
with ScalatestRouteTest with RequestHeaderUtils with PublicHttpApi with LarGenerators {
18+
with ScalatestRouteTest with RequestHeaderUtils with PublicHttpApi with LarGenerators with ULIProtocol {
1619

1720
override val log: LoggingAdapter = NoLogging
1821
implicit val ec = system.dispatcher
@@ -35,4 +38,23 @@ class PublicHttpApiSpec extends WordSpec with MustMatchers with BeforeAndAfterAl
3538
}
3639
}
3740

41+
"ULI API" must {
42+
val loanId = "10Bx939c5543TqA1144M999143X"
43+
val checkDigit = 38
44+
val uli = "10Bx939c5543TqA1144M999143X" + checkDigit
45+
val loan = Loan(loanId)
46+
val uliCheck = ULICheck(uli)
47+
48+
"return check digit and ULI from loan id" in {
49+
Post("/uli/check-digit", loan) ~> publicHttpRoutes ~> check {
50+
responseAs[ULI] mustBe ULI(loanId, checkDigit, uli)
51+
}
52+
}
53+
"Validate ULI" in {
54+
Post("/uli/validate", uliCheck) ~> publicHttpRoutes ~> check {
55+
responseAs[ULIValidated] mustBe ULIValidated(true)
56+
}
57+
}
58+
}
59+
3860
}

0 commit comments

Comments
 (0)