Giter VIP home page Giter VIP logo

darts's People

Contributors

demistedehouder avatar hiddedv9 avatar janvdtuin avatar jorden-b avatar kbloowit avatar kbloowit1 avatar maartenvdmeulen avatar skiephole avatar snellejelle99 avatar swenvdwijngaard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

darts's Issues

Het starten van een nieuwe match maakt altijd nieuwe Player objecten aan.

Omschrijf de bug
Er worden altijd nieuwe spelers aangemaakt en opgeslagen in de database wanneer een nieuwe match gestart wordt.

To Reproduce

  1. Ga naar het 'Start match' scherm.
  2. Maak een nieuwe match aan met de namen "Bob" en "Bib".
  3. Start de applicatie opnieuw op en herhaal stap 1 & 2.
  4. Lees de database tabel PLAYERS uit en check dat er dubbele entries zijn opgeslagen.

Verwacht gedrag
Wanneer er een match gestart wordt met een naam die al voor komt in de database moet het spel de al bestaande database entry inladen.

ScoreInputView Previous Turn & Stop Match back-end implementaties.

Omschrijving

Huidige werking:
De knoppen throwen nu een NotImplementedException als je er op klikt.

Verwachte werking:
Stop Match Knop

  • Main menu laten zien. Match wordt al automatisch opgeslagen na elke beurt.

Previous Turn Knop

  • Scores terugzetten naar hoe deze was voor de als laatst ingevoerde beurt.
  • Laatst ingevoerde beurt verwijderen uit de Leg.
  • Als huidige leg maar 1 beurt bevat moet de vorige leg weer gestart worden en de laatste beurt van die leg opnieuw ingevuld.
  • Idem maar dan voor set.

Risico's

Middelmatig risico, bevat databaseoperaties.


Tests

Test 1 "Applicatie afsluiten" :

Voorbereiding:

  • Start het programma op.
  • Start een match.

Test

  • Klik op stop match.
    Geslaagd als :
  • Het main menu getoond wordt.

Test 2 "Vorige beurt:

Voorbereiding:

  • Start het programma op.
  • Start een match.
  • Doe een beurt.

Test

  • Druk op previous turn.

Geslaagd als :
De scores teruggezet zijn naar hoe deze voor de geworpen beurt was.


Database management

Omschrijving

Huidige werking:
Op dit moment bevat de software nog geen methode om te interface met een database.

Verwachte werking:
Het doel is om een database manager te maken.
Deze manager moet de volgende taken vervullen:

  • De database file maken als deze nog niet bestaat.
  • De tabels initialiseren als deze nog niet bestaan.
  • De communicatie met de database faciliteren.
  • Een parent object class implementeren waarvan andere database objecten kunnen overerven.
  • Een parent object manager class implementeren welke een specifieke table voor een object managed. Hier kunnen nieuwe object managers van overerven.

Risico's
Hoog risico: Complexe feature, waarschijnlijk veel overerving en extra SQL om op te letten.


Tests

TESTS VOLGEN


Hoofdscherm applicatie

Omschrijving

Huidige werking:

Er is momenteel geen hoofdscherm in de applicatie aanwezig waar naar het start match scherm / speler overzicht / match overzicht genavigeerd kan worden.

Verwachte werking:

Het eerste scherm wat gezien wordt wanneer de applicatie opgestart wordt is het hoofdscherm van de applicatie waarop drie knoppen weergegeven worden.

  • Knop naar "Start match" scherm
  • Knop naar "Match overzicht" scherm
  • Knop naar "Speler overzicht" scherm

Risico's

Laag risico: front-end aanpassingen, code niet complex


Tests

Test 1 "Hoofdscherm opstarten" :

Voorbereiding:

  • Start het programma op.

Test

  • Check of het juiste scherm wordt weergegeven.

Geslaagd als :
Het programma is opgestart als het hoofdscherm met de drie knoppen:

  • Knop naar "Start match" scherm
  • Knop naar "Match overzicht" scherm
  • Knop naar "Speler overzicht" scherm

issue bestaat alleen omdat ik het template in het portfolio wil plakken

Geef je issue een passende goed omschrijvende naam.
Geef je issue een label en een project

Omschrijving

Huidige werking:

Zet hier de huidige werking/situatie neer.

Verwachte werking:

Zet hier de verwachte werking neer.

Risico's

Zet hier het risiconiveau van de aanpassing neer.
Voorbeeld: 'Hoog risico, Complexe aanpassing'
Of: 'Laag risico, UI aanpassing.'


Tests

Zet hier neer hoe de feature getest moet worden. Dit kan dan makkelijk gecopy/ paste worden naar een pull request.
Tests zijn niet altijd al te definieren voordat je aan de issue gewerkt hebt, dit kun je ook later middels een edit toevoegen. Zet dan neer: "Testcases volgen".

Voorbeelden:

Test 1 "Applicatie afsluiten" :

Voorbereiding:

  • Start het programma op.

Test

  • Klik op het kruisje rechtsboven in het scherm.
  • Controleer of het programma is afgesloten,

Geslaagd als :
Het programma is afgesloten.


Test 2 "Applicatie minimaliseren" :

Voorbereiding:

  • Start het programma op.

Test

  • Klik op het minnetje rechtsboven in het scherm.
  • Controleer of het programma is geminimaliseerd,

Geslaagd als :
Het programma is geminimaliseerd.


Statistieken gespeelde wedstrijden per speler

Huidge werking:
Op het moment wordt er nog geen wedstrijd informatie over een speler vertoond.

Verwachte werking:
Data over de wedstrijden die een speler heeft gespeeld wordt opgevraagd en weergegeven van uit de database.
Het gaat hierbij minimaal om de volgende data:

  • Tegenstander
  • Wedstrijd informatie (te spelen sets/legs)
  • Uitslag in sets (bijv. 4-3)

Risico's

Laag risico, data opvragen.


Tests

Tests 1 "Opgevraagde statistieken worden weergegeven":

Voorbereiding:
▪ Start het programma op.

Test:

▪ Open het spelers overzicht
▪ Selecteer een speler
▪ Selecteer een wedstrijd
▪ Controleer of het programma de wedstrijd gegevens van een speler correct weergeeft.

Geslaagd als:
Het programma de juiste wedstrijd informatie van een speler toont.

RelayCommand null reference exception wanneer er geen CanExecute mee wordt gegeven

Omschrijf de bug

Als een RelayCommand geen CanExecute functie heeft gooit het een null reference exception.

To Reproduce

  1. Maak button aan die Bind aan ICommand
  2. Zet de ICommand property als een nieuw RelayCommand
  3. Geef RelayCommand geen CanExecute functie mee
  4. Run het programma
  5. Aanschouw de exception

Verwacht gedrag
RelayCommands zouden true moeten returnen zonder CanExecute functie

Screenshots en Logs
image

Extra info
Je kan om de exception heen werken door wel een CanExecute functie aan een RelayCommand mee te geven

Linken van front-end #9 en back-end #14

Omschrijving

Huidige werking:

Op dit moment is de samenwerking tussen back-end en front-end voor het invoeren van een worp nog niet bestaand. Ze draaien nu nog los van elkaar. Om het scherm te laten werken moet er data uitwisseling plaatsvinden tussen de twee.

