1717package v1 .connectors .httpparsers
1818
1919import play .api .http .Status
20- import play .api .http .Status ._
21- import play .api .libs .json .{JsValue , Json }
20+ import play .api .http .Status .{ CREATED , OK }
21+ import play .api .libs .json .{ JsValue , Json }
2222import support .UnitSpec
2323import uk .gov .hmrc .http .HttpResponse
2424import v1 .connectors .httpparsers .FinancialDataHttpParser .FinancialDataHttpReads
25- import v1 .constants .{FinancialDataConstants , PenaltiesConstants }
25+ import v1 .constants .{ FinancialDataConstants , PenaltiesConstants }
2626import v1 .models .errors ._
2727
2828class FinancialDataHttpParserSpec extends UnitSpec {
@@ -31,83 +31,92 @@ class FinancialDataHttpParserSpec extends UnitSpec {
3131
3232 " FinancialDataHttpReads" when {
3333
34- " response is OK (200)" when {
34+ Seq (OK , CREATED ).foreach { successResponse =>
35+ s " response is a $successResponse" when {
3536
36- " json is valid" must {
37+ " json is valid" must {
3738
38- " return Right(FinancialDataResponse) min" in {
39+ " return Right(FinancialDataResponse) min" in {
3940
40- val result = FinancialDataHttpReads .read(" " , " " ,
41- HttpResponse (
42- status = Status .OK ,
43- json = FinancialDataConstants .testDownstreamFinancialDetails,
44- headers = Map (
45- " CorrelationId" -> Seq (FinancialDataConstants .correlationId)
41+ val result = FinancialDataHttpReads .read(
42+ " " ,
43+ " " ,
44+ HttpResponse (
45+ status = successResponse,
46+ json = FinancialDataConstants .testDownstreamFinancialDetails,
47+ headers = Map (
48+ " CorrelationId" -> Seq (FinancialDataConstants .correlationId)
49+ )
4650 )
4751 )
48- )
4952
50- result shouldBe Right (FinancialDataConstants .wrappedFinancialDataResponse())
51- }
53+ result shouldBe Right (FinancialDataConstants .wrappedFinancialDataResponse())
54+ }
5255
53- " return Right(FinancialDataResponse) max" in {
56+ " return Right(FinancialDataResponse) max" in {
5457
55- val result = FinancialDataHttpReads .read(" " , " " ,
56- HttpResponse (
57- status = Status .OK ,
58- json = FinancialDataConstants .testDownstreamFinancialDetails,
59- headers = Map (
60- " CorrelationId" -> Seq (FinancialDataConstants .correlationId)
58+ val result = FinancialDataHttpReads .read(
59+ " " ,
60+ " " ,
61+ HttpResponse (
62+ status = successResponse,
63+ json = FinancialDataConstants .testDownstreamFinancialDetails,
64+ headers = Map (
65+ " CorrelationId" -> Seq (FinancialDataConstants .correlationId)
66+ )
6167 )
6268 )
63- )
6469
65- result shouldBe Right (FinancialDataConstants .wrappedFinancialDataResponse(FinancialDataConstants .testFinancialDataResponse))
66- }
70+ result shouldBe Right (FinancialDataConstants .wrappedFinancialDataResponse(FinancialDataConstants .testFinancialDataResponse))
71+ }
6772
68- " return Right(FinancialDataResponse) No Document Details" in {
73+ " return Right(FinancialDataResponse) No Document Details" in {
6974
70- val result = FinancialDataHttpReads .read(" " , " " ,
71- HttpResponse (
72- status = Status .OK ,
73- json = FinancialDataConstants .testDownstreamFinancialDetailsNoDocumentDetails,
74- headers = Map (
75- " CorrelationId" -> Seq (FinancialDataConstants .correlationId)
75+ val result = FinancialDataHttpReads .read(
76+ " " ,
77+ " " ,
78+ HttpResponse (
79+ status = successResponse,
80+ json = FinancialDataConstants .testDownstreamFinancialDetailsNoDocumentDetails,
81+ headers = Map (
82+ " CorrelationId" -> Seq (FinancialDataConstants .correlationId)
83+ )
7684 )
7785 )
78- )
7986
80- result shouldBe Right (FinancialDataConstants .wrappedFinancialDataResponse(FinancialDataConstants .testFinancialNoDocumentDetailsDataResponse))
87+ result shouldBe Right (
88+ FinancialDataConstants .wrappedFinancialDataResponse(FinancialDataConstants .testFinancialNoDocumentDetailsDataResponse))
89+ }
8190 }
82- }
8391
84- " json is invalid" must {
85-
86- " return Left(InvalidJson)" in {
87-
88- val jsonObject =
89- Json .parse(""" {
90- | "getFinancialData": {
91- | "financialDetails": {
92- | "documentDetails": {
93- | "test": "test"
94- | }
95- | }
96- | }
97- |}
98- |""" .stripMargin)
99-
100- val result = FinancialDataHttpReads .read(" " , " " ,
101- HttpResponse (
102- status = Status .OK ,
103- json = jsonObject,
104- headers = Map (
105- " CorrelationId" -> Seq (FinancialDataConstants .correlationId)
106- )
107- )
108- )
109-
110- result shouldBe Left (FinancialDataConstants .errorWrapper(InvalidJson ))
92+ " json is invalid" must {
93+
94+ " return Left(InvalidJson)" in {
95+
96+ val jsonObject =
97+ Json .parse(""" {
98+ | "getFinancialData": {
99+ | "financialDetails": {
100+ | "documentDetails": {
101+ | "test": "test"
102+ | }
103+ | }
104+ | }
105+ |}
106+ |""" .stripMargin)
107+
108+ val result = FinancialDataHttpReads .read(" " ,
109+ " " ,
110+ HttpResponse (
111+ status = successResponse,
112+ json = jsonObject,
113+ headers = Map (
114+ " CorrelationId" -> Seq (FinancialDataConstants .correlationId)
115+ )
116+ ))
117+
118+ result shouldBe Left (FinancialDataConstants .errorWrapper(InvalidJson ))
119+ }
111120 }
112121 }
113122 }
@@ -116,8 +125,7 @@ class FinancialDataHttpParserSpec extends UnitSpec {
116125
117126 " return Left(InvalidVrn)" in {
118127
119- val error = Json .parse(
120- """
128+ val error = Json .parse("""
121129 |{
122130 |"failures": [{
123131 |"code":"INVALID_IDNUMBER",
@@ -126,15 +134,15 @@ class FinancialDataHttpParserSpec extends UnitSpec {
126134 |}
127135 |""" .stripMargin)
128136
129- val result = FinancialDataHttpReads .read(" " , " " ,
130- HttpResponse (
131- status = Status . BAD_REQUEST ,
132- json = error ,
133- headers = Map (
134- " CorrelationId " -> Seq ( FinancialDataConstants .correlationId)
135- )
136- )
137- )
137+ val result = FinancialDataHttpReads .read(" " ,
138+ " " ,
139+ HttpResponse (
140+ status = Status . BAD_REQUEST ,
141+ json = error,
142+ headers = Map (
143+ " CorrelationId " -> Seq ( FinancialDataConstants .correlationId )
144+ )
145+ ) )
138146 result shouldBe Left (FinancialDataConstants .errorWrapper(MtdError (" VRN_INVALID" , " The provided VRN is invalid" )))
139147 }
140148 }
@@ -143,8 +151,7 @@ class FinancialDataHttpParserSpec extends UnitSpec {
143151
144152 " return Left(VrnNotFound)" in {
145153
146- val error = Json .parse(
147- """
154+ val error = Json .parse("""
148155 |{
149156 |"failures": [{
150157 |"code":"NO_DATA_FOUND",
@@ -153,15 +160,15 @@ class FinancialDataHttpParserSpec extends UnitSpec {
153160 |}
154161 |""" .stripMargin)
155162
156- val result = FinancialDataHttpReads .read(" " , " " ,
157- HttpResponse (
158- status = Status . NOT_FOUND ,
159- json = error ,
160- headers = Map (
161- " CorrelationId " -> Seq ( FinancialDataConstants .correlationId)
162- )
163- )
164- )
163+ val result = FinancialDataHttpReads .read(" " ,
164+ " " ,
165+ HttpResponse (
166+ status = Status . NOT_FOUND ,
167+ json = error,
168+ headers = Map (
169+ " CorrelationId " -> Seq ( FinancialDataConstants .correlationId )
170+ )
171+ ) )
165172 result shouldBe Left (FinancialDataConstants .errorWrapper(FinancialNotDataFound ))
166173 }
167174 }
@@ -172,8 +179,7 @@ class FinancialDataHttpParserSpec extends UnitSpec {
172179
173180 val status = Status .INTERNAL_SERVER_ERROR
174181
175- val error = Json .parse(
176- """
182+ val error = Json .parse("""
177183 |{
178184 |"failures": [{
179185 |"code":"INTERNAL_SERVICE_ERROR",
@@ -182,15 +188,15 @@ class FinancialDataHttpParserSpec extends UnitSpec {
182188 |}
183189 |""" .stripMargin)
184190
185- val result = FinancialDataHttpReads .read(" " , " " ,
186- HttpResponse (
187- status = status,
188- json = error ,
189- headers = Map (
190- " CorrelationId " -> Seq ( PenaltiesConstants .correlationId)
191- )
192- )
193- )
191+ val result = FinancialDataHttpReads .read(" " ,
192+ " " ,
193+ HttpResponse (
194+ status = status ,
195+ json = error,
196+ headers = Map (
197+ " CorrelationId " -> Seq ( PenaltiesConstants .correlationId )
198+ )
199+ ) )
194200 result shouldBe Left (FinancialDataConstants .errorWrapper(MtdError (" INTERNAL_SERVICE_ERROR" , " Something went wrong" )))
195201 }
196202 }
@@ -201,7 +207,7 @@ class FinancialDataHttpParserSpec extends UnitSpec {
201207 Json .parse(s """
202208 |{
203209 | "failures": [{
204- | "code":" ${ code} ",
210+ | "code":" $code",
205211 | "reason":"Some reason"
206212 | }]
207213 | }
@@ -244,11 +250,14 @@ class FinancialDataHttpParserSpec extends UnitSpec {
244250
245251 " return multi errors when passed multiple errors bad " in {
246252 val result = FinancialDataHttpReads .errorHelper(multiJsonString())
247- result shouldBe MtdError (" INVALID_REQUEST" , " Invalid request financial details" ,
248- Some (Json .toJson(Seq (
249- FinancialInvalidIdNumber ,
250- FinancialInvalidSearchItem
251- ))))
253+ result shouldBe MtdError (" INVALID_REQUEST" ,
254+ " Invalid request financial details" ,
255+ Some (
256+ Json .toJson(
257+ Seq (
258+ FinancialInvalidIdNumber ,
259+ FinancialInvalidSearchItem
260+ ))))
252261 }
253262
254263 " return INTERNAL_SERVER_ERROR when passed multiple errors including one which maps to INTERNAL_SERVER_ERROR" in {
0 commit comments