@@ -22,17 +22,15 @@ import models.{Name, SelectTitle, UserAnswers}
2222import org .mockito .ArgumentMatchers .any
2323import org .mockito .Mockito .*
2424import org .scalatest .BeforeAndAfterEach
25- import pages .{AcknowledgementReferencePage , ApplicationSubmissionDatePage , EmailOrPostPage }
25+ import pages .{AcknowledgementReferencePage , EmailOrPostPage }
2626import play .api .inject .bind
2727import play .api .inject .guice .GuiceApplicationBuilder
28- import play .api .libs .json .Json
2928import play .api .test .Helpers .*
3029import service .UserAnswerService
3130import utils .TimeMachine
3231import views .ViewUtils .dayToString
3332import views .html .RegistrationSentView
3433
35- import java .time .LocalDate
3634import scala .concurrent .Future
3735
3836class RegistrationSentControllerSpec extends SpecBase with BeforeAndAfterEach {
@@ -59,9 +57,7 @@ class RegistrationSentControllerSpec extends SpecBase with BeforeAndAfterEach {
5957 private val daysToAdd : Long = 28
6058
6159 " RegistrationSent Controller" must {
62-
6360 " return OK and the correct view for a GET for email and noEmailPost disabled" in {
64-
6561 val app = new GuiceApplicationBuilder ()
6662 .configure(" features.noEmailPost" -> " false" )
6763 .overrides(
@@ -73,84 +69,17 @@ class RegistrationSentControllerSpec extends SpecBase with BeforeAndAfterEach {
7369 val controller : RegistrationSentController = app.injector.instanceOf[RegistrationSentController ]
7470
7571 when(mockUserAnswerService.get(any())(any(), any())).thenReturn(
76- Future .successful(
77- Some (
78- emptyUserAnswers
79- .set(AcknowledgementReferencePage , acknowledgementRef)
80- .flatMap(_.set(ApplicationSubmissionDatePage , inject[TimeMachine ].now()))
81- .flatMap(_.set(EmailOrPostPage , true ))
82- .success
83- .value
84- )
85- )
72+ Future .successful(Some (userAnswersWithRegisteredApplication().set(EmailOrPostPage , true ).success.value))
8673 )
8774
8875 val result = controller.onPageLoad()(fakeRequest)
8976
9077 status(result) mustEqual OK
91- contentAsString(result) mustEqual view(
92- dayToString(inject[TimeMachine ].now().plusDays(daysToAdd)),
93- dayToString(inject[TimeMachine ].now(), dayOfWeek = false ),
94- acknowledgementReferenceNo,
95- emailOrPost = true ,
96- noEmailOrPost = false ,
97- Seq (" requiredDocuments.governingDocumentName.answerTrue" ),
98- None
99- )(fakeRequest, messages, frontendAppConfig).toString
100- verify(mockUserAnswerService, times(1 )).get(any())(any(), any())
101- }
102-
103- " return OK and the correct view for a GET for email and noEmailPost enabled" in {
10478
105- when(mockUserAnswerService.get(any())(any(), any())).thenReturn(
106- Future .successful(
107- Some (
108- emptyUserAnswers
109- .set(AcknowledgementReferencePage , acknowledgementRef)
110- .flatMap(_.set(ApplicationSubmissionDatePage , inject[TimeMachine ].now()))
111- .flatMap(_.set(EmailOrPostPage , true ))
112- .success
113- .value
114- )
115- )
116- )
117-
118- val result = controller.onPageLoad()(fakeRequest)
119-
120- status(result) mustEqual OK
12179 contentAsString(result) mustEqual view(
12280 dayToString(inject[TimeMachine ].now().plusDays(daysToAdd)),
12381 dayToString(inject[TimeMachine ].now(), dayOfWeek = false ),
12482 acknowledgementReferenceNo,
125- emailOrPost = true ,
126- noEmailOrPost = true ,
127- Seq (" requiredDocuments.governingDocumentName.answerTrue" ),
128- None
129- )(fakeRequest, messages, frontendAppConfig).toString
130- verify(mockUserAnswerService, times(1 )).get(any())(any(), any())
131- }
132-
133- " return OK and the correct view for a GET when noEmailPost enabled" in {
134-
135- when(mockUserAnswerService.get(any())(any(), any())).thenReturn(
136- Future .successful(
137- Some (
138- emptyUserAnswers
139- .set(AcknowledgementReferencePage , acknowledgementReferenceNo)
140- .flatMap(_.set(ApplicationSubmissionDatePage , inject[TimeMachine ].now()))
141- .success
142- .value
143- )
144- )
145- )
146-
147- val result = controller.onPageLoad()(fakeRequest)
148-
149- status(result) mustEqual OK
150- contentAsString(result) mustEqual view(
151- dayToString(inject[TimeMachine ].now().plusDays(daysToAdd)),
152- dayToString(inject[TimeMachine ].now(), dayOfWeek = false ),
153- acknowledgementRef,
15483 emailOrPost = false ,
15584 noEmailOrPost = true ,
15685 Seq (" requiredDocuments.governingDocumentName.answerTrue" ),
@@ -160,7 +89,6 @@ class RegistrationSentControllerSpec extends SpecBase with BeforeAndAfterEach {
16089 }
16190
16291 " return OK and the correct view when the correct json is stored in mongoDb" in {
163-
16492 val app = new GuiceApplicationBuilder ()
16593 .configure(" features.noEmailPost" -> " false" )
16694 .overrides(
@@ -170,22 +98,17 @@ class RegistrationSentControllerSpec extends SpecBase with BeforeAndAfterEach {
17098 .build()
17199
172100 val controller : RegistrationSentController = app.injector.instanceOf[RegistrationSentController ]
101+
173102 when(mockUserAnswerService.get(any())(any(), any())).thenReturn(
174103 Future .successful(
175104 Some (
176- emptyUserAnswers
177- .copy(data =
178- Json .obj(
179- " acknowledgementReference" -> acknowledgementReferenceNo,
180- " foreignOfficials" -> List (
181- Name (SelectTitle .Mr , " firstName1" , Some (" middleName1" ), " lastName1" ),
182- Name (SelectTitle .Ms , " firstName2" , Some (" middleName2" ), " lastName2" ),
183- Name (SelectTitle .Mrs , " firstName3" , Some (" middleName3" ), " lastName3" )
184- ),
185- " requiredDocuments" -> Json .obj(),
186- " applicationSubmissionDate" -> LocalDate .now()
187- )
105+ userAnswersWithRegisteredApplication(
106+ foreignOfficials = List (
107+ Name (SelectTitle .Mr , " firstName1" , Some (" middleName1" ), " lastName1" ),
108+ Name (SelectTitle .Ms , " firstName2" , Some (" middleName2" ), " lastName2" ),
109+ Name (SelectTitle .Mrs , " firstName3" , Some (" middleName3" ), " lastName3" )
188110 )
111+ )
189112 )
190113 )
191114 )
@@ -210,40 +133,7 @@ class RegistrationSentControllerSpec extends SpecBase with BeforeAndAfterEach {
210133 verify(mockUserAnswerService, times(1 )).get(any())(any(), any())
211134 }
212135
213- " return SEE_OTHER and the correct view for a GET with no EmailOrPostPage answered" in {
214-
215- val app = new GuiceApplicationBuilder ()
216- .configure(" features.noEmailPost" -> " false" )
217- .overrides(
218- bind[UserAnswerService ].toInstance(mockUserAnswerService),
219- bind[AuthIdentifierAction ].to[FakeAuthIdentifierAction ]
220- )
221- .build()
222-
223- val controller : RegistrationSentController = app.injector.instanceOf[RegistrationSentController ]
224-
225- when(mockUserAnswerService.get(any())(any(), any())).thenReturn(
226- Future .successful(
227- Some (
228- emptyUserAnswers
229- .set(AcknowledgementReferencePage , acknowledgementRef)
230- .flatMap(_.set(ApplicationSubmissionDatePage , inject[TimeMachine ].now()))
231- .success
232- .value
233- )
234- )
235- )
236-
237- val result = controller.onPageLoad()(fakeRequest)
238-
239- status(result) mustEqual SEE_OTHER
240-
241- redirectLocation(result).value mustEqual controllers.routes.EmailOrPostController .onPageLoad.url
242- verify(mockUserAnswerService, times(1 )).get(any())(any(), any())
243- }
244-
245- " redirect to Session Expired for a GET if no acknowledgement reference is found" in {
246-
136+ " redirect to page not found for a GET if no acknowledgement reference is found" in {
247137 when(mockUserAnswerService.get(any())(any(), any())).thenReturn(Future .successful(Some (emptyUserAnswers)))
248138
249139 val result = controller.onPageLoad()(fakeRequest)
@@ -254,7 +144,7 @@ class RegistrationSentControllerSpec extends SpecBase with BeforeAndAfterEach {
254144 verify(mockUserAnswerService, times(1 )).get(any())(any(), any())
255145 }
256146
257- " redirect to Session Expired for a GET if no existing data is found" in {
147+ " redirect to page not found for a GET if no existing data is found" in {
258148
259149 when(mockUserAnswerService.get(any())(any(), any())).thenReturn(Future .successful(None ))
260150
@@ -290,7 +180,7 @@ class RegistrationSentControllerSpec extends SpecBase with BeforeAndAfterEach {
290180 verify(mockUserAnswerService, times(1 )).set(any())(any(), any())
291181 }
292182
293- " redirect to Session Expired when changing if no existing data is found" in {
183+ " redirect to page not found when changing if no existing data is found" in {
294184
295185 when(mockUserAnswerService.get(any())(any(), any())).thenReturn(Future .successful(Some (emptyUserAnswers)))
296186 when(mockUserAnswerService.set(any())(any(), any())).thenReturn(Future .successful(true ))
0 commit comments