Verwachte werking:

  • Scores van de drie worpen en hun ScoreTypes (1 beurt) doorlinken met back-end van issue #14
  • Checken of beurt tot win van leg/set/match heeft geleid of dat de beurt ongeldig was en de score teruggezet moet worden.
  • LegScore na het aftrekken van de worp weer tonen op het scherm.

Risico's
Middelmatig risico, bevat scoreberekeningen.

Tests

To be written.

ScoreInputView Toetsenbord navigatie.

Omschrijving

Huidige werking:
De gebruiker kan met een combinatie van toetsenbord en muis het ScoreInputView scherm navigeren.

Verwachte werking:
De gebruiker kan alleen met het toetsenbord het ScoreInputView scherm navigeren. Om dit te kunnen realiseren moeten de volgende changes doorgevoerd worden:

  • Klikken op of tabben naar een textbox selecteerd de huidige value in de textbox.
  • De 'Enter' knop submits de Turn.

Risico's
Laag risico, UI aanpassing.


Tests

Test 1 "Selecteer Textbox worp 1 met muis" :

Voorbereiding:

  • Start het programma op.
  • Klik op de "Open start match screen" knop.
  • Start een nieuwe match.

Test

  • Klik op de "Worp 1" textbox.

Geslaagd als :
De waardes in de textbox geselecteerd zijn.


Test 2 "Selecteer Textbox worp 2 met muis" :

Voorbereiding:

  • Ga verder vanaf Test 1.

Test

  • Klik op de "Worp 2" textbox.

Geslaagd als :
De waardes in de textbox geselecteerd zijn.


Test 3 "Selecteer Textbox worp 3 met muis" :

Voorbereiding:

  • Ga verder vanaf Test 2.

Test

  • Klik op de "Worp 3" textbox.

Geslaagd als :
De waardes in de textbox geselecteerd zijn.


Test 4 "Selecteer Textbox worp 1 met tab" :

Voorbereiding:

  • Start het programma op.
  • Klik op de "Open start match screen" knop.
  • Start een nieuwe match.

Test

  • Tab naar de "Worp 1" textbox.

Geslaagd als :
De waardes in de textbox geselecteerd zijn.


Test 5 "Selecteer Textbox worp 2 met tab" :

Voorbereiding:

  • Ga verder vanaf Test 4.

Test

  • Tab naar de "Worp 2" textbox.

Geslaagd als :
De waardes in de textbox geselecteerd zijn.


Test 6 "Selecteer Textbox worp 3 met tab" :

Voorbereiding:

  • Ga verder vanaf Test 5.

Test

  • Tab naar de "Worp 3" textbox.

Geslaagd als :
De waardes in de textbox geselecteerd zijn.


Test 7 "Positive Change Turn met Enter" :

Voorbereiding:

  • Start het programma op.
  • Klik op de "Open start match screen" knop.
  • Start een nieuwe match.

Test

  • Vul de waardes in van een valide Turn ('Next Turn' knop klikbaar)
  • Klik op de 'Enter' toets op het toetsenbord.

Geslaagd als :
Het spel de beurt afsluit en naar de volgende beurt navigeert.


Test 8 "Negative Change Turn met Enter" :

Voorbereiding:

  • Start het programma op.
  • Klik op de "Open start match screen" knop.
  • Start een nieuwe match.

Test

  • Vul de waardes in van een invalide Turn ('Next Turn' knop niet klikbaar)
  • Klik op de 'Enter' toets op het toetsenbord.

Geslaagd als :
Het spel de beurt niet afsluit en niet naar de volgende beurt navigeert.

Database integratie op start match scherm

Omschrijving

Huidige werking:

Er wordt momenteel geen data in de database gezet wanneer op de "Start match" knop wordt gedrukt in het start match scherm.

Verwachte werking:

Als de gebruiker op de "Start match" knop drukt in het start match scherm moet de informatie die is ingevuld in de textboxes in de database gezet worden. Textboxes met:

  • Naam player 1
  • Naam player 2
  • Aantal legs in de match
  • Aantal sets in de match
  • Aantal punten per set

Risico's

Hoog risico: database implementatie, data moet juist opgeslagen worden in database.


Tests

Test cases volgen

Integratie van keuze uitworpscore.

Omschrijving

Huidige werking:
Op het moment is de uitworpscore altijd 501.

Verwachte werking:
Als je in het start match scherm voor een points per leg van 301 kiest moeten de legs in de match een legScore van 301 krijgen in plaats van de standaard 501.

Risico's
Laag risico, simpele aanpassing.


Tests

Test 1 "Start match met 501 required leg score" :

Voorbereiding:

  • Start het programma op.
  • Klik op knop "Open start match scherm".
  • Vul "Bob" in bij de naam van player 1.
  • Vul "Bib" in bij de naam van player 2.
  • Vul "1" in bij de sets en legs.

Test

  • Klik op de "Start match" knop.

Geslaagd als :
De "Score" bij beide spelers 501 aangeeft.


Test 2 "Start match met 301 required leg score" :

Voorbereiding:

  • Start het programma op.
  • Klik op knop "Open start match scherm".
  • Vul "Bob" in bij de naam van player 1.
  • Vul "Bib" in bij de naam van player 2.
  • Vul "1" in bij de sets en legs.
  • Klik de 301 optie aan bij de amount of points per leg.

Test

  • Klik op de "Start match" knop.

Geslaagd als :
De "Score" bij beide spelers 301 aangeeft.


Integratie met eind van de match button klik en match detail scherm

Omschrijving

Huidige werking:

Momenteel gebeurt er in de applicatie niks als de match afgerond is.

Verwachte werking:

Als de match afgerond is met een winnaar moet de gebruiker naar het match detail scherm genavigeerd worden zodat hij gelijk het match overzicht kan zien. Hierbij zijn wat zaken van belang

  • Er moet een win conditie zijn
  • De de match moet doorgestuurd worden naar de match detail pagina
  • De gehele match moet weergegeven worden in de match detail pagina

Risico's

Hoog risico: database implementatie


Tests

Test 1 "Match winnen" :

Voorbereiding:

  • Start het programma op.
  • Maak een match aan

Test

  • Speel de match tot iemand wint.
  • Controleer of het match detail scherm opent en de juiste waarden worden weergegeven.

Geslaagd als :
Het match detail scherm opent en de juiste waarden op het scherm staan.


Overzicht van spelers die gespeeld hebben

Omschrijving

Huidige werking:

Het systeem houd niet bij welke spelers gespeeld hebben.

Verwachte werking:

Het systeem houd bij welke spelers gespeeld hebben en toont deze spelers in een overzicht.

De volgende dingen moeten getoond worden:

  • lijst met spelers
  • naam van spelers
  • searchbar

Risico's

Laag risico, UI aanpassing.
Het kan voorkomen dat er nog geen wedstrijden gespeeld zijn.


Tests

Test 1 "Verschijnt nieuwe spelers" :

Voorbereiding:

  • Start het programma op.

Test

  • Start een match met een nieuwe spelers.
  • Check of de speler na de match in het overzicht van spelers verschijnt.

