You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

About

The tests in this class applies to the agreement controller. 
In SonWIn terms, an account is somewhat equivilant to an AKUNDE record. 

Included in the tests for this controller is the Common Data Tests.

Information

Information about the controller can be found in this link: 

Agreement Controller

Information (Dansk)

FORMÅL
------
Endpointet returnerer kundens AKTIVE el-aftaler (kontrakter) for ét bestemt
målepunkt. "serviceId" SKAL være målepunktets EAN-/aftagenummer (edielnummer),
ellers svarer kaldet ikke med korrekte data.

Svaret er en liste af aftale-objekter. Hvert objekt har felterne:
  Id, ServiceId, DisplayName, AgreementType, StartDate, EndDate,
  HasCapacityTariffs, Info[].


SÅDAN LÆSES TESTENE
-------------------
- Disse er MANUELLE, datakritiske tests. Trivielle kald og det, der allerede er
  dækket af unit-/integrationstests, er udeladt. Fokus er på data, som kun kan
  bevises mod RIGTIGE kundedata ved at sammenligne med klientprogrammet.
- Hver test beskriver HVAD værdien betyder (ikke hvor i databasen den kommer
  fra) og peger på, hvor i klienten du selv kan kontrollere den.
- VIGTIGT om svarets felter (læs afsnit B FØRST): de fleste felter i svaret er
  FASTE/hårdkodede og afspejler IKKE den enkelte kontrakts data. Det eneste
  datadrevne signal er ANTALLET af aftaler i listen. Forveksl ikke en fast
  værdi med en fejl.
- Fejl: når en test forventer, at kaldet AFVISES, skal du bekræfte, at fejlen
  er synlig i SonWin-databasens log "BLOG", og at der IKKE returneres data til
  kunden.

ORDLISTE (svarfelt -> klient-/kundebegreb)
------------------------------------------
  Id                 -> målepunktets id (EAN/aftagenummer)
  ServiceId          -> målepunktets id (EAN/aftagenummer)
  DisplayName        -> produktnavn vist i klienten
  AgreementType      -> aftaletype
  StartDate          -> aftalens startdato
  EndDate            -> aftalens slutdato
  HasCapacityTariffs -> om aftalen har kapacitetstariffer
  Info[]             -> supplerende oplysninger (liste af titel/nøgle/værdi)
  customerId         -> kundenummer
  serviceId          -> målepunktets EAN-/aftagenummer (edielnummer)

Tests

Unique identification

ANTAL AKTIVE AFTALER  (det eneste datadrevne i svaret)

  • Antal aftaler svarer til kundens aktive el-aftaler
      Gør: Kald endpointet med en kunde og ét af kundens målepunkter (EAN), som du
           ved har præcis én aktiv el-aftale i dag.
      Forvent: Listen indeholder præcis ÉT aftale-objekt.
      Kontrollér i klienten: Find kunden og det pågældende målepunkt, og tæl de
           kontrakter, der er gyldige i dag. Antallet i svaret skal stemme.

  • Flere forskellige aktive aftaler giver flere objekter
      Gør: Vælg et målepunkt, hvor kunden i dag har flere forskellige aktive
           kontrakter (forskellige kontraktnavne).
      Forvent: Ét objekt pr. forskellig aktiv kontrakt - hverken slået sammen til
           ét eller blæst op med dubletter.
      Kontrollér i klienten: Antal gyldige kontrakter på målepunktet i dag.

  • Samme kontrakt med flere linjer tælles kun én gang
      Gør: Vælg et målepunkt, hvor en aktiv kontrakt har flere underliggende linjer
           (fx både a conto og opgørelse).
      Forvent: Kontrakten optræder som ÉT objekt i listen, ikke som flere.

FASTE / HÅRDKODEDE FELTER  (felter der IKKE er rigtige aftaledata)

(Dette afsnit beskriver bevidst begrænsningen i svaret, så du ikke fejlmelder
faste værdier som datafejl. Disse felter afspejler IKKE den enkelte kontrakt.)

  • Id og ServiceId er altid det indtastede målepunkt (EAN), ikke kontraktens id
      Gør: Kald med et serviceId og se på Id og ServiceId i hvert objekt.
      Forvent: Begge felter er nøjagtigt det EAN/serviceId, du sendte ind - ens for
           alle objekter i listen, uanset hvor mange forskellige aftaler kunden har.

  • DisplayName er altid teksten "Dit elprodukt"
      Gør: Se på DisplayName i alle objekter.
      Forvent: Værdien er præcis "Dit elprodukt" i alle tilfælde - også når kundens
           rigtige kontrakt hedder noget andet i klienten.
      Kontrollér i klienten: Kontraktens rigtige navn vises et andet sted; det
           gengives bevidst IKKE i svaret.

  • AgreementType, StartDate, EndDate og HasCapacityTariffs er altid tomme
      Gør: Se på disse fire felter for en aftale, hvor du i klienten KAN se en rigtig
           aftaletype, start-/slutdato og evt. kapacitetstariffer.
      Forvent: Alle fire felter er null/tomme i svaret, selv om dataene findes i
           klienten.

  • Info er altid en tom liste (aldrig null)
      Gør: Se på Info-feltet.
      Forvent: Info er til stede som en TOM liste [] - aldrig null og aldrig med
           indhold.

