packages feed

keiro-dsl-0.12.0.0: test/conformance-declarative-router/Generated/TransferRouting/StructuralConformance.hs

-- @generated by keiro-dsl 0.12.0.0 (language keiro-dsl 5) from context transfer-routing structural conformance; do not edit.
module Generated.TransferRouting.StructuralConformance
  ( structuralConformanceAssertions
  ) where

import Data.List (nub)
import Data.List.NonEmpty qualified as NonEmpty
import Data.Proxy (Proxy (..))
import Data.Text qualified as T
import Keiki.Core (fieldWitnessAgrees)
import Keiki.Shape (CanonicalTypeName (..))
import Keiro.Codec.Structural (FixtureCases (..), bindingDomainRoundTrip, bindingShapeRoundTrip, bindingToShape)
import Generated.TransferRouting.StructuralProjections qualified as StructuralProjections
import Conformance.DeclarativeRouter.Bindings qualified as Bindings
import Conformance.DeclarativeRouter.Domain (HospitalLoadRow, TransferRouteInput)
import Generated.TransferRouting.Structural.Shape.HospitalLoadRow qualified as ShapeHospitalLoadRow
import Generated.TransferRouting.Structural.Shape.TransferRouteInput qualified as ShapeTransferRouteInput

structuralConformanceAssertions :: [(String, Bool)]
structuralConformanceAssertions =
  concat
    [ hospitalLoadRowBindingAssertions
    , transferRouteInputBindingAssertions
    , [("fixture coverage: conformance.declarative-router.HospitalLoadRow.v1", coverageHospitalLoadRow)]
    , [("fixture coverage: conformance.declarative-router.TransferRouteInput.v1", coverageTransferRouteInput)]
    , structuralProjectionAssertions
    ]

validFixtureLabels :: NonEmpty.NonEmpty (T.Text, value) -> Bool
validFixtureLabels cases =
  all (not . T.null) labels && length labels == length (nub labels)
  where
    labels = map fst (NonEmpty.toList cases)

hospitalLoadRowBindingAssertions :: [(String, Bool)]
hospitalLoadRowBindingAssertions =
  ("fixture labels: conformance.declarative-router.HospitalLoadRow.v1", validFixtureLabels cases) :
  ("canonical identity: conformance.declarative-router.HospitalLoadRow.v1", canonicalTypeName (Proxy @HospitalLoadRow) == "conformance.declarative-router.HospitalLoadRow.v1") :
  concat
    [ [ ("binding domain round-trip: conformance.declarative-router.HospitalLoadRow.v1/" <> T.unpack label, bindingDomainRoundTrip Bindings.hospitalLoadRowBinding value)
      , ("binding shape round-trip: conformance.declarative-router.HospitalLoadRow.v1/" <> T.unpack label, bindingShapeRoundTrip Bindings.hospitalLoadRowBinding (bindingToShape Bindings.hospitalLoadRowBinding value))
      ]
    | (label, value) <- NonEmpty.toList cases
    ]
  where
    cases = fixtureCases Bindings.hospitalLoadRowCases

transferRouteInputBindingAssertions :: [(String, Bool)]
transferRouteInputBindingAssertions =
  ("fixture labels: conformance.declarative-router.TransferRouteInput.v1", validFixtureLabels cases) :
  ("canonical identity: conformance.declarative-router.TransferRouteInput.v1", canonicalTypeName (Proxy @TransferRouteInput) == "conformance.declarative-router.TransferRouteInput.v1") :
  concat
    [ [ ("binding domain round-trip: conformance.declarative-router.TransferRouteInput.v1/" <> T.unpack label, bindingDomainRoundTrip Bindings.transferRouteInputBinding value)
      , ("binding shape round-trip: conformance.declarative-router.TransferRouteInput.v1/" <> T.unpack label, bindingShapeRoundTrip Bindings.transferRouteInputBinding (bindingToShape Bindings.transferRouteInputBinding value))
      ]
    | (label, value) <- NonEmpty.toList cases
    ]
  where
    cases = fixtureCases Bindings.transferRouteInputCases

coverageHospitalLoadRow :: Bool
coverageHospitalLoadRow = True

coverageTransferRouteInput :: Bool
coverageTransferRouteInput = True

structuralProjectionAssertions :: [(String, Bool)]
structuralProjectionAssertions =
  [ ("projection witness agreement: conformance.declarative-router.HospitalLoadRow.v1/available_beds", all (\(_, owner) -> fieldWitnessAgrees StructuralProjections.hospitalLoadRowAvailableBedsWitness (\referenceOwner -> ShapeHospitalLoadRow.availableBeds (bindingToShape Bindings.hospitalLoadRowBinding referenceOwner)) owner) (NonEmpty.toList (fixtureCases Bindings.hospitalLoadRowCases)))
  , ("projection witness agreement: conformance.declarative-router.HospitalLoadRow.v1/hospital_id", all (\(_, owner) -> fieldWitnessAgrees StructuralProjections.hospitalLoadRowHospitalIdWitness (\referenceOwner -> ShapeHospitalLoadRow.hospitalId (bindingToShape Bindings.hospitalLoadRowBinding referenceOwner)) owner) (NonEmpty.toList (fixtureCases Bindings.hospitalLoadRowCases)))
  , ("projection witness agreement: conformance.declarative-router.HospitalLoadRow.v1/region", all (\(_, owner) -> fieldWitnessAgrees StructuralProjections.hospitalLoadRowRegionWitness (\referenceOwner -> ShapeHospitalLoadRow.region (bindingToShape Bindings.hospitalLoadRowBinding referenceOwner)) owner) (NonEmpty.toList (fixtureCases Bindings.hospitalLoadRowCases)))
  , ("projection witness agreement: conformance.declarative-router.TransferRouteInput.v1/region", all (\(_, owner) -> fieldWitnessAgrees StructuralProjections.transferRouteInputRegionWitness (\referenceOwner -> ShapeTransferRouteInput.region (bindingToShape Bindings.transferRouteInputBinding referenceOwner)) owner) (NonEmpty.toList (fixtureCases Bindings.transferRouteInputCases)))
  , ("projection witness agreement: conformance.declarative-router.TransferRouteInput.v1/transfer_need_id", all (\(_, owner) -> fieldWitnessAgrees StructuralProjections.transferRouteInputTransferNeedIdWitness (\referenceOwner -> ShapeTransferRouteInput.transferNeedId (bindingToShape Bindings.transferRouteInputBinding referenceOwner)) owner) (NonEmpty.toList (fixtureCases Bindings.transferRouteInputCases)))
  ]