Geslaagd als :
Het programma nieuwe spelers na het aflopen van een wedstrijd weergeeft in het spelers overzicht.


Test 2 "Spelers niet dubbel" :

Voorbereiding:

  • Start het programma op.

Test

  • Speel een match met een nieuwe spelers.
  • Speel nog een match met dezelfde spelers.
  • Check of de spelers na de match niet dubbel in het overzicht van spelers verschijnt.

Geslaagd als :
Het programma is geminimaliseerd.


Test 3 "Searchbar voor spelers" :

Voorbereiding:

  • Start het programma op.

Test

  • Ga naar spelers overzicht met meerde gebruikers in het systeem
  • Check of seachbar invloed heeft op weergave spelers.

Geslaagd als :
Het programma kan filter gebaseerd op ingevulde naam.


User story:
Schermen 2
Als gebruiker wil ik een overzicht hebben van alle spelers die eerder een match gespeeld
hebben.

Verwerken van ingevoerde score voor worp

Verwerken van de ingevoerde score in het scherm van issue #9

Omschrijving

Huidige werking:

Het is momenteel nog niet mogelijk om de worpen van spelers te verwerken.

Verwachte werking:

In het scherm van #9 voert de gebruiker de score van zijn worp in. Als deze ingevoerde score geverifieerd is (Aantal niet hoger dan 20, niet lager dan 0, met daarbij of het om een single, double, triple of een misser gaat) dan moet de geworpen score afgetrokken worden van de totale score van deze speler voor de huidige leg. (User story Worp 2)

  • Verifiëren worp. (Worp <= 20, Worp >= 0, Single/Double/Triple aangegeven)
  • Aftrekken worp van score van werper.

Nadat het geworpen aantal is afgetrokken van de score van de werper in de huidige leg moet er gecheckt worden of deze worp heeft geleid tot een winnaar. Om te winnen moet de score van de speler na de worp precies op 0 uitkomen. Daarnaast geldt dat de laatste worp, de worp die er dus voor zorgt dat de score op 0 uitkomt, een double moet zijn. Is dit niet het geval (score komt uit op -15 of de laatste worp was geen double) dan moet de score teruggezet worden naar hoe deze voor de beurt (of alleen die worp?) was en gaat de beurt naar de volgende speler.

(Bijvoorbeeld: Speler A is aan de beurt. Speler A heeft nog 100 punten over. Speler A gooit zijn eerste pijl in de T20, dat staat gelijk aan 60 punten. Speler A heeft dan nog 40 punten over. Dit betekent dat Speler A zijn volgende pijl in de D20 moet gooien om deze leg te winnen. Is dit niet het geval, dan wordt zijn score teruggezet naar hoe deze voor de beurt was en is de andere speler aan de beurt.) (User story Worp 4/5/6)

  • Checken of de worp kan leiden tot een winnaar. (Score == 0)
  • Checken of de "winnende" worp een Double was. (Throw.ScoreType == ScoreType.Double)
  • Als niet aan de bovenstaande voorwaarden is voldaan moet de score van de speler weer teruggezet worden naar hoe deze voor zijn beurt was en mag de andere speler beginnen met zijn beurt.
  • Als de win geldig is wordt het aantal gewonnen legs voor de speler verhoogd en wordt, als het winnen van de leg niet tot het winnen van de match of set heeft geleid, een nieuwe leg en/of set gestart.

Risico's
Hoog risico, Er is een hoge kans op het onstaan van bugs. Ook kunnen er misverstanden onstaan m.b.t. de dartregels.


Tests

To be written.

Verbind spelers overview met mainmenu

Omschrijving

Huidige werking:

Op het moment wordt main menu omgebouwd naar MVVM.

Verwachte werking:

  1. Er wordt verwacht dat er van main menu naar main menu naar spelers overview genavigeerd kan worden.

  2. Er wordt verwacht dat er van main menu naar spelers overview terug naar main menu genavigeerd kan worden.

    PlayersOverviewViewModel.cs, line 106:
    private void BackButtonClick()
    {
    //TODO: Go to main menu
    }

Risico's

Laag risico, UI WPF Views linken.


Tests

Test 1 "Van main menu naar spelers overview" :

Voorbereiding:

  • Start het programma op.

Test

  • Klik in main menu op spelers overview
  • Controleer of het programma spelers overview opent,

Geslaagd als :
Het programma opent spelers overview.


Test 2 "Van spelers overview terug naar main menu" :

Voorbereiding:

  • Start het programma op.

Test

  • Klik in main menu op spelers overview.
  • Klik in spelers overview op de terug naar main menu knop.
  • Controleer of het programma main menu opent,

Geslaagd als :
Het programma terug navigeerd van spelers overview naar main menu.


[DELETED] Interface om view te updaten bij viewmodel propeties veranderingen

Omschrijving

Huidige werking:

Bij modelview propeties veranderingen wordt de bijbehorende view niet geupdate.

Verwachte werking:

Door introductie van INotifyPropertyChanged op viewmodel class zal view geupdate moeten worden bij veranderingen aan gebinde viewmodel propeties.

Risico's

Laag risico, niewe BaseViewModel classe toevoegen met INotifyPropertyChanged.

based on this problem: https://stackoverflow.com/questions/25522218/wpf-binding-not-updating-the-view


Tests

NVT

PlayersOverview en PlayerStaticticOverview data opvragen

Note: dit is twee issues in een doordat in de branch ook PlayerStaticticOverview data opvragen geimplemeteerd is.

Omschrijving

Huidige werking:

Op het moment wordt nog geen spelers informatie en gepeelde matches van spelers opgehaald.

Verwachte werking:

De spelers voor het overview worden opgevraagd en weergeven van uit database.
In de constructors van viewmodels moet de data opgevraagd worden.
Daarnaast zullen de unit test upgedate moeten worden.

Risico's

Laag risico, data opvragen.


Tests

Test 1 "Opgevraagde spelers en gespeelde matches worden weergeven":

Voorbereiding:

  • Start het programma op.
  • Speel een match.

Test

  • Open het spelers overview.
  • Controleer of het programma de spelers in het spelers overview laat zien.
  • Open de speler statistieken van de speler.
  • Controleer dat de gespeeld match in het overzicht te zien is.

Geslaagd als :
Het programma weergeeft de opgeslagen spelers en gespeelde matches van de speler weergeeft.

Gespeelde matches overzicht

Omschrijving

Huidige werking:

Het systeem heeft geen overzicht van gespeelde matches.

Verwachte werking:

Het tonen van een overzicht van gespeelde matches.
Het weergeven van eindscores van gespeelde matches.

De volgende dingen moeten getoond worden:

  • gespeelde matches
  • score van match
  • spelers?

Risico's

Laag risico, UI aanpassing.


Tests

Test 1 "Applicatie afsluiten" :

Voorbereiding:

  • Start het programma op.
  • Speel een match

Test

  • Kan er genavigeerd worden naar het overzicht scherm
  • Controleer of de gespeelde match in het overzicht aanwezig is met de correcte score.

Geslaagd als :
Het programma is geslaagd als het programma gespeelde wedstrijden en bijbehoren scores kan tonen in een overzicht.