DATOFILTRERING - kun aftaler der er aktive I DAG
(Filtreringen sker på serverens dato/tid. Test så vidt muligt på dage hvor du
kender start-/slutdatoer i klienten.)

  • Endnu ikke startet aftale udelades
      Gør: Vælg et målepunkt med en kontrakt, hvis startdato ligger i FREMTIDEN.
      Forvent: Den fremtidige kontrakt er IKKE med i listen (den tæller ikke med).
      Kontrollér i klienten: Kontrakten er oprettet, men med startdato senere end i dag.

  • Aftale der starter præcis i dag er med
      Gør: Vælg en kontrakt med startdato = dags dato.
      Forvent: Kontrakten ER med i listen.

  • Afsluttet aftale udelades
      Gør: Vælg et målepunkt med en kontrakt, hvis slutdato ligger i FORTIDEN.
      Forvent: Den afsluttede kontrakt er IKKE med i listen.
      Kontrollér i klienten: Kontrakten har en slutdato før i dag.

  • Aftale der slutter præcis i dag er IKKE med (slutdato er eksklusiv)
      Gør: Vælg en kontrakt med slutdato = dags dato.
      Forvent: Kontrakten er IKKE med i listen.

  • Åben (uden slutdato) aftale er med
      Gør: Vælg en aktiv kontrakt UDEN slutdato.
      Forvent: Kontrakten ER med i listen.

  • Kundens tilknytning til aftalen skal også være aktiv i dag
      Gør: Find et tilfælde hvor selve kontrakten er aktiv i dag, men kundens
           tilknytning til kontrakten er ophørt (eller endnu ikke startet).
      Forvent: Aftalen er IKKE med i listen.


================================================================================
D. KORREKT TILKNYTNING - kunde, målepunkt (EAN) og forsyningsart
================================================================================

D1 - Aftaler hører til det rigtige målepunkt (EAN)
  Gør: Kald med kundens customerId, men med EAN for et målepunkt, der tilhører
       kunden, og noter aftalerne. Gentag for et ANDET af kundens målepunkter.
  Forvent: De to kald giver de aftaler, der hører til hvert sit målepunkt - ikke
       en sammenblanding.
  Kontrollér i klienten: Hvilke kontrakter ligger på hvilket målepunkt.
  Kritisk fordi: serviceId/EAN bestemmer hvilket målepunkt der spørges på.
       Knyttes data til det forkerte målepunkt, ser kunden aftaler for en adresse
       de ikke vedrører.

D2 - Kun el-aftaler returneres (anden forsyningsart udelades)
  Gør: Vælg en kunde, der ud over el også har fx gas/varme/vand på samme
       installation.
  Forvent: Kun el-aftaler er med i listen. Ikke-el forsyning udelades helt.
  Kontrollér i klienten: Kundens forsyningsarter på installationen.
  Kritisk fordi: Endpointet er kun for el. Lækker en anden forsyningsart ind,
       vises forkerte produkter for kunden.

D3 - Kun aktiv forbruger
  Gør: Vælg et tilfælde, hvor forbrugeren/aftageforholdet er ophørt/lukket.
  Forvent: Der returneres ingen aftaler for det lukkede forhold (tom liste -
       se F1), ikke gamle aftaler.
  Kritisk fordi: En lukket kunde må ikke fortsat få vist aktive produkter.

D4 - Alle returnerede aftaler tilhører den kunde, der blev spurgt på
  Gør: Kald med et gyldigt customerId og et gyldigt EAN.
  Forvent: Svaret indeholder kun denne kundes aftaler. (Hvis de underliggende
       data nogensinde indeholder en anden kundes række, AFVISES kaldet helt -
       se E6.)
  Kritisk fordi: Sikrer at en kunde aldrig kan komme til at se en anden kundes
       aftaler.

Result:

Update User Account



  • No labels