======= Vsetko ohladom testov ======= Metadata: unit test, cppunit, testy, kvalita ===== Vstupne data ===== Novo generovane data sa nachadzaju na ceste: 192.168.241.25/Dokumentacia/Projekty_ISO/02_PlatobnySystem-Intel/To/Test/__DATAtest/ a 192.168.241.25/DokumentaciaTD/VyvojovyUsekArchiv/VyvojSW/TransFare/IntegrationTesting/ Aktualne pouzivane data sa nachadzaju v git repozitari vozidlovej aplikacie 'vehiclesystemapps.git', v priecinku: **AppCore/src/tests/data** Z tejto cesty treba data rozbalit este na Phoenix: /usr/local/emtest/platforms/templates/testing/cpdata/ \\ V pripade potreby zmien konfiguracie testov sa zmeny vykonavaju na Phoenixe aby sa prejavili na vsetkych PC Rozbehnutie unit testov na PC: je potrebne mat vytvorene priecinky **testing** na ceste **/opt/devel/etc/** a **/opt/devel/var/lib/** ln -s CESTA_K_STIAHNUTYM_ZDROJAKOM/AppCore/src/tests/configs/ /opt/devel/etc/testing/ETIL ln -s CESTA_K_STIAHNUTYM_ZDROJAKOM/AppCore/src/tests/data /opt/devel/var/lib/testing/cpdata \\ ==== Popis liniek ==== | Linka | Spoj | Popis | | 100002 | | kombinovna PAL s usekom MHD - zastavky ZA nastavena TS MHD s nahradnou Primestska , zvysok Primestska | | 102 | | MHD pasmovy tarifny system s usekmi 1-1, 1-2, 2-2. | | 102418 | | BID zonovy usek s prechodom do neIDS BID useku. | | 102414 | 33 | 'Bac,razc' do 'Rohovce,posta' - 4km + navazny 102414/42 'Rohovce, posta' do 'Bac OU' 5km = 9km /0,9e. Nastavena odchylka na vsetky linky z 'Bac, razc' - 'Bac OU' 1 riadok 0,7e | | 506401 | 1 | ZSK IDS | 506402 | 1 | ZSK IDS ==== Popis odchyliek ==== V systeme je nastavena odchylka pre zastavky z **'Bac, razc'** -> **'Bac OU'**. Popis fungovania odchyliek: DokumentaciaTD/VyvojovyUsek/VyvojSW/TransFare/OnboardComputer_Slave_Common/SpolocneVlastnostiCitackyAPalubnehoPocitaca_VERZIA.pdf Na zastavkach su nastavene nasledovne odchylky: | **Typ odchylky** | **Riadok cennika** | **Linka** | **Spoj** | **Zastavky** | **Tarif. skupina** | **Cennik** | | Odchylka na linku, spoj a zast.| riadok 4 - 1.10eur | 102414 | 33 | 'Báč,, rázc.' -> 'Báč,,OcÚ' | PAL/11 | Primesto/801000027 | | Odchylka na linku | riadok 3 - 0.90eur | 102414 | lubovolny(napr. 39) | 'Báč,, rázc.' -> 'Báč,,OcÚ' | PAL/11 | Primesto/801000027 | | Vseobecna odchylka na zastavky | riadok 2 - 0.80eur | lubovolna(napr. 102418) | lubovolny(napr. 235) | 'Báč,, rázc.' -> 'Báč,,OcÚ' | PAL/11 | Primesto/801000027 | ==== Changelog vstupnych dat ==== ---- * 6.10.2020 * nove data pre IDS ZSK * Cennik ZSK - prestupny, do 30 min od vystupu podla CP, cena za kazdy km 0.02 + fixna cena, ktora je zlavou po prestupe * 2 linky z Martina s nastavenou TS IDS + nahradna neids + navzajom nastavene ako nahradne ---- * 4.6.2018 * dvojica Hajik Stodolova - Zavodie nastavene tarifne km 0 tam aj spat ---- * 8.2.2018 * 100001(1A)/6 zastavka Brodno aj 100002(2A)/4 zastavka brodno -> prestup na 3(3)/1 * 100001/6 zastavka Brodno -> prestup na 3(3)/1 a sucasne 3(3)/1 zastavka Brodno -> prestup na 100001(1A) /5 * linka 2 (2B) spoj 2 + pokracujuca linka 3(3) spoj 1 na zastavke ZA Brodno zel.st -> 100001 (1A) spoj 5 * linka 3(3) spoj 1 zastavka ZA,Brodno zel.st -> prestup na linku 100001(1A) spoj 5 + pokracujuca 100002 (2A) spoj 3 * 100002(2A)/4 zastavka A.Bernolaka -> prestup na 100001(1A)/6 a na zastavke Brodno -> prestup na 3(3)/1 * TS povolene prestupy v primeste , vsetky tarify TS PRimestska doprava nastavene ceny prestupnych spojov - sucet km ---- * 13.11.2017 - K.Turcelova * pridana linka 12 - MHD KE * pridany cennik casovy - Obycajne cest 30 a 60 min + zastavkovy - 4zastavky + pasmovy CL 30dni zakladny * TS 10 MHD s obycajnym cestovnym + CL / nahradna TS 9 4zastavkovy ---- * 07.11.2017 - K.Turcelova * Pridanie zastavky 'Bac Ocu' na linku 102414 spoj 39 * Nastavenie tarifnych skupin na linke 102418 na PAD useku na TS Primesto ---- * 06.11.2017 - K.Turcelova * Pridanie odchylok na linke 102414 * bez odchylky - riadok 1 - 0.7eur * odchylka vsetky linky - riadok 2 - 0.8eur * odch. linka vcetky spoje - riadok 3 - 0.9eur * odch linka spoj 33 - 4 -1.10 * Linka 102418 - pridany spoj 235 - BA,AS - BA,Racianske - Bac , razc - Bac ObU - malo by zohladnit vseobecnu odbhylku na riadok 2 ---- * 18.07.2017 - K.Turcelova * naeditovany prestup 100001 spoj 1 na 100002 spoj 2 na zastavke ZA Bernolakova ---- * 27.07.2017 - K.Turcelova * linka 100002 - kombinovna PAL s usekom MHD - zastavky ZA nastavena TS MHD s nahradnou Primestska , zvysok Primestska ---- * 25.04.2017 - K.Turcelova * vratena cena za MBA a BSK 10% u 500 PCL 30dni * tarify na TS ostdava KC a SK, nahradna TS nastavena ---- * 21.04.2017 - K.Turcelova * linka 102418 spoj 13 - 1.zastavka mino zach. ---- * 12.04.2017 - K.Turcelova * linka 102418 - opravene zastavky aby zobpovedali povodnym zastavkam a vzdialenostiam na ktore boli testy robene ---- * 05.04.2017 - K.Turcelova * CL1C 450 a viac nemali nastavene Prestupne - prestavene ---- * 20.06.2016 - K.Turcelova * neboli vybrate linky ---- * 16.06.2016 - K.Turcelova * znova nahodene vsetky linky, naimportovane linky SL a prneseny tarifny BID lebo sa stratila DB * vygenerovane data so spojom 102418/26 obchadzka JL ale cas nastup - vystup je viac ako za prejdene zony ---- * **Strata databazy** * Stary changelog sa nachadza na ceste Dokumentacia/Projekty_ISO/02_PlatobnySystem-Intel/To/Test/DATAtest ===== Konfiguracne subory integracneho testovania ===== Aktualne pouzivane testy sa nachadzaju v git repozitari vozidlovej aplikacie 'vehiclesystemapps.git', v priecinku: **AppCore/src/tests/configs**. \\ Kazdy test ma definovane vstupne data vo forme XML (konfiguracia testu), kde su zadane elementarne vstupy pre vydaj (napr Linka, Spoj, CisloTarifnehoListka, nastupna a vystupna zastavka, ... - vsetko sekcia ****). Kartove testy maju navyse v tychto vstupnych datach definovanu cestu k suboru s datami karty (****).\\ Vo vstupnych datach mozu byt v sekcii **** definovane dalsie parametre, ktore sa mozu spatne kontrolovat napr. po vydaji listka (moze sa kontrolovat napr. cena listka, ...). Priklad konfiguracie testu: 2 1 9999 1 1 1 1 0 1 6 0 1 0 1 18 18 15 ETIL/CardIssue/CardStatistic/image 1 \\ \\ ===== TestManager ===== TestManager je zodpovedny za vyhladavanie a zaregistrovanie vsetkych testov. Prehladava podpriecinky v **etc/testing/ETIL**, ktore obsahuju .xml subory a ich nazov je definovany nazov konkretneho testu (TestManager ma tieto nazvy definovane v mape napevno). Pri registracii testov sa definuju makrom **CPPUNIT_TEST()** nazvy metod triedy, ktore sa maju vykonat pre samotne testovanie.\\ Trieda, ktora implementuje testy moze obsahovat viacero testov (trieda == balik testov).\\ Pred spustenim tychto metod sa vola metoda setUp(), ktora vycita vstupne data z konfiguracneho suboru testu,\\ podla nich nastavi potrebne parametre vydaja a tarifne nastavenia, vytvori novu statistiku, inicializuje vydaj (IssueIn()) a inicializuje TicketIssueLogic.\\ Po testovani sa vola metoda tearDown(), v ktorej prebehne vytvorenie a naplnenie koncoveho listka statistiky a obnovia sa povodne tarifne nastavenia.\\ Priklad ako vyzera registracia triedy s testami: CPPUNIT_TEST_SUITE ( TestStatisticContinuousTrip ); // definovanie balika testov - nazvu triedy CPPUNIT_TEST ( CheckStatisticContinuousTrip ); // definovnie 1.testu (metoda triedy TestStatisticContinuousTrip) CPPUNIT_TEST ( CheckStatisticForCombinedTicketOnContinuousTrip ); // definovnie 2.testu (metoda triedy TestStatisticContinuousTrip) CPPUNIT_TEST_SUITE_END(); // koniec test suite \\ \\ ===== Priebeh testovania ===== Samotne testovanie napr. v modelovaj situacii kontroly konkretnych parametrov statistiky po vydaji listka (predpokladajme ze uz metoda setUp() prebehla): * vydame listok * kontrolujeme parametre listka v statistike ( pomocou makra **CPPUNIT_ASSERT_MESSAGE()** definujeme podmienku, ktora ma byt splnena ak ma test prebehnut uspesne a text, ktory sa zobrazi, ak podmienka nie je splnena.)\\ Pri testovani je bezne, ze pre jeden balik testov existuje vacsi pocet konfiguracnych suborov, ktore zohladnuju rozne scenare. Vysledky vsetkych testov sa okrem zapisania na standardny vystup zapisuju do suboru **TestResults.xml**. \\ \\ ===== Existujuce testy ===== ==== Card test suites ==== * **TestCardByway** * BywayTest: (zachadzky) * vydaj listka * km na listku vs konfig (PaidDistance ak je zadane) * cena listka vs konfig (TicketPrice ak je zadane) * platene zony vs konfig (PaidZoneList) \\ \\ * **TestCardCombinedTicket** * BIDCases: * Dokument popisujuci priklady: DokumentaciaTD/VyvojovyUsek/VyvojSW/TransFare/IntegrationTesting/BID cases/Príklady výpočtu cien.pdf * inicializacia card facade + vydaj listka + zapis statistiky * pocet vydanych listkov (ocakava sa jeden) * pocet segmentov vydaneho listka vs konfig (IssuedTicketSegmentsSize) * cena listka vs konfig (TicketPrice) * riadok cennika vydaneho listka vs konfig (PriceListRowNumber) \\ \\ * **TestCardCombinedTicketStastistic** * CheckStatisticForCombinedTicketWithCalculationPriceForEachSection: - test vypnuty z dovodu cieleneho znefunkcnenia nastavenia 13 na tarife * CheckStatisticForCombinedTicketWithCalculationPriceByDistanceUnit: * inicializacia card facade + vydaj listka + zapis statistiky * na vydanom listku musi byt tarifna skupina spoja (kt. nie je z pokracujuceho spoja) rovnaka ako tarifna skupina z pokracujuceho spoja * CheckStatisticForCombinedTicketWithContinuousTrip: * inicializacia card facade + vydaj listka + zapis statistiky * cislo linky a spoja na listku z pripojneho spoja vs konfig (ContinuousLineNumber a ContinuousTripNumber) * CheckStatisticVATForCombinedTicketWithContinuousTrip: * inicializacia card facade + vydaj listka + zapis statistiky * ak je vydany listok na pokracujuci spoj, kontroluje sa DPH vypocitana z ceny listka a akt. tarify vs DPH zapisana na listku \\ \\ * **TestCardDestinationZone** * Check: * inicializacia card facade + vydaj listka + zapis statistiky (pred vydajom sa nastavia additional zones, destination zone (DestinationZone) a flag UsePriceListRowWithLongestTimeValidity. Additional zones sa pocitaju z destination zone a inych parametrov konfigu (TripOrderCheckinBusStop, TripOrderCheckoutBusStop, TariffTicketNumber)). * pocet vydanych listkov (ocakava sa jeden) * pocet segmentov vydaneho listka vs konfig (IssuedTicketSegmentsSize) * celkova cena vydaneho listka vs konfig (TicketPrice) \\ \\ * **TestCardIssue** * CheckCardIssue: * inicializacia card facade + vydaj listka + zapis statistiky \\ \\ * **TestCardOneWayTicketCancellation** * CheckOneWayTicketCancellation: Testy na storno listka z karty. Pre kazdy pripad sa preda listok a nasledne vystornuje. Jednotlive testy menia nastavenia TS40 (storno JL v primeste) a TS149 (storno JL v MHD). \\ \\ Kontroluju sa polozky: * stav penazenky pred zapisom na kartu a po storne musi byt rovnaky * vystupny obraz karty __Testovane situacie:__ OWT na karte su zapisane v strukture EOneWayTicketZone: - test_case_01 - Spoj 2/1, zastavky 1-2, CTL 1, TS40=1, TS149=1, na karte nie je ziaden listok - test_case_02 - Spoj 2/1, zastavky 1-2, CTL 1, TS40=1, TS149=1, na karte je listok majitela a spolucestujuceho zo spoja 9/7 - test_case_03 - Spoj 2/1, zastavky 1-2, CTL 2, TS40=1, TS149=1, na karte je listok majitela zo spoja 2/1 - test_case_04 - Spoj 2/1, zastavky 1-2, CTL 2, TS40=1, TS149=1, na karte je listok majitela zo spoja 2/1, dokupuju a stornuju sa viaceri spolucestujuci - test_case_11 - TS40=2, TS149=2, inak to iste ako test_case_01 - test_case_12 - TS40=2, TS149=2, inak to iste ako test_case_02 - test_case_13 - TS40=2, TS149=2, inak to iste ako test_case_03 - test_case_14 - TS40=2, TS149=2, inak to iste ako test_case_04 OWT na karte su zapisane v strukture EOneWayTicketZoneList: - test_case_21 - struktura EOneWayTicketZoneList, inak to iste ako test_case_01 - test_case_22 - struktura EOneWayTicketZoneList, inak to iste ako test_case_02 - test_case_23 - struktura EOneWayTicketZoneList, inak to iste ako test_case_03 - test_case_24 - struktura EOneWayTicketZoneList, inak to iste ako test_case_04 - test_case_31 - struktura EOneWayTicketZoneList, inak to iste ako test_case_11 - test_case_32 - struktura EOneWayTicketZoneList, inak to iste ako test_case_12 - iba majitel - test_case_33 - struktura EOneWayTicketZoneList, inak to iste ako test_case_13 - test_case_34 - struktura EOneWayTicketZoneList, inak to iste ako test_case_14 \\ \\ * **TestCardStatistic** Test na kontrolu statistiky po vydaji z karty. Kontroluju sa polozky: * Vypocitana DPH (DPH v statistike sa kontroluje voci vypocitanej DPH z ceny listka a tarify). * Pocet kilometrov, pokial je "nastavenie TS175" (pouzit kombinovany listok) == "0" (nekombinovany listok). Pocet kilometrov sa kontroluje voci TestConfigu. __Testovane situacie:__ - Spoj 2/1 (PAD), vydaj z prvej na druhu zastavku - Spoj 2/1 (PAD), vydaj z prvej na piatu zastavku - Spoj 100001/1 (MHD), vydaj z prvej na stvrtu zastavku \\ \\ * **TestCardFellowTravellerIssue** Testujeme zapis listka spolucestujuceho na kartu: * ak je nastavenie TS62 == "1" a tarifa je prestupna (VT10=0), kazdy listok spolucestujuceho sa ma zapisat vzdy na samostatny ticketIndex ("separatny zapis") * ak je nastavenie TS62 == "2" alebo tarifa nie je prestupna (VT10=1), listky spolucestujucich s rovnakou tarifou sa maju zapisat na jeden ticketIndex, pricom sa na danom indexe zvysi ticketCount ("spolocny zapis") __Testovane situacie:__ spoj 506401/1 - Dokupenie spolucestujuceho, ak je na karte zapisany listok majitela. Listok spolucestujuceho sa zapise na samostatny ticketIndex. - Dokupenie spolucestujuceho, ak je na karte zapisany listok majitela a jedneho spolucestujuceho. Pri separatnom zapise sa ma pouzit samostatny ticketIndex. Pri spolocnom zapise sa pouzije ticketIndex prveho spolucestujuceho, pricom sa zvysi pocet listkov. - Dokupenie spolucestujuceho, ak je na karte zapisany listok majitela a dvoch spolucestujucich. Pri separatnom zapise sa ma pouzit samostatny ticketIndex. Pri spolocnom zapise sa pouzije ticketIndex prvych dvoch spolucestujucich, pricom sa zvysi pocet listkov. \\ \\ * **TestCardTimeTicketExtensionWithRegionalDiscount** Test na predlzenie casoveho listka, pokial je na karte regionalna zlava. __Testovane situacie:__ - Predlzenie casoveho listka na zony (100,101), pokial je na karte regionalna zlava BID SeniorPass. Spoj 102414/5. \\ \\ * **TestCardCrossTransfers** Test na krizove prestupy. Pri krizovom prestupe sa neplati plna cena za listok, ale berie sa do uvahy uz zaplatena cena za predosly spoj. __Testovane situacie:__ - Jednoduchy krizovy prestup (bez navaznych spojov) zo spoja 100001/6 na 3/1 na zastavke "Brodno,ZST" - ten isty spoj so spolucestujucimi - ten isty spoj, ak je na karte listok z nastavenym flagom "wasInterchange". Preda sa listok v plnej cene. - Krizovy prestup z navazneho spoja na jednoduchy spoj (zo spoja 2/2+3/1 na 100001/5 na zastavke "Brodno,ZST") - Krizovy prestup z jednoducheho spoja na navazny spoj (zo spoja 3/1 na 100001/5+100002/3 na zastavke "Brodno,ZST") __Navrhy testov na dorobenie:__ * Dvojnasobny krizovy prestup - z 100002/4 na 100001/6 na zastavke "Bernolakova", potom z 100001/6 na 3/1 na zastavke "Brodno,ZST". Druhy prestup by mal byt v plnej cene (kvoli nastavenemu flagu wasInterchange). * Vsetky varianty so spolucestujucimi \\ \\ * **TestCardCheckoutOptimalization** Test na optimalizaciu listka pri vystupeni z vozidla (checkout). Na optimalizovanom listku sa upravi tarifa, cena a zastavky. __Testovane situacie:__ - Optimalizacia listka na spoji 12/1, na karte je len listok majitela - Optimalizacia listka na spoji 12/1, na karte je listok majitela aj spolucestujucich - Optimalizacia listka na spoji 12/1, na karte je jazda majitela na PCL a listky spolucestujucich \\ \\ * **TestCardProlongTicketTimeValidity** Test na predlzovanie jednorazoveho listka (dokupovanie minut). __Testovane situacie:__ - Dokupovanie minut na spoji 12/1, na karte je jazda majitela na PCL a listky dvoch spolucestujucich. Mali by sa predat tri listky, listok pre majitela ma nulovu cenu. - Dokupovanie minut na spoji 12/1, na karte je len listok majitela. Mal by sa predat jeden listok za plnu cenu. - Dokupovanie minut na spoji 12/1, na karte je listok majitela a listky dvoch spolucestujucich. Mali by sa predat tri listky, vsetky za plnu cenu. - Dokupovanie minut na spoji 12/1, na karte je listok majitela a listky dvoch spolucestujucich, predlzujeme len listok majitela. Mal by sa predat jeden listok, listky spolucestujucich by sa mali zneplatnit. \\ \\ * **TestCardSeparateInterchangeForFellows** Test na postupny prestup spolucestujucich (prestup sa vykonava len pre jedneho cestujuceho naraz). Kazdy spolucestujuci je zapisany na samostatnom ticketIndexe. __Testovane situacie__: vykonava sa prestup na spoj 3/2, na karte je listok majitela a dvoch spolucestujucich zo spoja 3/1 (plny a polovicny) - Majitel ani spolucestujuci este nevykonali prestup - vykona sa len prestup majitela. - Majitel uz vykonal prestup, predavame plnu tarifu - vykona sa len prestup plneho spolucestujuceho. - Majitel uz vykonal prestup, predavame polovicnu tarifu - vykona sa len prestup polovicneho spolucestujuceho. - Majitel a plny spolucestujuci uz vykonali prestup, predavame polovicnu tarifu - vykona sa prestup len polovicneho spolucestujuceho. - Majitel a polovicny spolucestujuci uz vykonali prestup, predavame plnu tarifu - vykona sa prestup len plneho spolucestujuceho. - Vsetci uz vykonali prestup, predavame plnu tarifu - preda sa listok pre dalsieho spolucestujuceho. \\ \\ * **TestCardOneWayTicketAcceptance** **!!! Pozor, ak testy z modulu TestCardOneWayTicketAcceptance neprechadzaju, treba brat na zretel fakt, ze casova akceptacia platneho listka je zavisla od casov na zastavkach podla cestovnych poriadkov**\\ **Aktulne je nastavena linka 102414, spoj 1, cca 00:00 - 6:50 test neprechadza** * CheckOWTWithValidTimeValidityAcceptance: * na OWT listku sa nastavi casova platnost aktualny cas + cas na prestup 30 minut, listok musi byt akceptovany (cena za 0) * CheckOWTWithInvalidTimeValidityAcceptance: * listok na karte ma nastavenu platnost davno v minulosti (prepadnuta casova platnost), musi sa vydat novy listok * CheckOWTWithTariffTicketNumberFromNonactualTariffGroupAcceptance: * na OWT listku sa nastavi casova platnost aktualny cas + cas na prestup 30 minut * vydavame listok s cislom tarifneho listka, kt. sa nenachadza na akt. tarifnej skupine - platny jednorazovy casovy listok sa nema akceptovat a musi sa predat listok novy * CheckOWTWithValidFellowTravellerTicketAcceptance: * vydavame listok s jednorazovym casovym listkom pre majitela karty + spolucestujuceho s platnou casovou platnostou na karte - oba existujuce listky su akceptovane, nepredaju sa nove \\ \\ * **TestCardDiscountTariffDiscountCheck** Testy na kontrolu typ karty - typ zlavy a prenosnu penazenku *Test case-y: * vydaj listka, kde typ zlavy ID na tarife je rovnaky ako typ zlavy na karte, vydaj ma prebehnut bez chyby * vydaj listka, kde typ zlavy ID na tarife NIE je rovnaky ako typ zlavy na karte, vydaj ma skoncit EIssueLogicDefines::ErrorIssueOnPortableWallet * vydaj listka, kde typ zlavy ID na tarife NIE je rovnaky ako typ zlavy na karte, ale je zapnuta prenosna penazenka, vydaj ma prebehnut bez chyby * vydaj listka, kde typ zlavy ID na tarife NIE je rovnaky ako typ zlavy na karte, je zapnuta prenosna penazenka a vyzadovane potvrdenie pri vydaji na prenosnu penazenku, vydaj skonci chybou EIssueLogicDefines::ErrorInvalidTariffToCard, nasledne sa nastavi flag pre potvrdenie vydaja na prenosnu penazenku, nasledny vydaj ma prebehnut bez chyby * vydaj listka, kde typ zlavy ID na tarife je rovnaky ako typ zlavy na karte, na karte je platny casovy listok na zonu 255, cestujeme cez zony 255 a 245, na zonu 255 sa uplatni jazda na PCL, na zonu 245 sa vyda JL, kontroluje sa pocet issuet ticket segmentov a hodnota pocet platenych zon * vydaj listka, kde typ zlavy ID na tarife NIE je rovnaky ako typ zlavy na karte, avsak kontrola zhody typu karty a typu tarify je vypnuta, vydaj ma prebehnut bez chyby \\ \\ * **TestCardCapping** Vydavame listok na spoj 2/1 (aj ked je capping primarne urceny pre MHD, je ho mozne nastavit na akukolvek tarifu - linka 2 je PAD), z prvej (index 0) na druhu zastavku (index 1), plna cena podla typu kartu je 59 centov Test case-y vychadzaju z testovacich scenarov z RM tasku 11001 (https://redmine.transdata.sk/issues/11001) * CheckCappingFunctionality (zastropovanie vysky cestovneho): * 1A - capping vypnuty nastavenim TS ID 201 * polozky tykajuce sa cappingu na karte NESMU byt zmenene * 1B - capping vypnuty na tarife nastavenim ID 108 * polozky tykajuce sa cappingu na karte NESMU byt zmenene * 2A - capping zapnuty * polozky tykajuce sa cappingu na karte MUSIA byt zmenene * 3A - capping zapnuty, WeeklyCappingDate a DailyCappingDate nastavene na dnesny datum * DailyCappingSum a WeeklyCappingSum musi byt inkrementovane * 4A - capping zapnuty, dosiahnutie denneho limitu pri predaji listka * DailyCappingSum nadobudne hodnotu denneho limitu, WeeklyCappingDate a DailyCappingDate musia ostat nezmenene * 5A - capping zapnuty, denny limit dosiahnuty uz pred predajom listka * WeeklyCappingSum, DailyCappingSum, WeeklyCappingDate a DailyCappingDate musia ostat nezmenene * 6A - capping zapnuty, denny limit dosiahnuty uz pred predajom listka, DailyCappingDate nastaveny na minulost * DailyCappingSum nastaveny na cenu listka, WeeklyCappingSum inkrementovany o cenu listka, WeeklyCappingDate musi byt BEZ zmeny a DailyCappingDate MUSI byt zmeneny * 6B - capping zapnuty, DailyCappingSum je pod dennym limitom, DailyCappingDate nastaveny na minulost * DailyCappingSum a WeeklyCappingSum inkrementovane o cenu listka, WeeklyCappingDate musi byt BEZ zmeny a DailyCappingDate MUSI byt zmeneny * 7A - capping zapnuty, dosiahnutie tyzdenneho limitu pri predaji listka * WeeklyCappingSum nadobudne hodnotu tyzdenneho limitu, DailyCappingSum inkrementovany o cenu listka, WeeklyCappingDate a DailyCappingDate musia ostat nezmenene * 8A - capping zapnuty, tyzdenny limit dosiahnuty uz pred predajom listka, DailyCappingDate nastaveny na minulost * WeeklyCappingSum, DailyCappingSum, WeeklyCappingDate a DailyCappingDate musia ostat nezmenene * 9A - capping zapnuty, tyzdenny limit dosiahnuty uz pred predajom listka, datum po WeeklyCappingDate, DailyCappingDate * DailyCappingSum a WeeklyCappingSum nastavene na cenu listka, WeeklyCappingDate a DailyCappingDate nastavene na dnesny datum * 9B - capping zapnuty, WeeklyCappingSum pod hodnotou limitu, datum po WeeklyCappingDate, DailyCappingDate * DailyCappingSum a WeeklyCappingSum nastavene na cenu listka, WeeklyCappingDate a DailyCappingDate nastavene na dnesny datum * 10A - capping zapnuty, vydava sa dokupovany listok (pre spolucestujuceho), DailyCappingSum a WeeklyCappingSum nastavene pod hodnotami limitov * polozky tykajuce sa cappingu na karte NESMU byt zmenene (capping sa uplatnuje iba pri majitelovi) * 11A - tento test neexistuje, mal to byt test na statistiku, no statistiku kontroluju vsetky testy * 12A - capping zapnuty, listok zakupujeme u ineho prepravcu * polozky tykajuce sa cappingu na karte MUSIA byt zmenene ==== Cash test suites ==== * **TestCashCombinedTicket** * BIDCases: * Dokument popisuju priklady: DokumentaciaTD/VyvojovyUsek/VyvojSW/TransFare/IntegrationTesting/BID cases/Príklady výpočtu cien.pdf * vydaj listka * pocet vydanych listkov (ocakava sa jeden) * pocet segmentov vydaneho listka vs konfig (IssuedTicketSegmentsSize) * cena listka vs konfig (TicketPrice) * riadok cennika vydaneho listka vs konfig (PriceListRowNumber) \\ \\ * **TestCashDestinationZone** * Check: * vydaj listka (pred vydajom sa nastavia additional zones, destination zone (DestinationZone) a flag UsePriceListRowWithLongestTimeValidity. Additional zones sa pocitaju z destination zone a inych parametrov konfigu (TripOrderCheckinBusStop, TripOrderCheckoutBusStop, TariffTicketNumber)). * pocet vydanych listkov (ocakava sa jeden) * celkova cena vydaneho listka vs konfig (TicketPrice) * pocet segmentov vydaneho listka vs konfig (IssuedTicketSegmentsSize) \\ \\ * **TestCashManualIssue** * CheckManualIssue: * vydaj listka \\ \\ * **TestCashPrint** * CheckCashPrint: * priprava (loadnutie) templatov pre tlac * vydaj listka * printModule - priprava cisla listka, tlac listka, doplnenie reklam na listok (ak je povolene v AdvertisementEnabled) \\ \\ * **TestCashRemoveOneBusStopSectionOnBorderOfZonation** * FirstSectionIsOneBusStopSectionOnBorderOfZonation: * FirstSectionIsNotOneBusStopSectionOnBorderOfZonation: \\ \\ * **TestCashStatistic** * CheckStatistic: * vydaj listka * CheckNumberOfKilometersForNonCombinedTicket: (nastaveny nekombinovany listok) * vydaj listka * pocet KM po spocitani KM vsetkych listkov vs konfig (DistanceKM) * CheckStatisticVAT: * vydaj listka * pre kazdy vydany listok vypocitana cena DPH z ceny hromadneho listka a akt. tarify vs hodnota DPH na listku \\ \\ * **TestCashStorno** * CheckCashStorno: * vydaj listka * storno listka * zapis statistiky \\ \\ * **TestDeviationPrices** * CheckDeviationPrices: * vydaj listka s odchylkovou cenou * kontola poctu vydanych listkov (ma byt jeden) * kontrola ceny vs konfig (TicketPrice) \\ \\ * **TestForeignTripStorno** * CheckStornoAndPriceOnForeignTrip: * vydaj listka * storno listka * celkova cena listka po vydani listka a celkova cena stornovaneho listka po storne sa musia rovnat \\ \\ * **TestStatisticContinuousTrip** * CheckStatisticContinuousTrip: (nastaveny nekombinovany listok) * vydaj listka * kontrola PAL listkov - vystupna zastavka z predosleho spoja musi byt nastupna zastavka navazneho spoja * cislo linky a spoja na listku z pripojneho spoja vs konfig (ContinuousLineNumber a ContinuousTripNumber) * CheckStatisticForCombinedTicketOnContinuousTrip: * to iste ako CheckStatisticContinuousTrip len je pouzity kombinovany listok * CheckStatisticVATContinuousTrip: * vydaj listka * ak je vydany listok na pokracujuci spoj, kontroluje sa DPH vypocitana z ceny listka a akt. tarify vs DPH zapisana na listku \\ \\ * **TestStatisticForeignTrip** * CheckStatisticForeignTrip: * vydaj listka * kontrola, ci maju vsetky listky nastaveny priznak, ze su bez DPH (ECestovnyListok::prBezDPH) * hodnota DPH pre kazdy listok nesmie byt zaporna * CheckForeignTripVAT: * ??? \\ \\ * **TestUnpaidExpense** * CheckUnpaidExpense: * vydaj listka * cena listka z EPostIssueOutputData vs konfig (UnpaidExpense) \\ \\ ==== Presale card test suites ==== * **TestCardOneWayTicketPresale** * Check: * inicializacia card facade + vydaj listka + zapis statistiky