User story:
Schermen 1
Als gebruiker wil ik een overzicht hebben in de gespeelde matches, zodat ik de scores van
eerder gespeelde matches kan bekijken.

Verantwoordingsdocument schrijven

Omschrijving

Om de keuzes die gemaakt zijn tijdens dit project vast te leggen moet er een verantwoordingsdocument geschreven worden.
Hierdoor is het voor de docent duidelijk waarom bepaalde keuzes gemaakt zijn en kan er in de toekomst op terug gekeken worden.

Huidige werking:
Op dit moment is er nog geen verantwoordingsdocument. De keuzes worden besproken in de standups en uitgevoerd, maar het wordt nog niet op 1 centrale plek vastgelegd.

Verwachte werking:
Er moet een document gemaakt worden waarin ten minste de volgende aspecten toegelicht of aangetoond worden:

  • Het gebruik van Continuous Integration
  • Het gebruik van geautomatiseerd testen
  • Het gebruik van versie controle software/platform
  • De keuze voor de programmeertaal en platform

De volgende processen moeten beschreven worden:

  • Issue management
  • Change management
  • Requirements engineering; tijdens de lessen zijn de requirements verder toegelicht.

Om de software kwaliteit te beschrijven moet ISO 25010 gebruikt worden.

Risico's
Laag, geen invloed op de gemaakte code.
Het document wordt waar nodig aangepast tijdens het ontwikkelproces en is pas af wanneer het project voltooid is.


Tests

n.v.t.

Wedstrijd detail pagina

Omschrijving

Huidige werking:

Er is nog geen scherm waarop de scores van een gegeven wedstrijd te zien is.

Verwachte werking:
Het scherm moet de namen van de spelers tonen, hun score per beurt, het aantal gewonnen legs en sets en de winnaar van het spel.

  • Namen spelers
  • Score per beurt
  • Aantal Gewonnen Legs (per set)
  • Gewonnen Sets
  • Eind Winnaar

Risico's

Laag, Alleen UI implementatie


Tests

Test 1 "Overzicht bekijken" :

Voorbereiding:

  • Start het programma op.

Test

  • Klik op het hoofdmenu naar "Open match overview screen"
  • Klik een match aan in de lijst en klik op "Open Match"
  • Controleer of er in het overzicht de namen van spelers te zien zijn, score per beurt, aantal gewonnen legs per set, gewonnen sets en de eind winnaar.

Geslaagd als :
De opgenoemde onderdelen getoond worden



Eerste speler kiezen voor de eerste set

Omschrijving

Huidige werking:

Op dit moment wordt er nog geen eerste speler bepaald

Verwachte werking:

Verwachte werking is dat na het aanmaken van het spel er een willekeurige speler wordt gekozen die de eerste leg van een set begint. Wanneer er op het startscherm een speler wordt doorgegeven om te beginnen zal deze speler de beginnende speler zijn.
Risico's

Laag risico: Er wordt wel een speler gekozen die als eerste een set mag beginnen maar het is niet willekeurig


Tests

Test 1 "Willekeurige eerste speler wordt gekozen" :

Voorbereiding:

  • Start het programma op.
  • Selecteer de gewenste spelers, sets en legs.
  • Start het spel.

Test:

  • Bekijk of er een eerste speler wordt gekozen voor de eerste leg van een set.
  • Bekijk of elke keer als een spel begint een andere speler willekeurig als eerste mag beginnen.

Geslaagd als :
Slaagt als er een eerste speler willekeurig wordt gekozen voor elke eerste leg van elke set.

Test 2 "Niet willekeurige eerste speler wordt gekozen" :

Voorbereiding:

  • Start het programma op.
  • Selecteer de gewenste spelers, sets en legs.
  • Selecteer de speler die moet beginnen.
  • Start het spel.

Test:

  • Bekijk of de correcte eerste speler wordt gekozen voor de eerste leg van een set.

Geslaagd als :
Slaagt als de correcte eerste speler wordt gekozen voor elke eerste leg van elke set.


Obsolete views weggooien

Omschrijving

Huidige werking:
In pull request #67 zijn de views overgezet naar usercontrols. Om merge errors te voorkomen zijn hier nieuwe files voor aangemaakt. De oude files zijn blijven bestaan

Verwachte werking:
De oude obsolete files uit de view map moeten uit de solution verwijdert worden.

Risico's
laag risico: obsolete files verwijderen.


Tests

Niet van toepassing.

Integratie start match scherm met score input scherm

Omschrijving

Huidige werking:
Momenteel is er geen mogelijkheid om bij het score input scherm te komen.

Verwachte werking:
Er kan genavigeerd worden van het start match scherm naar het score input scherm.
Hierbij zijn wat zaken van toepassing:

  • De namen van de spelers moeten meegestuurd worden van het start match scherm naar het score input scherm.
  • Welke speler de leg begint moet meegestuurd worden van het start match scherm naar het score input scherm.
  • De naam van de speler die aan de beurt is moet te zien zijn op het score input scherm.

Risico's

Middelmatig risico: UI aanpassing, verbinding met de database, verbinding met logica


Tests

Test 1 "Weergeven speler aan de beurt" :

Voorbereiding:

  • Start het programma op.
  • Navigeer naar het "Start match" scherm
  • Vul alle textboxes in
  • Selecteer bij "starting player" Player 1
  • Klik op "Start match"

Test

  • Controleer of de naam van speler 1 weer wordt gegeven

Geslaagd als :
De naam van speler 1 wordt weergegeven


Alleen oneven legs en sets in kunnen voeren in het start match scherm

Omschrijving

Huidige werking:
Momenteel kan een getal van 1 tot 99 ingevuld worden voor legs en sets in het start match scherm.

Verwachte werking:
De spelers moeten alleen een oneven getal in kunnen vullen voor legs en sets, zodat er bij elke match een winnaar is.

Risico's
Laag risico: aanpassing aan validatie

