Repository: hmrc/penalties-frontend
Pull request #409: [DL-15982] Upgrade dependencies, remove warnings and address PR bot comments
Author: login: Jake-Raffe
Created: 2025-04-03T10:41:16Z | Merged: 2025-04-04T08:12:14Z



Diff:
diff --git a/app/views/components/summaryCardLPP.scala.html b/app/views/components/summaryCardLPP.scala.html
index 4f8d498c..65c85eab 100644
--- a/app/views/components/summaryCardLPP.scala.html
+++ b/app/views/components/summaryCardLPP.scala.html
@@ -27,7 +27,7 @@
         link: components.link,
         details: components.details
 )
-@(summaryCard: LatePaymentPenaltySummaryCard)(implicit messages: Messages, user: User[_])
+@(summaryCard: LatePaymentPenaltySummaryCard)(implicit messages: Messages)
 
 
 @visuallyHiddenText = @{
@@ -69,23 +69,6 @@
 </a>
 }
 
-@cannotAppealContents = {
-    <p>
-        @if(summaryCard.isCentralAssessment) {
-            @getMessage("summaryCard.details.text1.ca")
-        } else {
-            @messages("summaryCard.details.text1")
-        }
-    </p>
-    <p>
-        @if(summaryCard.isCentralAssessment) {
-            @getMessage("summaryCard.details.text2.ca")
-        } else {
-            @getMessage("summaryCard.details.text2")
-        }
-    </p>
-}
-
 
 @footerDisplayLogic = {
     @if(summaryCard.penaltyCategory.equals(MANUAL)) {
diff --git a/app/views/errors/InternalServerErrorCustom.scala.html b/app/views/errors/InternalServerErrorCustom.scala.html
index 23b99e6f..23f09651 100644
--- a/app/views/errors/InternalServerErrorCustom.scala.html
+++ b/app/views/errors/InternalServerErrorCustom.scala.html
@@ -16,7 +16,7 @@
 
 @this(layout: Layout)
 
-@()(implicit request: Request[_], messages: Messages, appConfig: AppConfig, user: User[_])
+@()(implicit messages: Messages, appConfig: AppConfig, user: User[_])
 @layout(pageTitle = messages("ise.title"), isError = true) {
     <h1 class="govuk-heading-xl">@messages("ise.heading")</h1>
     <p class="govuk-body"> @messages("ise.message")</p>
diff --git a/build.sbt b/build.sbt
index af68e438..47f00fc8 100644
--- a/build.sbt
+++ b/build.sbt
@@ -6,10 +6,10 @@ val appName = "penalties-frontend"
 val silencerVersion = "1.17.13"
 
 lazy val microservice = Project(appName, file("."))
-  .enablePlugins(play.sbt.PlayScala, SbtAutoBuildPlugin, SbtGitVersioning, SbtDistributablesPlugin)
+  .enablePlugins(play.sbt.PlayScala, SbtDistributablesPlugin)
   .settings(
     majorVersion                     := 0,
-    scalaVersion                     := "2.13.12",
+    scalaVersion                     := "2.13.16",
     libraryDependencies              ++= AppDependencies.compile ++ AppDependencies.test,
     TwirlKeys.templateImports ++= Seq(
       "config.AppConfig",
diff --git a/conf/application-json-logger.xml b/conf/application-json-logger.xml
deleted file mode 100644
index 6628cd69..00000000
--- a/conf/application-json-logger.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration>
-
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder class="uk.gov.hmrc.play.logging.JsonEncoder"/>
-    </appender>
-
-    <logger name="uk.gov" level="WARN"/>
-
-    <root level="WARN">
-        <appender-ref ref="STDOUT"/>
-    </root>
-</configuration>
diff --git a/conf/logback-test.xml b/conf/logback-test.xml
index b96d744b..e9089555 100644
--- a/conf/logback-test.xml
+++ b/conf/logback-test.xml
@@ -14,19 +14,6 @@
         </encoder>
     </appender>
 
-    <appender name="STDOUT_IGNORE_NETTY" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>[%highlight(%.-4level)] %message %replace(exception=[%xException]){'^exception=\[\]$',''} %date{ISO8601} %n</pattern>
-        </encoder>
-    </appender>
-
-    <appender name="ACCESS_LOG_FILE" class="ch.qos.logback.core.FileAppender">
-        <file>logs/access.log</file>
-        <encoder>
-            <pattern>%message%n</pattern>
-        </encoder>
-    </appender>
-
     <appender name="CONNECTOR_LOG_FILE" class="ch.qos.logback.core.FileAppender">
         <file>logs/connector.log</file>
         <encoder>
@@ -34,14 +21,6 @@
         </encoder>
     </appender>
 
-    <logger name="accesslog" level="OFF" additivity="false">
-        <appender-ref ref="ACCESS_LOG_FILE" />
-    </logger>
-
-    <logger name="com.ning.http.client.providers.netty" additivity="false">
-        <appender-ref ref="STDOUT_IGNORE_NETTY" />
-    </logger>
-
     <logger name="com.google.inject" level="OFF"/>
 
     <logger name="org.asynchttpclient.netty" level="OFF"/>
diff --git a/conf/logback.xml b/conf/logback.xml
index 073d7e18..46950b57 100644
--- a/conf/logback.xml
+++ b/conf/logback.xml
@@ -14,19 +14,6 @@
         </encoder>
     </appender>
 
-    <appender name="STDOUT_IGNORE_NETTY" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>%date{ISO8601} level=[%level] logger=[%logger] thread=[%thread] rid=[not-available] user=[not-available] message=[%message] %replace(exception=[%xException]){'^exception=\[\]$',''}%n</pattern>
-        </encoder>
-    </appender>
-
-    <appender name="ACCESS_LOG_FILE" class="ch.qos.logback.core.FileAppender">
-        <file>logs/access.log</file>
-        <encoder>
-            <pattern>%message%n</pattern>
-        </encoder>
-    </appender>
-
     <appender name="CONNECTOR_LOG_FILE" class="ch.qos.logback.core.FileAppender">
         <file>logs/connector.log</file>
         <encoder>
@@ -34,15 +21,6 @@
         </encoder>
     </appender>
 
-
-    <logger name="accesslog" level="INFO" additivity="false">
-        <appender-ref ref="ACCESS_LOG_FILE" />
-    </logger>
-
-    <logger name="com.ning.http.client.providers.netty" additivity="false">
-        <appender-ref ref="STDOUT_IGNORE_NETTY" />
-    </logger>
-
     <logger name="com.google.inject" level="INFO"/>
 
     <logger name="uk.gov" level="INFO"/>
diff --git a/project/AppDependencies.scala b/project/AppDependencies.scala
index d799fbcc..d806fd61 100644
--- a/project/AppDependencies.scala
+++ b/project/AppDependencies.scala
@@ -2,16 +2,17 @@ import sbt._
 
 object AppDependencies {
 
-  lazy val bootstrapVersion = "8.2.0"
+  lazy val bootstrapVersion = "8.6.0"
 
   val compile = Seq(
-    "uk.gov.hmrc"                  %% "bootstrap-frontend-play-30" % bootstrapVersion,
+    "uk.gov.hmrc"                  %% "bootstrap-frontend-play-30"         % bootstrapVersion,
     "uk.gov.hmrc"                  %% "play-frontend-hmrc-play-30"         % "8.0.0"
   )
 
   val test = Seq(
     "uk.gov.hmrc"                  %% "bootstrap-test-play-30"         % bootstrapVersion     % "test, it",
     "org.jsoup"                    %  "jsoup"                          % "1.16.2"             % "test, it",
-    "org.mockito"                  %  "mockito-all"                    % "1.10.19"            % "test, it"
+    "org.mockito"                  %% "mockito-scala-scalatest"        % "1.17.29"            % "test, it",
+    "org.mockito"                  %  "mockito-core"                   % "5.6.0"              % "test, it",
   )
 }
diff --git a/project/build.properties b/project/build.properties
index d4151995..e97b2722 100644
--- a/project/build.properties
+++ b/project/build.properties
@@ -1 +1 @@
-sbt.version=1.9.7
\ No newline at end of file
+sbt.version=1.10.10
diff --git a/project/plugins.sbt b/project/plugins.sbt
index d28b2344..aadca957 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -1,9 +1,9 @@
 resolvers += "HMRC-open-artefacts-maven" at "https://open.artefacts.tax.service.gov.uk/maven2"
 resolvers += Resolver.url("HMRC-open-artefacts-ivy", url("https://open.artefacts.tax.service.gov.uk/ivy2"))(Resolver.ivyStylePatterns)
 
-addSbtPlugin("uk.gov.hmrc"        % "sbt-auto-build"         % "3.19.0")
-addSbtPlugin("uk.gov.hmrc"        % "sbt-distributables"     % "2.4.0")
-addSbtPlugin("org.playframework"  % "sbt-plugin"             % "3.0.0")
+addSbtPlugin("uk.gov.hmrc"        % "sbt-auto-build"         % "3.24.0")
+addSbtPlugin("uk.gov.hmrc"        % "sbt-distributables"     % "2.6.0")
+addSbtPlugin("org.playframework"  % "sbt-plugin"             % "3.0.3")
 addSbtPlugin("io.github.irundaia" % "sbt-sassify"            % "1.5.2")
-addSbtPlugin("org.scoverage"      % "sbt-scoverage"          % "2.0.9")
+addSbtPlugin("org.scoverage"      % "sbt-scoverage"          % "2.3.1")
 addSbtPlugin("org.scalastyle"     %% "scalastyle-sbt-plugin" % "1.0.0" exclude("org.scala-lang.modules", "scala-xml_2.12"))
diff --git a/test/config/featureSwitches/FeatureSwitchSpec.scala b/test/config/featureSwitches/FeatureSwitchSpec.scala
index a39c1771..840b2b8a 100644
--- a/test/config/featureSwitches/FeatureSwitchSpec.scala
+++ b/test/config/featureSwitches/FeatureSwitchSpec.scala
@@ -17,9 +17,7 @@
 package config.featureSwitches
 
 import base.SpecBase
-import config.AppConfig
-import config.featureSwitches.FeatureSwitch.{FeatureSwitch, WebchatLink}
-import org.mockito.Mockito.mock
+import config.featureSwitches.FeatureSwitch.WebchatLink
 
 class FeatureSwitchSpec extends SpecBase {
 
diff --git a/test/config/featureSwitches/FeatureSwitchingSpec.scala b/test/config/featureSwitches/FeatureSwitchingSpec.scala
index a631d5b2..7cb026b8 100644
--- a/test/config/featureSwitches/FeatureSwitchingSpec.scala
+++ b/test/config/featureSwitches/FeatureSwitchingSpec.scala
@@ -18,7 +18,7 @@ package config.featureSwitches
 
 import base.SpecBase
 import config.AppConfig
-import org.mockito.Matchers.any
+import org.mockito.ArgumentMatchers.any
 import org.mockito.Mockito.{mock, reset, when}
 import org.scalatest.BeforeAndAfterAll
 import play.api.Configuration
diff --git a/test/connectors/PenaltiesConnectorSpec.scala b/test/connectors/PenaltiesConnectorSpec.scala
index c4e0394b..26bbfe2e 100644
--- a/test/connectors/PenaltiesConnectorSpec.scala
+++ b/test/connectors/PenaltiesConnectorSpec.scala
@@ -21,7 +21,7 @@ import config.AppConfig
 import config.featureSwitches.FeatureSwitching
 import connectors.httpParsers.ComplianceDataParser._
 import connectors.httpParsers.GetPenaltyDetailsParser.GetPenaltyDetailsResponse
-import org.mockito.Matchers._
+import org.mockito.ArgumentMatchers._
 import org.mockito.Mockito._
 import play.api.http.Status.INTERNAL_SERVER_ERROR
 import play.api.test.Helpers._
diff --git a/test/controllers/CalculationControllerSpec.scala b/test/controllers/CalculationControllerSpec.scala
index 521a933a..e5884fe5 100644
--- a/test/controllers/CalculationControllerSpec.scala
+++ b/test/controllers/CalculationControllerSpec.scala
@@ -22,7 +22,7 @@ import models.appealInfo.{AppealInformationType, AppealLevelEnum, AppealStatusEn
 import models.lpp._
 import models.lsp._
 import models.{GetPenaltyDetails, Totalisations}
-import org.mockito.Matchers
+import org.mockito.ArgumentMatchers
 import org.mockito.Mockito.{mock, reset, when}
 import play.api.mvc.Result
 import play.api.test.Helpers._
@@ -230,8 +230,8 @@ class CalculationControllerSpec extends SpecBase with FeatureSwitching with LogC
   class Setup(authResult: Future[~[Option[AffinityGroup], Enrolments]], isFSEnabled: Boolean = false) {
     reset(mockAuthConnector)
     when(mockAuthConnector.authorise[~[Option[AffinityGroup], Enrolments]](
-      Matchers.any(), Matchers.any[Retrieval[~[Option[AffinityGroup], Enrolments]]]())(
-      Matchers.any(), Matchers.any())
+      ArgumentMatchers.any(), ArgumentMatchers.any[Retrieval[~[Option[AffinityGroup], Enrolments]]]())(
+      ArgumentMatchers.any(), ArgumentMatchers.any())
     ).thenReturn(authResult)
     reset(mockPenaltiesService)
   }
@@ -246,7 +246,7 @@ class CalculationControllerSpec extends SpecBase with FeatureSwitching with LogC
   "onPageLoad" when {
     "the user is authorised" should {
       "show the page when the penalty ID specified matches model API1812 payload" in new Setup(AuthTestModels.successfulAuthResult, isFSEnabled = true) {
-        when(mockPenaltiesService.getPenaltyDataFromEnrolmentKey(Matchers.any())(Matchers.any(), Matchers.any()))
+        when(mockPenaltiesService.getPenaltyDataFromEnrolmentKey(ArgumentMatchers.any())(ArgumentMatchers.any(), ArgumentMatchers.any()))
           .thenReturn(Future.successful(Right(penaltyDetailsPayload)))
 
         val result: Future[Result] = Controller.onPageLoad("12345678901234", "LPP1")(fakeRequest)
@@ -254,7 +254,7 @@ class CalculationControllerSpec extends SpecBase with FeatureSwitching with LogC
       }
 
       "show an ISE when the penalty ID specified returns an empty payload" in new Setup(AuthTestModels.successfulAuthResult, isFSEnabled = true) {
-        when(mockPenaltiesService.getPenaltyDataFromEnrolmentKey(Matchers.any())(Matchers.any(), Matchers.any()))
+        when(mockPenaltiesService.getPenaltyDataFromEnrolmentKey(ArgumentMatchers.any())(ArgumentMatchers.any(), ArgumentMatchers.any()))
           .thenReturn(Future.successful(Right(emptyPenaltyDetailsPayload)))
 
         val result: Future[Result] = Controller.onPageLoad("12345678901234", "LPP1")(fakeRequest)
@@ -263,7 +263,7 @@ class CalculationControllerSpec extends SpecBase with FeatureSwitching with LogC
 
       "show an ISE when the calculation row with model API1812 can not be rendered - because the payload is invalid (missing both 15/30 day payment amounts)" in
         new Setup(AuthTestModels.successfulAuthResult, isFSEnabled = true) {
-          when(mockPenaltiesService.getPenaltyDataFromEnrolmentKey(Matchers.any())(Matchers.any(), Matchers.any()))
+          when(mockPenaltiesService.getPenaltyDataFromEnrolmentKey(ArgumentMatchers.any())(ArgumentMatchers.any(), ArgumentMatchers.any()))
             .thenReturn(Future.successful(Right(penaltyDetailsPayloadNo15Or30DayAmount)))
 
           withCaptureOfLoggingFrom(logger) {
@@ -276,7 +276,7 @@ class CalculationControllerSpec extends SpecBase with FeatureSwitching with LogC
 
       "show an ISE when the user specifies a penalty ID not found with model API1812 enabled" in
         new Setup(AuthTestModels.successfulAuthResult, isFSEnabled = true) {
-          when(mockPenaltiesService.getPenaltyDataFromEnrolmentKey(Matchers.any())(Matchers.any(), Matchers.any()))
+          when(mockPenaltiesService.getPenaltyDataFromEnrolmentKey(ArgumentMatchers.any())(ArgumentMatchers.any(), ArgumentMatchers.any()))
             .thenReturn(Future.successful(Right(penaltyDetailsPayload)))
 
           withCaptureOfLoggingFrom(logger) {
diff --git a/test/controllers/ComplianceControllerSpec.scala b/test/controllers/ComplianceControllerSpec.scala
index 8df914f3..ad32f813 100644
--- a/test/controllers/ComplianceControllerSpec.scala
+++ b/test/controllers/ComplianceControllerSpec.scala
@@ -17,8 +17,8 @@
 package controllers
 
 import base.{LogCapturing, SpecBase}
-import org.mockito.Matchers
-import org.mockito.Matchers._
+import org.mockito.ArgumentMatchers
+import org.mockito.ArgumentMatchers._
 import org.mockito.Mockito.{mock, reset, when}
 import play.api.mvc.Result
 import play.api.test.Helpers._
@@ -45,8 +45,8 @@ class ComplianceControllerSpec extends SpecBase with LogCapturing {
 
     reset(mockAuthConnector)
     when(mockAuthConnector.authorise[~[Option[AffinityGroup], Enrolments]](
-      Matchers.any(), Matchers.any[Retrieval[~[Option[AffinityGroup], Enrolments]]]())(
-      Matchers.any(), Matchers.any())
+      ArgumentMatchers.any(), ArgumentMatchers.any[Retrieval[~[Option[AffinityGroup], Enrolments]]]())(
+      ArgumentMatchers.any(), ArgumentMatchers.any())
     ).thenReturn(authResult)
 
     reset(mockComplianceService)
diff --git a/test/controllers/IndexControllerSpec.scala b/test/controllers/IndexControllerSpec.scala
index 732c95e4..1e35642f 100644
--- a/test/controllers/IndexControllerSpec.scala
+++ b/test/controllers/IndexControllerSpec.scala
@@ -18,8 +18,8 @@ package controllers
 
 import base.{LogCapturing, SpecBase}
 import connectors.httpParsers.UnexpectedFailure
-import org.mockito.Matchers
-import org.mockito.Matchers.any
+import org.mockito.ArgumentMatchers
+import org.mockito.ArgumentMatchers.any
 import org.mockito.Mockito.{mock, reset, when}
 import play.api.mvc.Result
 import play.api.test.Helpers._
@@ -45,8 +45,8 @@ class IndexControllerSpec extends SpecBase with LogCapturing {
     reset(mockAuthConnector)
     reset(mockPenaltiesService)
     when(mockAuthConnector.authorise[~[Option[AffinityGroup], Enrolments]](
-      Matchers.any(), Matchers.any[Retrieval[~[Option[AffinityGroup], Enrolments]]]())(
-      Matchers.any(), Matchers.any())
+      ArgumentMatchers.any(), ArgumentMatchers.any[Retrieval[~[Option[AffinityGroup], Enrolments]]]())(
+      ArgumentMatchers.any(), ArgumentMatchers.any())
     ).thenReturn(authResult)
     when(mockPenaltiesService.getPenaltyDataFromEnrolmentKey(any())(any(), any())).thenReturn(Future.successful(Right(samplePenaltyDetailsModel)))
   }
diff --git a/test/controllers/PreviousPageControllerSpec.scala b/test/controllers/PreviousPageControllerSpec.scala
index 76fdd3e1..82eaf51f 100644
--- a/test/controllers/PreviousPageControllerSpec.scala
+++ b/test/controllers/PreviousPageControllerSpec.scala
@@ -19,7 +19,7 @@ package controllers
 import base.SpecBase
 import models.IndexPage
 import navigation.Navigation
-import org.mockito.Matchers
+import org.mockito.ArgumentMatchers
 import org.mockito.Mockito._
 import play.api.mvc.Call
 import play.api.test.Helpers._
@@ -35,8 +35,8 @@ class PreviousPageControllerSpec extends SpecBase {
 
     reset(mockAuthConnector)
     when(mockAuthConnector.authorise[~[Option[AffinityGroup], Enrolments]](
-      Matchers.any(), Matchers.any[Retrieval[~[Option[AffinityGroup], Enrolments]]]())(
-      Matchers.any(), Matchers.any())
+      ArgumentMatchers.any(), ArgumentMatchers.any[Retrieval[~[Option[AffinityGroup], Enrolments]]]())(
+      ArgumentMatchers.any(), ArgumentMatchers.any())
     ).thenReturn(authResult)
 
     val controller = new PreviousPageController(mockNavigator)(mcc, authPredicate)
@@ -44,7 +44,7 @@ class PreviousPageControllerSpec extends SpecBase {
 
   "previousPage" should {
     "redirect to the previous page relative to the given page" in new Setup(AuthTestModels.successfulAuthResult) {
-      when(mockNavigator.previousPage(Matchers.any())(Matchers.any()))
+      when(mockNavigator.previousPage(ArgumentMatchers.any())(ArgumentMatchers.any()))
         .thenReturn(Call("", "/url"))
       val result = controller.previousPage(IndexPage.toString)(fakeRequest)
       status(result) shouldBe SEE_OTHER
diff --git a/test/controllers/testOnly/FeatureSwitchControllerSpec.scala b/test/controllers/testOnly/FeatureSwitchControllerSpec.scala
index a6c99ba0..178e8dfe 100644
--- a/test/controllers/testOnly/FeatureSwitchControllerSpec.scala
+++ b/test/controllers/testOnly/FeatureSwitchControllerSpec.scala
@@ -19,7 +19,7 @@ package controllers.testOnly
 import base.SpecBase
 import config.AppConfig
 import config.featureSwitches.{FeatureSwitch, FeatureSwitching}
-import org.mockito.Matchers.any
+import org.mockito.ArgumentMatchers.any
 import org.mockito.Mockito.{mock, reset, when}
 import play.api.Configuration
 import play.api.test.FakeRequest
diff --git a/test/services/ComplianceServiceSpec.scala b/test/services/ComplianceServiceSpec.scala
index 0a1c33c3..8949811f 100644
--- a/test/services/ComplianceServiceSpec.scala
+++ b/test/services/ComplianceServiceSpec.scala
@@ -21,8 +21,8 @@ import connectors.PenaltiesConnector
 import connectors.httpParsers.ComplianceDataParser._
 import models.User
 import models.compliance.CompliancePayload
-import org.mockito.Matchers
-import org.mockito.Matchers._
+import org.mockito.ArgumentMatchers
+import org.mockito.ArgumentMatchers._
 import org.mockito.Mockito._
 import play.api.test.Helpers._
 import uk.gov.hmrc.http.{HeaderCarrier, UpstreamErrorResponse}
@@ -45,8 +45,8 @@ class ComplianceServiceSpec extends SpecBase {
   "getDESComplianceData" should {
     s"return a successful response and pass the result back to the controller (date provided as parameter)" in new Setup {
       when(mockPenaltiesConnector.getObligationData(any(),
-        Matchers.eq(LocalDate.of(2020, 1, 1)),
-        Matchers.eq(LocalDate.of(2022, 1, 1)))(any())).thenReturn(Future.successful(Right(CompliancePayloadSuccessResponse(sampleCompliancePayload))))
+        ArgumentMatchers.eq(LocalDate.of(2020, 1, 1)),
+        ArgumentMatchers.eq(LocalDate.of(2022, 1, 1)))(any())).thenReturn(Future.successful(Right(CompliancePayloadSuccessResponse(sampleCompliancePayload))))
       val result: Option[CompliancePayload] = await(service.getDESComplianceData(vrn)(HeaderCarrier(),
         User("123456789"), implicitly, Some(LocalDate.of(2022, 1, 1))))
       result.isDefined shouldBe true
@@ -55,8 +55,8 @@ class ComplianceServiceSpec extends SpecBase {
 
     s"return a successful response and pass the result back to the controller (date in session)" in new Setup {
       when(mockPenaltiesConnector.getObligationData(any(),
-        Matchers.eq(LocalDate.of(2020, 1, 1)),
-        Matchers.eq(LocalDate.of(2022, 1, 1)))(any())).thenReturn(Future.successful(Right(CompliancePayloadSuccessResponse(sampleCompliancePayload))))
+        ArgumentMatchers.eq(LocalDate.of(2020, 1, 1)),
+        ArgumentMatchers.eq(LocalDate.of(2022, 1, 1)))(any())).thenReturn(Future.successful(Right(CompliancePayloadSuccessResponse(sampleCompliancePayload))))
       val result: Option[CompliancePayload] = await(service.getDESComplianceData(vrn)(HeaderCarrier(), User("123456789")(fakeRequest.withSession(
         SessionKeys.pocAchievementDate -> "2022-01-01"
       )), implicitly))
diff --git a/test/services/PenaltiesServiceSpec.scala b/test/services/PenaltiesServiceSpec.scala
index 2815d601..a2394976 100644
--- a/test/services/PenaltiesServiceSpec.scala
+++ b/test/services/PenaltiesServiceSpec.scala
@@ -23,7 +23,7 @@ import models.appealInfo.{AppealInformationType, AppealLevelEnum, AppealStatusEn
 import models.lpp.{LPPDetails, LPPDetailsMetadata, LPPPenaltyCategoryEnum, LPPPenaltyStatusEnum, LatePaymentPenalty, MainTransactionEnum}
 import models.lsp._
 import models.{GetPenaltyDetails, Totalisations}
-import org.mockito.Matchers.any
+import org.mockito.ArgumentMatchers.any
 import org.mockito.Mockito.{mock, reset, when}
 import play.api.http.Status._
 import play.api.test.Helpers.{await, defaultAwaitTimeout}
diff --git a/test/testUtils/AuthMocks.scala b/test/testUtils/AuthMocks.scala
index bc08dc94..7a15ffd2 100644
--- a/test/testUtils/AuthMocks.scala
+++ b/test/testUtils/AuthMocks.scala
@@ -18,7 +18,7 @@ package testUtils
 
 import base.SpecBase
 import controllers.predicates.AuthPredicate
-import org.mockito.Matchers
+import org.mockito.ArgumentMatchers
 import org.mockito.Mockito.when
 import org.mockito.stubbing.OngoingStubbing
 import uk.gov.hmrc.auth.core._
@@ -30,8 +30,8 @@ import scala.concurrent.Future
 trait AuthMocks extends SpecBase  {
   def setupAuthResponse(authResult: Future[~[Option[AffinityGroup], Enrolments]]): OngoingStubbing[Future[~[Option[AffinityGroup], Enrolments]]] = {
     when(mockAuthConnector.authorise[~[Option[AffinityGroup], Enrolments]](
-      Matchers.any(), Matchers.any[Retrieval[~[Option[AffinityGroup], Enrolments]]]())(
-      Matchers.any(), Matchers.any())
+      ArgumentMatchers.any(), ArgumentMatchers.any[Retrieval[~[Option[AffinityGroup], Enrolments]]]())(
+      ArgumentMatchers.any(), ArgumentMatchers.any())
     ).thenReturn(authResult)
   }
 
@@ -61,8 +61,8 @@ trait AuthMocks extends SpecBase  {
 
   def mockAgentAuthorised(): OngoingStubbing[Future[Enrolments]] = {
     when(mockAuthConnector.authorise[Enrolments](
-      Matchers.any(), Matchers.any())(
-      Matchers.any(), Matchers.any())
+      ArgumentMatchers.any(), ArgumentMatchers.any())(
+      ArgumentMatchers.any(), ArgumentMatchers.any())
     ).thenReturn(Future.successful(
       Enrolments(
         Set(
@@ -77,8 +77,8 @@ trait AuthMocks extends SpecBase  {
 
   def mockAgentAuthorisedNoARN(): OngoingStubbing[Future[Enrolments]] = {
     when(mockAuthConnector.authorise[Enrolments](
-      Matchers.any(), Matchers.any())(
-      Matchers.any(), Matchers.any())
+      ArgumentMatchers.any(), ArgumentMatchers.any())(
+      ArgumentMatchers.any(), ArgumentMatchers.any())
     ).thenReturn(Future.successful(
       Enrolments(
         Set(
diff --git a/test/viewmodels/IndexPageHelperSpec.scala b/test/viewmodels/IndexPageHelperSpec.scala
index 3c41643a..5cd4819d 100644
--- a/test/viewmodels/IndexPageHelperSpec.scala
+++ b/test/viewmodels/IndexPageHelperSpec.scala
@@ -23,8 +23,8 @@ import models.lpp._
 import models.lsp._
 import models.{GetPenaltyDetails, Totalisations}
 import org.jsoup.Jsoup
-import org.mockito.Matchers
-import org.mockito.Matchers.any
+import org.mockito.ArgumentMatchers
+import org.mockito.ArgumentMatchers.any
 import org.mockito.Mockito._
 import play.api.http.Status.INTERNAL_SERVER_ERROR
 import play.api.mvc.Result
@@ -706,7 +706,7 @@ class IndexPageHelperSpec extends SpecBase {
       }
 
       "show the correct content when there are no open obligations" in new Setup {
-        when(mockComplianceService.getDESComplianceData(Matchers.any())(Matchers.any(), Matchers.any(), Matchers.any(), Matchers.any()))
+        when(mockComplianceService.getDESComplianceData(ArgumentMatchers.any())(ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any()))
           .thenReturn(Future.successful(Some(compliancePayloadObligationsFulfilled)))
         val result = await(pageHelper.getContentBasedOnPointsFromModel(penaltyDetailsWith4ActivePoints)(
           implicitly, vatTraderUser, hc, implicitly))
@@ -718,7 +718,7 @@ class IndexPageHelperSpec extends SpecBase {
       }
 
       "user is agent - show the correct content when there are no open obligations" in new Setup {
-        when(mockComplianceService.getDESComplianceData(Matchers.any())(Matchers.any(), Matchers.any(), Matchers.any(), Matchers.any()))
+        when(mockComplianceService.getDESComplianceData(ArgumentMatchers.any())(ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any()))
           .thenReturn(Future.successful(Some(compliancePayloadObligationsFulfilled)))
         val result = await(pageHelper.getContentBasedOnPointsFromModel(penaltyDetailsWith4ActivePoints)(
           implicitly, agentUser, hc, implicitly))
@@ -730,7 +730,7 @@ class IndexPageHelperSpec extends SpecBase {
       }
 
       s"return $Left ISE when the obligation call returns None (no data/network error)" in new Setup {
-        when(mockComplianceService.getDESComplianceData(Matchers.any())(Matchers.any(), Matchers.any(), Matchers.any(), Matchers.any()))
+        when(mockComplianceService.getDESComplianceData(ArgumentMatchers.any())(ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any(), ArgumentMatchers.any()))
           .thenReturn(Future.successful(None))
         val result: Either[Result, Html] = await(pageHelper.getContentBasedOnPointsFromModel(penaltyDetailsWith4ActivePoints)(implicitly,
           vatTraderUser, hc, implicitly))
diff --git a/test/views/InternalServerErrorCustomSpec.scala b/test/views/InternalServerErrorCustomSpec.scala
index 7ee8a123..1044eb3e 100644
--- a/test/views/InternalServerErrorCustomSpec.scala
+++ b/test/views/InternalServerErrorCustomSpec.scala
@@ -16,12 +16,13 @@
 
 package views
 
+import assets.messages.ISECustomMessages._
 import base.{BaseSelectors, SpecBase}
 import org.jsoup.nodes.Document
+import play.twirl.api.Html
 import utils.ViewUtils
 import views.behaviours.ViewBehaviours
 import views.html.errors.InternalServerErrorCustom
-import assets.messages.ISECustomMessages._
 
 class InternalServerErrorCustomSpec extends SpecBase with ViewBehaviours with ViewUtils {
   val iseCustomPage: InternalServerErrorCustom = injector.instanceOf[InternalServerErrorCustom]
@@ -35,9 +36,9 @@ class InternalServerErrorCustomSpec extends SpecBase with ViewBehaviours with Vi
     "display the correct page" when {
 
       "the user is a trader" must {
-        def applyView() = {
+        def applyView(): Html = {
           iseCustomPage.apply()(
-            implicitly, implicitly, implicitly, vatTraderUser
+            implicitly, implicitly, vatTraderUser
           )
         }
 
@@ -54,9 +55,9 @@ class InternalServerErrorCustomSpec extends SpecBase with ViewBehaviours with Vi
       }
 
       "the user is a agent" must {
-        def applyView() = {
+        def applyView(): Html = {
           iseCustomPage.apply()(
-            implicitly, implicitly, implicitly, agentUser
+            implicitly, implicitly, agentUser
           )
         }
 
diff --git a/test/views/components/HeaderSpec.scala b/test/views/components/HeaderSpec.scala
index 2e2054bd..c79e11c4 100644
--- a/test/views/components/HeaderSpec.scala
+++ b/test/views/components/HeaderSpec.scala
@@ -18,7 +18,7 @@ package views.components
 
 import base.SpecBase
 import config.AppConfig
-import org.mockito.Matchers.any
+import org.mockito.ArgumentMatchers.any
 import org.mockito.Mockito.{mock, when}
 import views.behaviours.ViewBehaviours
 import views.html.components.Header


Reviews:
user: login: Jake-Raffe
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-03T10:42:23Z
user: login: Jake-Raffe
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-03T10:43:46Z
user: login: Jake-Raffe
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-03T10:44:31Z
user: login: Jake-Raffe
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-03T12:37:41Z
user: login: Jake-Raffe
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-03T13:55:07Z
user: login: msatta
state: APPROVED
author_association: NONE
submitted_at: 2025-04-04T08:02:50Z
user: login: Prem-Dasari
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-04T08:08:08Z

Review comments:
diff_hunk: @@ -69,23 +69,6 @@
 </a>
 }
 
-@cannotAppealContents = {
-    <p>
-        @if(summaryCard.isCentralAssessment) {
-            @getMessage("summaryCard.details.text1.ca")
-        } else {
-            @messages("summaryCard.details.text1")
-        }
-    </p>
-    <p>
-        @if(summaryCard.isCentralAssessment) {
-            @getMessage("summaryCard.details.text2.ca")
-        } else {
-            @getMessage("summaryCard.details.text2")
-        }
-    </p>
-}
-
path: app/views/components/summaryCardLPP.scala.html
user: login: Jake-Raffe
body: Method and user param no longer used. Had been needed for an element that had been removed in earlier commit.
created_at: 2025-04-03T10:42:23Z
author_association: CONTRIBUTOR
diff_hunk: @@ -6,7 +6,7 @@ val appName = "penalties-frontend"
 val silencerVersion = "1.17.13"
 
 lazy val microservice = Project(appName, file("."))
-  .enablePlugins(play.sbt.PlayScala, SbtAutoBuildPlugin, SbtGitVersioning, SbtDistributablesPlugin)
+  .enablePlugins(play.sbt.PlayScala, SbtDistributablesPlugin)
path: build.sbt
user: login: Jake-Raffe
body: These are now auto-enabled
created_at: 2025-04-03T10:43:46Z
author_association: CONTRIBUTOR
diff_hunk: @@ -14,30 +14,13 @@
         </encoder>
     </appender>
 
-    <appender name="STDOUT_IGNORE_NETTY" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>[%highlight(%.-4level)] %message %replace(exception=[%xException]){'^exception=\[\]$',''} %date{ISO8601} %n</pattern>
-        </encoder>
-    </appender>
-
-    <appender name="ACCESS_LOG_FILE" class="ch.qos.logback.core.FileAppender">
-        <file>logs/access.log</file>
-        <encoder>
-            <pattern>%message%n</pattern>
-        </encoder>
-    </appender>
-
path: conf/logback-test.xml
user: login: Jake-Raffe
body: Netty service no longer used since Play2.6
created_at: 2025-04-03T10:44:31Z
author_association: CONTRIBUTOR
diff_hunk: @@ -14,30 +14,13 @@
         </encoder>
     </appender>
 
-    <appender name="STDOUT_IGNORE_NETTY" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>[%highlight(%.-4level)] %message %replace(exception=[%xException]){'^exception=\[\]$',''} %date{ISO8601} %n</pattern>
-        </encoder>
-    </appender>
-
-    <appender name="ACCESS_LOG_FILE" class="ch.qos.logback.core.FileAppender">
-        <file>logs/access.log</file>
-        <encoder>
-            <pattern>%message%n</pattern>
-        </encoder>
-    </appender>
-
path: conf/logback-test.xml
user: login: Jake-Raffe
body: Access log file is never populated by the service so not being used
created_at: 2025-04-03T12:37:41Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration>
-
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <encoder class="uk.gov.hmrc.play.logging.JsonEncoder"/>
-    </appender>
-
-    <logger name="uk.gov" level="WARN"/>
-
-    <root level="WARN">
-        <appender-ref ref="STDOUT"/>
-    </root>
-</configuration>
path: conf/application-json-logger.xml
user: login: Jake-Raffe
body: No longer needed, logging is provided by Bootstrap (since 8.6.0)
created_at: 2025-04-03T13:55:07Z
author_association: CONTRIBUTOR

PR comments:
user: login: platops-pr-bot
created_at: 2025-04-03T10:43:54Z
body: - `SBT` can be updated to `1.10.10` in [project/build.properties](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/build.properties#L1)
- `Scala` can be updated from `2.13.12` to `2.13.16` in [build.sbt](https://github.com/hmrc/penalties-frontend/blob/DL-15982/build.sbt#L12)
- `uk.gov.hmrc.sbt-distributables` can be updated to `2.6.0` in [project/plugins.sbt](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/plugins.sbt#L5)
- `uk.gov.hmrc:bootstrap-frontend-play-30` can be updated to `8.6.0` in [project/AppDependencies.scala](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/AppDependencies.scala#L1).
- `uk.gov.hmrc:play-frontend-hmrc-play-30` can be updated to `8.5.1` in [project/AppDependencies.scala](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/AppDependencies.scala#L1).
- `uk.gov.hmrc:bootstrap-test-play-30` can be updated to `8.6.0` in [project/AppDependencies.scala](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/AppDependencies.scala#L1).
- Your service can now use Java 21. Please set `JavaType.OPENJDK_JRE21` in [build-jobs](https://github.com/hmrc/build-jobs/blob/HEAD/jobs/live/ddctlsPenalties.groovy#L34) - See confluence https://confluence.tools.tax.service.gov.uk/x/xIACM
- `STDOUT_IGNORE_NETTY` appender (and usage) can be removed from [conf/logback.xml](https://github.com/hmrc/penalties-frontend/blob/DL-15982/conf/logback.xml#L17) - Netty server is no longer used (Since Play 2.6.x)
- `ACCESS_LOG_FILE` appender (and usage) can be removed from [conf/logback.xml](https://github.com/hmrc/penalties-frontend/blob/DL-15982/conf/logback.xml#L23) - it's never populated
author_association: NONE
user: login: platops-pr-bot
created_at: 2025-04-03T12:35:35Z
body: - ~~`SBT` can be updated to `1.10.10` in [project/build.properties](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/build.properties#L1)~~
- ~~`Scala` can be updated from `2.13.12` to `2.13.16` in [build.sbt](https://github.com/hmrc/penalties-frontend/blob/DL-15982/build.sbt#L12)~~
- ~~`uk.gov.hmrc.sbt-distributables` can be updated to `2.6.0` in [project/plugins.sbt](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/plugins.sbt#L5)~~
- ~~`uk.gov.hmrc:bootstrap-frontend-play-30` can be updated to `8.6.0` in [project/AppDependencies.scala](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/AppDependencies.scala#L1).~~
- ~~`uk.gov.hmrc:bootstrap-test-play-30` can be updated to `8.6.0` in [project/AppDependencies.scala](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/AppDependencies.scala#L1).~~
- ~~`STDOUT_IGNORE_NETTY` appender (and usage) can be removed from [conf/logback.xml](https://github.com/hmrc/penalties-frontend/blob/DL-15982/conf/logback.xml#L17) - Netty server is no longer used (Since Play 2.6.x)~~
- ~~`ACCESS_LOG_FILE` appender (and usage) can be removed from [conf/logback.xml](https://github.com/hmrc/penalties-frontend/blob/DL-15982/conf/logback.xml#L23) - it's never populated~~
- `uk.gov.hmrc:play-frontend-hmrc-play-30` can be updated to `8.5.1` in [project/AppDependencies.scala](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/AppDependencies.scala#L1).
- Runtime issues may occur. Change `org.playframework:sbt-plugin` to `3.0.3` in [project/plugins.sbt](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/plugins.sbt#L6) - to match what `uk.gov.hmrc.bootstrap-frontend-play-30` uses
- Your service can now use Java 21. Please set `JavaType.OPENJDK_JRE21` in [build-jobs](https://github.com/hmrc/build-jobs/blob/HEAD/jobs/live/ddctlsPenalties.groovy#L34) - See confluence https://confluence.tools.tax.service.gov.uk/x/xIACM
- File [conf/application-json-logger.xml](https://github.com/hmrc/penalties-frontend/blob/DL-15982/conf/application-json-logger.xml#L1) can be removed. Logging is provided by Bootstrap (since `8.6.0`) and can be configured via application config alone - See confluence https://confluence.tools.tax.service.gov.uk/x/9oH1FQ
author_association: NONE
user: login: platops-pr-bot
created_at: 2025-04-03T13:55:19Z
body: - ~~`SBT` can be updated to `1.10.10` in [project/build.properties](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/build.properties#L1)~~
- ~~`Scala` can be updated from `2.13.12` to `2.13.16` in [build.sbt](https://github.com/hmrc/penalties-frontend/blob/DL-15982/build.sbt#L12)~~
- ~~`uk.gov.hmrc.sbt-distributables` can be updated to `2.6.0` in [project/plugins.sbt](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/plugins.sbt#L5)~~
- ~~`uk.gov.hmrc:bootstrap-frontend-play-30` can be updated to `8.6.0` in [project/AppDependencies.scala](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/AppDependencies.scala#L1).~~
- ~~`uk.gov.hmrc:bootstrap-test-play-30` can be updated to `8.6.0` in [project/AppDependencies.scala](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/AppDependencies.scala#L1).~~
- ~~`STDOUT_IGNORE_NETTY` appender (and usage) can be removed from [conf/logback.xml](https://github.com/hmrc/penalties-frontend/blob/DL-15982/conf/logback.xml#L17) - Netty server is no longer used (Since Play 2.6.x)~~
- ~~`ACCESS_LOG_FILE` appender (and usage) can be removed from [conf/logback.xml](https://github.com/hmrc/penalties-frontend/blob/DL-15982/conf/logback.xml#L23) - it's never populated~~
- ~~Runtime issues may occur. Change `org.playframework:sbt-plugin` to `3.0.3` in [project/plugins.sbt](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/plugins.sbt#L6) - to match what `uk.gov.hmrc.bootstrap-frontend-play-30` uses~~
- ~~Your service can now use Java 21. Please set `JavaType.OPENJDK_JRE21` in [build-jobs](https://github.com/hmrc/build-jobs/blob/HEAD/jobs/live/ddctlsPenalties.groovy#L34) - See confluence https://confluence.tools.tax.service.gov.uk/x/xIACM~~
- ~~File [conf/application-json-logger.xml](https://github.com/hmrc/penalties-frontend/blob/DL-15982/conf/application-json-logger.xml#L1) can be removed. Logging is provided by Bootstrap (since `8.6.0`) and can be configured via application config alone - See confluence https://confluence.tools.tax.service.gov.uk/x/9oH1FQ~~
- `uk.gov.hmrc:play-frontend-hmrc-play-30` can be updated to `8.5.1` in [project/AppDependencies.scala](https://github.com/hmrc/penalties-frontend/blob/DL-15982/project/AppDependencies.scala#L1).
author_association: NONE
user: login: Jake-Raffe
created_at: 2025-04-03T15:27:16Z
body: All test file changes are only replacing 'Matchers' with 'ArgumentMatchers' because of the mockito update
author_association: CONTRIBUTOR
user: login: Jake-Raffe
created_at: 2025-04-04T07:17:19Z
body: ![Version 3 0 3 running Java 21 0 6](https://github.com/user-attachments/assets/9dd0a114-bb72-401b-a5c6-5375c151f033)

author_association: CONTRIBUTOR