Skip to content

Commit

Permalink
Merge pull request #55 from hmrc/PSR-1398
Browse files Browse the repository at this point in the history
PSR-1398 applying Changed status to changed transactions for a member
  • Loading branch information
NarsiAgaram authored Oct 1, 2024
2 parents 865eaf4 + b0e0937 commit 0742425
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,11 @@ import uk.gov.hmrc.pensionschemereturnsipp.models.etmp.response.SippPsrSubmissio
import uk.gov.hmrc.pensionschemereturnsipp.models.etmp.{MemberDetails, _}
import uk.gov.hmrc.pensionschemereturnsipp.models.{Journey, JourneyType, MinimalDetails, PensionSchemeId}
import uk.gov.hmrc.pensionschemereturnsipp.transformations._
import uk.gov.hmrc.pensionschemereturnsipp.transformations.sipp.{PSRAssetsExistenceTransformer, PSRMemberDetailsTransformer, PSRSubmissionTransformer}
import uk.gov.hmrc.pensionschemereturnsipp.transformations.sipp.{
PSRAssetsExistenceTransformer,
PSRMemberDetailsTransformer,
PSRSubmissionTransformer
}

import java.time.LocalDate
import scala.concurrent.{ExecutionContext, Future}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import cats.implicits.{catsKernelStdOrderForOption, catsKernelStdOrderForString,
import uk.gov.hmrc.pensionschemereturnsipp.models.api.MemberKey
import uk.gov.hmrc.pensionschemereturnsipp.models.etmp.EtmpMemberAndTransactions
import uk.gov.hmrc.pensionschemereturnsipp.models.etmp.common.SectionStatus
import uk.gov.hmrc.pensionschemereturnsipp.models.etmp.common.SectionStatus.Deleted
import uk.gov.hmrc.pensionschemereturnsipp.models.etmp.common.SectionStatus.{Changed, Deleted}

import java.time.LocalDate
import scala.util.chaining.scalaUtilChainingOps
Expand Down Expand Up @@ -64,10 +64,10 @@ object EtmpMemberAndTransactionsUpdater {
if (areJourneysEmpty(modified))
modified.copy(status = Deleted, version = None)
else
modified
modified.copy(status = Changed, version = None)
}
} else {
etmpTxsByMember
etmpTxsByMember // No changes to transactions, leaving `status` as is
}
}.toList

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ package uk.gov.hmrc.pensionschemereturnsipp.transformations
import cats.data.NonEmptyList
import uk.gov.hmrc.pensionschemereturnsipp.models.api.AssetsFromConnectedPartyApi
import uk.gov.hmrc.pensionschemereturnsipp.models.api.common._
import uk.gov.hmrc.pensionschemereturnsipp.models.common.YesNo.{No, Yes}
import uk.gov.hmrc.pensionschemereturnsipp.models.common.SharesCompanyDetails
import uk.gov.hmrc.pensionschemereturnsipp.models.common.YesNo.{No, Yes}
import uk.gov.hmrc.pensionschemereturnsipp.models.etmp.common.SectionStatus
import uk.gov.hmrc.pensionschemereturnsipp.models.etmp.common.SectionStatus.Deleted
import uk.gov.hmrc.pensionschemereturnsipp.models.etmp.{
Expand Down Expand Up @@ -113,6 +113,7 @@ class AssetsFromConnectedPartyTransformerSpec extends BaseSpec with SippEtmpDumm

result mustBe List(
etmpData.copy(
status = SectionStatus.Changed,
otherAssetsConnectedParty = Some(
SippOtherAssetsConnectedParty(
1,
Expand Down Expand Up @@ -165,6 +166,7 @@ class AssetsFromConnectedPartyTransformerSpec extends BaseSpec with SippEtmpDumm

result mustBe List(
etmpData.copy(
status = SectionStatus.Changed,
otherAssetsConnectedParty = Some(
SippOtherAssetsConnectedParty(
1,
Expand Down Expand Up @@ -208,7 +210,8 @@ class AssetsFromConnectedPartyTransformerSpec extends BaseSpec with SippEtmpDumm
val result = transformer.merge(NonEmptyList.of(testData), List(etmpData))

result mustBe List(
etmpData.copy(otherAssetsConnectedParty = None, status = Deleted), // No more tx for first member :/
etmpData
.copy(otherAssetsConnectedParty = None, status = Deleted), // No more tx for first member :/
etmpData.copy(
memberDetails = MemberDetails(
firstName = "firstName",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,13 +107,14 @@ class LandArmsLengthTransformerSpec extends BaseSpec with SippEtmpDummyTestValue
)

"merge" should {
"update LandArms data for a single member when member match is found" in {
"add LandArms data for a single member when member match is found" in {
val testEtmpData = etmpData.copy(landArmsLength = None)

val result = transformer.merge(NonEmptyList.of(landArmsDataRow1), List(testEtmpData))

result mustBe List(
etmpData.copy(
status = SectionStatus.Changed,
landArmsLength = Some(
SippLandArmsLength(
1,
Expand Down Expand Up @@ -146,13 +147,14 @@ class LandArmsLengthTransformerSpec extends BaseSpec with SippEtmpDummyTestValue

}

"replace LandArms data for a single member when member match is found" in {
"update LandArms data for a single member when member match is found" in {

val testLandArmsDataRow1 = landArmsDataRow1.copy(acquiredFromName = "test2")
val result = transformer.merge(NonEmptyList.of(testLandArmsDataRow1), List(etmpData))

result mustBe List(
etmpData.copy(
status = SectionStatus.Changed,
landArmsLength = Some(
SippLandArmsLength(
1,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import uk.gov.hmrc.pensionschemereturnsipp.models.api.LandOrConnectedPropertyApi
import uk.gov.hmrc.pensionschemereturnsipp.models.api.common._
import uk.gov.hmrc.pensionschemereturnsipp.models.common.YesNo.{No, Yes}
import uk.gov.hmrc.pensionschemereturnsipp.models.common.{AddressDetails, RegistryDetails}
import uk.gov.hmrc.pensionschemereturnsipp.models.etmp.common.SectionStatus
import uk.gov.hmrc.pensionschemereturnsipp.models.etmp.common.SectionStatus.Deleted
import uk.gov.hmrc.pensionschemereturnsipp.models.etmp.{MemberDetails, SippLandConnectedParty}
import uk.gov.hmrc.pensionschemereturnsipp.utils.{BaseSpec, SippEtmpDummyTestValues}
Expand All @@ -32,13 +33,14 @@ class LandConnectedPartyTransformerSpec extends BaseSpec with SippEtmpDummyTestV
private val transformer: LandConnectedPartyTransformer = new LandConnectedPartyTransformer()

"merge" should {
"update LandArms data for a single member when member match is found" in {
"add LandArms data for a single member when member match is found" in {
val testEtmpData = etmpDataWithLandConnectedTx.copy(landConnectedParty = None)

val result = transformer.merge(NonEmptyList.of(landConnectedTransaction), List(testEtmpData))

result mustBe List(
etmpDataWithLandConnectedTx.copy(
status = SectionStatus.Changed,
landConnectedParty = Some(
SippLandConnectedParty(
1,
Expand Down Expand Up @@ -71,13 +73,14 @@ class LandConnectedPartyTransformerSpec extends BaseSpec with SippEtmpDummyTestV

}

"replace LandArms data for a single member when member match is found" in {
"update LandArms data for a single member when member match is found" in {

val testLandArmsDataRow1 = landConnectedTransaction.copy(acquiredFromName = "test2")
val result = transformer.merge(NonEmptyList.of(testLandArmsDataRow1), List(etmpDataWithLandConnectedTx))

result mustBe List(
etmpDataWithLandConnectedTx.copy(
status = SectionStatus.Changed,
landConnectedParty = Some(
SippLandConnectedParty(
1,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,13 +90,14 @@ class OutstandingLoansTransformationsSpec extends BaseSpec with SippEtmpDummyTes
)

"merge" should {
"update data for a single member when member match is found" in {
"add data for a single member when member match is found" in {
val testData = etmpData.copy(loanOutstanding = None)

val result = transformer.merge(NonEmptyList.of(sippOutstandingLoansApi), List(testData))

result mustBe List(
etmpData.copy(
status = SectionStatus.Changed,
loanOutstanding = Some(
SippLoanOutstanding(
1,
Expand Down Expand Up @@ -132,6 +133,7 @@ class OutstandingLoansTransformationsSpec extends BaseSpec with SippEtmpDummyTes

result mustBe List(
etmpData.copy(
status = SectionStatus.Changed,
loanOutstanding = Some(
SippLoanOutstanding(
1,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,13 @@ class TangibleMoveablePropertyTransformerSpec extends BaseSpec with SippEtmpDumm

"merge" should {
"put new member data if there is no previous data" in {
val testEtmpData = etmpData.copy(otherAssetsConnectedParty = None)
val testEtmpData = etmpData.copy(tangibleProperty = None)

val result = transformer.merge(NonEmptyList.of(sippTangibleApi), List(testEtmpData))

result mustBe List(
etmpData.copy(
status = SectionStatus.Changed,
tangibleProperty = Some(
SippTangibleProperty(
1,
Expand Down Expand Up @@ -105,14 +106,15 @@ class TangibleMoveablePropertyTransformerSpec extends BaseSpec with SippEtmpDumm

}

"replace data for a single member when member match is found" in {
"update data for a single member when member match is found" in {
val updateValues = sippTangibleApi.copy(
acquiredFromName = "test2"
)
val result = transformer.merge(NonEmptyList.of(updateValues), List(etmpData))

result mustBe List(
etmpData.copy(
status = SectionStatus.Changed,
tangibleProperty = Some(
SippTangibleProperty(
1,
Expand Down

0 comments on commit 0742425

Please sign in to comment.