Change
Deze change heeft betrekking op het start match scherm (afgesloten issue #11)


Tests

Test 1 "Even aantal legs invoeren" :

Voorbereiding:

  • Start het programma op.
  • Navigeer vanaf het main menu naar het "Start match scherm"

Test

  • Vul bij legs een even getal in
  • Controleer of er een rode rand om de textbox van legs komt

Geslaagd als :
Er een rode rand komt om de textbox voor het invoeren van legs


Test 2 "Even aantal sets invoeren" :

Voorbereiding:

  • Start het programma op.
  • Navigeer vanaf het main menu naar het "Start match scherm"

Test

  • Vul bij sets een even getal in
  • Controleer of er een rode rand om de textbox van sets komt

Geslaagd als:
Er een rode rand komt om de textbox voor het invoeren van sets


Test 3 "Oneven aantal legs invoeren" :

Voorbereiding:

  • Start het programma op.
  • Navigeer vanaf het main menu naar het "Start match scherm"

Test

  • Vul bij legs een oneven getal in
  • Controleer of er geen rode rand om de textbox van legs verschijnt

Geslaagd als:
Er geen rode rand om de textbox van legs is verschenen


Test 4 "Oneven aantal sets invoeren" :

Voorbereiding:

  • Start het programma op.
  • Navigeer vanaf het main menu naar het "Start match scherm"

Test

  • Vul bij sets een even getal in
  • Controleer of er geen rode rand om de textbox van sets verschijnt

Geslaagd als :
Er geen rode rand om de textbox van sets is verschenen

Aanmaken Datastructuren

Omschrijving

Huidige werking:
Op het moment zijn er nog geen data klasses aanwezig

Verwachte werking:

Volgens het ontwerp zijn er 5 dataklasses nodig:
Class Diagram datamodel

Voor elke dataklasse zijn er om te beginnen Properties en een Constructor nodig.

  • Match Klasse
  • Set Klasse
  • Leg Klasse
  • Turn Klasse
  • Throw Klasse

Risico's

Laag risico, in dit stadium nog makkelijk aan te passen, design is al gemaakt.


Tests

Test 1 "Aanmaken Match Object" :

Voorbereiding:

  • Start het programma op.

Test

  • Roep de constructor van het Match Object aan met alle benodigde waardes.

Geslaagd als :
Het object wordt aangemaakt met de meegegeven waardes.


Test 2 "Aanmaken Set Object" :

Voorbereiding:

  • Start het programma op.

Test

  • Roep de constructor van het Set Object aan met alle benodigde waardes.

Geslaagd als :
Het object wordt aangemaakt met de meegegeven waarde.


Test 3 "Aanmaken Leg Object" :

Voorbereiding:

  • Start het programma op.

Test

  • Roep de constructor van het Leg Object aan met alle benodigde waardes.

Geslaagd als :
Het object wordt aangemaakt met de meegegeven waarde.


Test 4 "Aanmaken Turn Object" :

Voorbereiding:

  • Start het programma op.

Test

  • Roep de constructor van het Turn Object aan met alle benodigde waardes.

Geslaagd als :
Het object wordt aangemaakt met de meegegeven waarde.


Test 5 "Aanmaken Throw Object" :

Voorbereiding:

  • Start het programma op.

Test

  • Roep de constructor van het Throw Object aan met alle benodigde waardes.

Geslaagd als :
Het object wordt aangemaakt met de meegegeven waarde.


Readme Schrijven

Omschrijving

Om dit project wat beter te presenteren en het in de toekomst bij eventuele sollicitaties, etc te kunnen gebruiken is het handig dat de readme van nuttige informatie wordt voorzien.

Huidige werking:
Op dit moment bevat de file README.md vrij weinig informatie.

Verwachte werking:
De file README.md bevat nuttige informatie zoals:

  • Informatie over het programma.
  • Voor welke opleiding en vak.
  • Lijst met contributors.
  • Hoe dit programma te runnen is.
    ...

Risico's
Laag risico, documentatie aanpassing.


Tests

NVT

Refactor Scherm #9 beurt invoeren.

Omschrijving

Huidige werking:

Op het moment werkt het scherm met 1 worp per "submit". Dit is voor het verwerken in de back-end maar ook voor de speler zelf niet heel fijn. Het is op het moment ook niet mogelijk om te zien hoeveel sets en legs er al gespeeld zijn in de match. Dit moet ook toegevoegd worden. Als laatste moet er een knop komen die de match kan stoppen, dit bestaat momenteel ook nog niet.

Verwachte werking:

Score Invullen

  • 2 TextBoxes toevoegen, zodat je in 1 keer 1 beurt in kunt vullen en in de back-end in 1 keer het beurt object in kunt vullen.
  • 2 DropDowns toevoegen met ScoreTypes van de hierboven genoemde worpen.
  • Deze data doorspelen naar de back-end.
  • ScoreType Bull toevoegen.
  • Validatie aanpassen zodat deze niet meer checkt voor 0-60 maar voor 0-20 met bijbehorend ScoreType.

Weergeven Huidige Match Statistieken

  • Aantal gespeelde sets & legs weergeven op de front end.
  • Aantal gewonnen sets & legs per speler weergeven op de front end.
  • Huidige legscore per speler weergeven op de front end.
  • Weergeven wie momenteel aan de beurt is op front end.
  • Weergeven type wedstrijd (First to hoeveel legs/sets?).
  • Deze aantallen updaten vanuit de back end.
    Voorbeeld:
    overzicht

Stop Spel Knop

  • Knop toevoegen in front end om spel te stoppen.
  • Bijbehorende ButtonClick implementeren in back end.

Previous Turn Knop

  • Knop toevoegen in front end om spel te stoppen.
  • Bijbehorende ButtonClick implementeren in back end.

Risico's

Laag risico, UI aanpassing.

Testcases volgen.

Refactor voor main menu #27

Omschrijving

Huidige werking:

Momenteel bevat het main menu drie knoppen naar de volgende schermen:

  • Start match
  • Playeroverview
  • Matchoverview

Verwachte werking:

Naast de bovenstaande knoppen moeten de volgende zaken ook toegevoegd worden:

  • Een opties knop
  • Opties knop moet een nieuw scherm openen
  • Als optie moet daar een "Reset database" knop komen
  • Als "Reset database" wordt ingedrukt moet er een "Are you sure?" met een "OK" en "Cancel" messagebox komen

Integratie wordt gedaan in een andere issue

Risico's

Klein risico: UI toevoegingen


Tests

Test 1 "Opties knop opent nieuw scherm" :

Voorbereiding:

  • Start het programma op.

Test

  • Klik op de "Options" knop
  • Controleer of een nieuw scherm geopend wordt met daarin een knop "Reset database"

Geslaagd als :
Nieuw scherm geopend word met daarin een knop "Reset database"


Test 2 "Messagebox openen" :

Voorbereiding:

  • Start het programma op.
  • Klik op de "Options" knop

Test

  • Klik op de "Reset database" knop
  • Controleer of er een messagebox opent met "Are you sure?" en twee knoppen "OK" en "Cancel"

Geslaagd als :
De messagebox opent


Test 3 "Messagebox afsluiten" :

Voorbereiding:

  • Start het programma op.
  • Klik op de "Options" knop
  • Klik op de "Reset database" knop
  • Controleer of er een messagebox opent met "Are you sure?" en twee knoppen "OK" en "Cancel"

Test

  • Klik op "Cancel"
  • Controleer of de messagebox afsluit

Geslaagd als :
De messagebox afgesloten is


Test 4 "Reset database messagebox" :

Voorbereiding:

  • Start het programma op.
  • Klik op de "Options" knop
  • Klik op de "Reset database" knop
  • Controleer of er een messagebox opent met "Are you sure?" en twee knoppen "OK" en "Cancel"

Test

  • Klik op "OK"
  • Controleer of een tweede messagebox opent met "Data was deleted"

Geslaagd als :
De messagebox opent met de message


Start Match scherm front-end

Omschrijving

Huidige werking:

Op het moment is er geen mogelijkheid om namen van spelers en het aantal sets en legs in te vullen.

Verwachte werking:
Er wordt een scherm gemaakt met de volgende componenten:

  • Inputboxes voor de namen van de spelers.
  • Inputboxes voor het aantal legs en sets dat gespeeld gaat worden, die maximaal 2 cijfers accepteren.
  • Een submitknop voor het starten van de match met de ingevulde data.

Risico's

Laag risico, simpele UI implementatie.


Tests

Test 1 "Namen invullen"
Voorbereiding:

  • Start het scherm op.

Test:

  • Klik op de textbox voor het invullen van de namen.
  • Vul text in.

Geslaagd als:

  • De text zichtbaar is voor de gebruiker.

Test 2 "Sets invullen"
Voorbereiding:

  • Start het scherm op.

Test:

  • Klik op de textbox voor het invullen van het aantal sets.
  • Vul een getal in.

Geslaagd als:

  • Het getal zichtbaar is voor de gebruiker.

Test 3 "Sets textbox accepteert foutieve character input niet"

Voorbereiding:

  • Start het scherm op.

Test:

  • Klik op de textbox voor het invullen van het aantal sets.
  • Vul een iets anders dan een getal in.

Geslaagd als:

  • De characters niet worden geaccepteerd in de textbox.

Test 4 "Legs invullen"

Voorbereiding:

  • Start het scherm op.

Test:

  • Klik op de textbox voor het invullen van het aantal legs.
  • Vul een getal in.

Geslaagd als:

  • Het getal zichtbaar is voor de gebruiker.

Test 5 "Legs textbox accepteert foutieve character input niet"

Voorbereiding:

  • Start het scherm op.

Test:

  • Klik op de textbox voor het invullen van het aantal legs.
  • Vul een iets anders dan een getal in.

Geslaagd als:

  • De characters niet worden geaccepteerd in de textbox.

Interface om buttons aan viewmodels te linken

Omschrijving

Huidige werking:

Op dit moment is het erg irritant om buttons in een view aan functies in een viewmodel te linken.
Hiervoor moeten per button aparte commands gemaakt worden.

Verwachte werking:

Het doel is om een universele command klasse te maken welke gebruikt kan worden om makkelijk buttons aan een viemodel te linken.

Risico's
Laag risico, een nieuwe klasse definiëren.


Tests

NVT


Sets en Turn id's worden naar integer gecast.

Omschrijf de bug
De FieldCollection velden in de Getters van de id's in de Sets en Turn objecten worden naar een integer gecast. Deze moeten long integers zijn.

To Reproduce
Maak een Unit Test waarin een Set of Turn object wordt aangemaakt. Post de Set of Turn en Assert dat het uitlezen van het Id een casting exception gooit.

Verwacht gedrag
Het Id object wordt gecast naar een long integer en gooit geen exception is uit te lezen.

Geen database connectie bij eeste keer opstarten

Omschrijf de bug
Bij eerste keer opstarten komt er een error als je data probeert opvraagd van de database omdat ie nog niet bestaat.
Tweede keer opstarten werkt het wel, omdat de database er dan wel is.

To Reproduce

  1. Open programma
  2. Ga naar window waar database informatie opgevraagd wordt. (playersoverview)
  3. Error verschijnt

  1. Start programma opnieuw en voer zelfde proces nog een keer uit.
  2. Geen error verschijnt.

Verwacht gedrag
Geen error als het je eerste keer opstarten is.

Screenshots en Logs
afbeelding

Extra info
none

Omwisselen huidige speler aan beurt

Omschrijving

Huidige werking:

Infrastructuur voor selecteren van eerste speler per leg is niet bestaand.

Verwachte werking:
Wanneer een beurt gespeeld is, en de leg niet in die beurt is gewonnen, moet de beurt over gegeven worden aan de andere speler.

  • Verifiëren leg wel/niet gewonnen. (PlayerLegScore == 0)
  • Aanmaken nieuwe Turn met andere speler dan de vorige Turn.

Als door een beurt een leg gewonnen is dan moet er in de Set de PlayerLegWon score verhoogd worden en moet er een nieuwe Leg aangemaakt worden.

  • In de Set de score van de speler verhogen. (PlayerLegWon++)
  • Aanmaken nieuwe Leg met andere speler dan de vorige Leg.

Als door een beurt de Set gewonnen is dan moet er in de Match de PlayerSetWon score verhoogd worden en moet er een nieuwe Set aangemaakt worden.

  • In de Match de score van de speler verhogen. (PlayerSetWon++)
  • Aanmaken nieuwe Set met andere speler dan de vorige Set.

Als door een beurt de Match is gewonnen dan moet de WinningPlayer property de winnende speler bevatten.

  • In de Match de WinningPlayer setten. (PlayerSetWon == PlayerEnum.Player1 || PlayerEnum.Player2)

Risico's

Middelmatig risico: Implementatie van logica, kan snel een Bug geïntroduceerd worden.


Tests

Unit Tests voor correcte implementatie.

Refactor voor start match scherm #11

Omschrijving

Huidige werking:

Momenteel kunnen de volgende zaken ingevuld worden op het start match scherm

  • Naam speler 1
  • Naam speler 2
  • Beginnende speler
  • Aantal legs in match
  • Aantal sets in leg

Verwachte werking:

Naast de bovenstaande zaken moeten de volgende zaken nog toegevoegd worden

  • Keuze of de legs in een match beginnen met 501 of 301 punten

Risico's

Laag risico: UI aanpassing


Tests

Test 1 "Keuze maken" :

Voorbereiding:

  • Start het programma op.
  • Klik op de "Start match scherm" knop

Test

  • Controleer of de "501" checkbox is aangevinkt bij "Amount of points per leg"
  • Klik de "301" checkbox aan
  • Controleer of de "301" checkbox is aangevinkt bij "Amount of points per leg"
  • Controleer of de "501" checkbox niet meer is aangevinkt

Geslaagd als :
De "501" checkbox is aangevinkt en de andere checkbox aangevinkt kan worden


Playertype property uit player object halen

Omschrijving

Huidige werking:
Op dit moment zit er in het player object een property die aangeeft of het object player1 of player2 is.
We willen graag deze status bijhouden in het match object in plaats van in het player object omdat de speler neit hoeft te weten of ie speler 1 of 2 is.

Verwachte werking:
De property PlayerType wordt uit de Player class verwijdert.

Risico's
laag risico, simpele code nog niet heel uitgewerkt.


Tests

unit tests aanpassen voor object.
verder nvt.


Performance probleem in DB logic

Omschrijf de bug
Naarmate de collecties in de objecten groter worden neemt de posttijd toe.

To Reproduce

  1. Ga naar het score input scherm.
  2. Klik op Next turn.
  3. Herhaal 10 keer.
  4. Button blijft steeds langer grayed out.

Verwacht gedrag
Posttijd zou niet toe moeten nemen.

Functie om database te resetten

Omschrijving

Huidige werking:

Er is geen mogelijkheid om de database te resetten

Verwachte werking:

Er moet een optie in het systeem zijn waarmee de database gereset kan worden.

Risico's

Middelmatig risico: database implementatie


Tests

Test 1 "Database resetten" :

Voorbereiding:

  • Start het programma op.
  • Klik op de "Options" knop

Test

  • Klik op de "Reset" knop
  • Klik in de pop-up op "OK"
  • Controleer of de "Reset" knop niet klikbaar is.

Geslaagd als :
De database gereset is en de "Reset" knop niet klikbaar is


Template Issue

Geef je issue een passende goed omschrijvende naam.
Geef je issue een label en een project

Omschrijving

Huidige werking:

Zet hier de huidige werking/situatie neer.

Verwachte werking:

Zet hier de verwachte werking neer.

Risico's

Zet hier de eventuele risico's van deze aanpassing neer
Voorbeeld: 'Hoog risico, aanpassing kan er voor zorgen dat programma niet meer te starten is.'
Of: 'Laag risico, UI aanpassing.'


Tests

Zet hier neer hoe de feature getest moet worden. Dit kan dan makkelijk gecopy/ paste worden naar een pull request.
Tests zijn niet altijd al te definieren voordat je aan de issue gewerkt hebt, dit kun je ook later middels een edit toevoegen. Zet dan neer: "Testcases volgen".

Voorbeelden:

Test 1 "Applicatie afsluiten" :

Voorbereiding:

  • Start het programma op.

Test

  • Klik op het kruisje rechtsboven in het scherm.
  • Controleer of het programma is afgesloten,

Geslaagd als :
Het programma is afgesloten.


Test 2 "Applicatie minimaliseren" :

Voorbereiding:

  • Start het programma op.

Test

  • Klik op het minnetje rechtsboven in het scherm.
  • Controleer of het programma is geminimaliseerd,

Geslaagd als :
Het programma is geminimaliseerd.


Link spelers overview aan speler detail page

Omschrijving

Huidige werking:

Op het moment linkt bij het klikken op een speler in de spelers overview pagina niet naar een speler details scherm.
Er is nog geen speler details scherm.

Verwachte werking:

Als er op een speler in spelers overview geklikt wordt, wordt er genavigeerd naar de spelers detail pagina.

In de functie 'OpenPlayerDetailsViewClick' in de class 'PlayersOverviewViewModel' zal de code geplaats moeten worden op de gecommentde TODO.
Point naar de View(Model)class van player detail window.

PlayersOverviewViewModel.cs , line 116:
private void OpenPlayerDetailsViewClick()
{
//TODO: Create a new window for player detail information, with _selectedItem as argument #28
}

Risico's

Laag risico, window linken waar de code al klaar voor staat.


Tests

Test 1 "Speler details open uit Spelers overview" :

Voorbereiding:

  • Start het programma op.

Test

  • Ga naar spelers overview.
  • Klik op een speler.
  • Controleer of de geselecteerde speler details worden geopend.

Geslaagd als:
Het programma de geselecteerde speler detail scherm is geopend.

Integratie enums in combobox start match scherm beginnende speler

Omschrijving

Huidige werking:

Momenteel bestaat er een combobox met drie opties voor de beginnende speler;

  • Willekeurig
  • Speler 1
  • Speler 2

Hier zit nog geen verbinding met de datastructuren aan vast

Verwachte werking:

De beginnende speler moet meegestuurd worden van het start match scherm naar het score input scherm.

Risico's

Laag risico: Binding toevoegen


Tests

Test 1 "Beginnende speler controleren" :

Voorbereiding:

  • Start het programma op.
  • Klik op de "Start match scherm" knop
  • Vul bij speler 1 de naam "Bob" in
  • Vul de rest van de textboxes in
  • Selecteer speler 1 in de "Starting player" combobox

Test

  • Klik op "Start match"
  • Controleer of de naam "Bob" op het scherm staat om zijn worpen in te voeren

Geslaagd als :
"Bob" de speler is die als eerst zijn worpen in mag voeren


Start Match scherm back-end

Omschrijving

Huidige werking:

Op het moment is er geen mogelijkheid om namen van spelers en het aantal sets en legs in te vullen.

Verwachte werking:

Wanneer de namen en het aantal sets en legs ingevuld zijn op het scherm van Issue #11 , kan er op de start match knop gedrukt worden om de match te starten.

  • Valideert dat alle textboxes zijn ingevuld.
  • Valideert dat de waardes in de textboxes correct zijn.

Risico's

Laag, Eerste implementatie.


Tests

Test 1 "Controle ingevulde textboxes"
Voorbereiding:

  • Scherm geïnitialiseerd.
  • Knop om match te starten is aanwezig.

Test:

  • Vul de textboxes op de UI correct in.
  • Druk op de Start Match knop op de UI.

Test geslaagd:

  • Het matchscherm wordt met de gegeven data geïnitialiseerd.

Test 2 "Controle fout ingevulde textboxes"
Voorbereiding:

  • Scherm geïnitialiseerd.
  • Knop om match te starten is aanwezig.

Test:

  • Vul de textboxes op de UI incorrect in.
  • Druk op de Start Match knop op de UI.

Test geslaagd:

  • Een foutmelding verschijnt waarop staat dat een of meer velden incorrect ingevuld zijn.

Test 3 "Controle niet ingevulde textboxes"
Voorbereiding:

  • Scherm geïnitialiseerd.
  • Knop om match te starten is aanwezig.

Test:

  • Vul de textboxes op de UI niet in.
  • Druk op de Start Match knop op de UI.

Test geslaagd:

  • Een foutmelding verschijnt waarop staat dat een of meer velden niet ingevuld zijn.

Refactor Datastructuur voor voorbereiding Factory pattern

Omschrijving

Huidige werking:
Op het moment worden alle objecten in de datastructuur aangemaakt met standaard OOP constructors. Omdat dit uiteindelijk gedaan moet worden doormiddel van een Factory Pattern, moet de logica in de constructors verwijderd worden.

Verwachte werking:
Alle logica die in de constructor chain van de datastructuur staat moet verwijderd worden en moeten als properties worden toegevoegd aan de klassen.

Risico's
Laag risico, geen implementatie van logica.

MainWindow View-broker

Omschrijving

Huidige werking:
Het navigeren tussen views gaat op het moment volgens de volgende stappen:

  • Maak nieuwe View aan.
  • Assign nieuwe viewModel aan View.
  • Open nieuwe view als window.
  • Sluit huidige window.

Verwachte werking:
Doormiddel van een MainWindow view broker zal er genavigeerd kunnen worden tussen Views door de DataContext van de MainWindow te veranderen met het gewenste ViewModel. De MainWindow zal opgeslagen worden in een Singleton waardoor hij door alle ViewModels aan te roepen zal zijn.

Risico's
Hoog risico, alle Views moeten omgezet worden van Windows naar UserControls. Ook zullen er aanpassingen gedaan worden in vrijwel alle ViewModels.


Tests

Test 1 "Open Start Match scherm" :

Voorbereiding:

  • Start het programma op.

Test

  • Klik op de "Open Start Match screen" knop.

Geslaagd als :
Het programma navigeert naar het "Start Match" scherm.


Test 2 "Open Main Menu vanuit Start Match" :

Voorbereiding:

  • Ga verder vanaf Test 1.

Test:

  • Klik op de "Go back" knop.

Geslaagd als :
Het programma navigeert naar het "Main Menu" scherm.


Test 3 "Open Score Input scherm" :

Voorbereiding:

  • Ga verder vanaf Test 1.

Test:

  • Vul "Klaas" in bij speler 1.
  • Vul "Piet" in bij speler 2.
  • Vul "3" in bij sets.
  • Vul "3" in bij legs.
  • Klik op de "Start match" knop.

Geslaagd als :
Het programma navigeert naar het "Score Input" scherm.


Tests

Test 4 "Open Player Overview scherm" :

Voorbereiding:

  • Start het programma op.

Test

  • Klik op de "Open Player Overview screen" knop.

Geslaagd als :
Het programma navigeert naar het "Player Overview" scherm.


Test 5 "Open Main Menu vanuit Player Overview" :

Voorbereiding:

  • Ga verder vanaf Test 4.

Test:

  • Klik op de "Back to main menu" knop.

Geslaagd als :
Het programma navigeert naar het "Main Menu" scherm.


Tests

Test 6 "Open Match Overview scherm" :

Voorbereiding:

  • Start het programma op.

Test

  • Klik op de "Open Match Overview screen" knop.

Geslaagd als :
Het programma navigeert naar het "Match Overview" scherm.


Test 7 "Open Main Menu vanuit Match Overview" :

Voorbereiding:

  • Ga verder vanaf Test 6.

Test:

  • Klik op de "Back to main menu" knop.

Geslaagd als :
Het programma navigeert naar het "Main Menu" scherm.


Tests

Test 8 "Open Match Overview scherm" :

Voorbereiding:

  • Start het programma op.

Test

  • Klik op de "Options" knop.

Geslaagd als :
Het programma navigeert naar het "Options" scherm.


Test 9 "Open Main Menu vanuit Options" :

Voorbereiding:

  • Ga verder vanaf Test 6.

Test:

  • Klik op de "Go back" knop.

Geslaagd als :
Het programma navigeert naar het "Main Menu" scherm.

Refactor datastructuur m.b.t. database

Omschrijving

Huidige werking:
Op het moment zijn de database object en factory klassen nog niet geïntegreerd met de bestaande datastructuur.

Verwachte werking:
Het is de bedoeling dat al onze dataobjecten gaan overerven van de DataObjectBase klasse. Daarnaast moet het bijbehorende DataObjectFactoryBase object aangemaakt worden. Deze klassen zijn abstract en je zult dus een aantal methods moeten overriden.

Match

  • Klasse laten overerven van DataObjectBase en de constructor private maken. (Zie Mock_OrderObject.cs voor een voorbeeld)
  • Aanmaken bijbehorende DataObjectFactoryBase. (Zie Mock_OrderObjectFactory.cs voor een voorbeeld.)

Set

  • Klasse laten overerven van DataObjectBase en de constructor private maken. (Zie Mock_OrderObject.cs voor een voorbeeld)
  • Aanmaken bijbehorende DataObjectFactoryBase. (Zie Mock_OrderObjectFactory.cs voor een voorbeeld.)

Leg

  • Klasse laten overerven van DataObjectBase en de constructor private maken. (Zie Mock_OrderObject.cs voor een voorbeeld)
  • Aanmaken bijbehorende DataObjectFactoryBase. (Zie Mock_OrderObjectFactory.cs voor een voorbeeld.)

Turn

  • Klasse laten overerven van DataObjectBase en de constructor private maken. (Zie Mock_OrderObject.cs voor een voorbeeld)
  • Aanmaken bijbehorende DataObjectFactoryBase. (Zie Mock_OrderObjectFactory.cs voor een voorbeeld.)

Throw

  • Klasse laten overerven van DataObjectBase en de constructor private maken. (Zie Mock_OrderObject.cs voor een voorbeeld)
  • Aanmaken bijbehorende DataObjectFactoryBase. (Zie Mock_OrderObjectFactory.cs voor een voorbeeld.)

Player

  • Klasse laten overerven van DataObjectBase en de constructor private maken. (Zie Mock_OrderObject.cs voor een voorbeeld)
  • Aanmaken bijbehorende DataObjectFactoryBase. (Zie Mock_OrderObjectFactory.cs voor een voorbeeld.)

Risico's
Middelmatig risico, kunnen nog onvoorziene fouten in het databasesysteem tevoorschijn komen.


Tests

Unit tests volgen.

Verbind start match scherm met het main menu

Omschrijving

Huidige werking:
Momenteel kan vanaf het main menu scherm niet genavigeerd worden naar het start match scherm

Verwachte werking:
Vanaf het main menu scherm kan naar het start match scherm genavigeerd worden

Risico's
Middelmatig risico: aanpassingen aan de code behind volgens het MVVM pattern


Tests

Test 1 "Navigeren naar start match scherm vanaf main menu":

Voorbereiding:

  • Start het programma op.

Test

  • Klik op de "Open start match scherm" knop
  • Controleer of het start match scherm opent
  • Controleer of het main menu scherm afgesloten is

Geslaagd als :
Het start match scherm opent en het main menu scherm sluit.


Test 2 "Navigeren naar main menu vanaf het start match scherm" :

Voorbereiding:

  • Start het programma op.
  • Klik op de "Open start match scherm" knop

Test

  • Klik op de "Ga terug" knop
  • Controleer of het main menu scherm opent
  • Controleer of het start match scherm sluit

Geslaagd als :
Het main menu scherm opent en het start match scherm sluit.


Refactor voor opties scherm (#55) met canExecute functie voor knoppen

Omschrijving

Huidige werking:

Alle knoppen bevatten een canExecute functie, ook al is dit niet nodig.

Verwachte werking:

De knoppen die altijd gebruikt kunnen worden hoeven geen canExecute functie te bevatten.

Risico's

Laag risico: kleine aanpassing aan code behind


Tests

Test 1 "Buttons controleren" :

Voorbereiding:

  • Start het programma op.
  • Klik op de "Options" knop

Test

  • Controleer of de "Reset" knop niet klikbaar is
  • Controleer of de "Go back" knop wel klikbaar is

Geslaagd als :
De reset knop niet klikbaar is en de go back knop wel klikbaar is


Design improvements

Omschrijving

Huidige werking:
Het design is nog niet mooi gemaakt en niet helemaal dynamisch.

Verwachte werking:

Het design moet verbeterd en rechtgetrokken worden.

Volgende moet verbeterd worden:

  • popup window title verbeteren
  • programma icoontje toevoegen
  • kleur aan programma geven
  • gehele programma dynamisch maken

Risico's

Laag risico, UI aanpassing.


Tests

volgen nog

Score huidige wedstrijd

Score huidige wedstrijd

Omschrijving

Huidige werking:
Op dit moment is het tijdens het spelen van een wedstrijd niet mogelijk om je huidige score, de benodigde score, het aantal gewonnen legs en het aantal gewonnen sets te bekijken

Verwachte werking:

Er wordt een scherm (region?) gemaakt met de volgende componenten:

  • De huidige score van de leg
  • De benodigde score om de leg te winnen
  • Het aantal gewonnen legs
  • Het aantal gewonnen sets

Risico's
Laag risico, UI aanpassing


Tests

volgen nog

Score invoer - Front end

Omschrijving

Huidige werking:

Op dit moment is er voor de speler nog geen mogelijkheid om je score te bekijken.

Verwachte werking:
Er wordt een scherm gemaakt met de volgende componenten:

  • Een inputbox voor het invoeren van de score
  • Een dropdown voor single, double en triple
  • Een submitknop voor het opslaan van de score

Risico's

Laag risico, het scherm kan los van de backend gemaakt worden.


Tests

Testcases volgen nog


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.