From 57adabe5bea67d0fd52c1be822a31988331c7d6b Mon Sep 17 00:00:00 2001 From: Andreas Omholt Olsen Date: Mon, 23 Feb 2026 12:10:01 +0100 Subject: [PATCH] Add oving 6 --- oppgavetekster/oving6/HighscoreList.md | 46 +++++ oppgavetekster/oving6/Logger.md | 136 +++++++++++++++ oppgavetekster/oving6/Office.md | 54 ++++++ oppgavetekster/oving6/README.md | 44 +++++ oppgavetekster/oving6/StockListener.md | 64 +++++++ oppgavetekster/oving6/img/highscore-list.png | Bin 0 -> 144683 bytes oppgavetekster/oving6/img/highscore-list.puml | 23 +++ oppgavetekster/oving6/img/hl-program.png | Bin 0 -> 198562 bytes oppgavetekster/oving6/img/hl-program.puml | 31 ++++ src/main/java/oving6/highscorelist/.gitkeep | 0 src/main/java/oving6/logger/.gitkeep | 0 src/main/java/oving6/office/.gitkeep | 0 src/main/java/oving6/stock/.gitkeep | 0 .../highscorelist/HighscoreListTest.java | 160 ++++++++++++++++++ .../oving6/logger/DistributingLoggerTest.java | 100 +++++++++++ .../oving6/logger/FilteringLoggerTest.java | 86 ++++++++++ .../java/oving6/logger/StreamLoggerTest.java | 49 ++++++ src/test/java/oving6/office/ClerkTest.java | 77 +++++++++ src/test/java/oving6/office/ManagerTest.java | 123 ++++++++++++++ src/test/java/oving6/office/PrinterTest.java | 97 +++++++++++ .../java/oving6/stock/SmartStockTest.java | 124 ++++++++++++++ .../java/oving6/stock/StockIndexTest.java | 116 +++++++++++++ src/test/java/oving6/stock/StockTest.java | 89 ++++++++++ 23 files changed, 1419 insertions(+) create mode 100644 oppgavetekster/oving6/HighscoreList.md create mode 100644 oppgavetekster/oving6/Logger.md create mode 100644 oppgavetekster/oving6/Office.md create mode 100644 oppgavetekster/oving6/README.md create mode 100644 oppgavetekster/oving6/StockListener.md create mode 100644 oppgavetekster/oving6/img/highscore-list.png create mode 100644 oppgavetekster/oving6/img/highscore-list.puml create mode 100644 oppgavetekster/oving6/img/hl-program.png create mode 100644 oppgavetekster/oving6/img/hl-program.puml create mode 100644 src/main/java/oving6/highscorelist/.gitkeep create mode 100644 src/main/java/oving6/logger/.gitkeep create mode 100644 src/main/java/oving6/office/.gitkeep create mode 100644 src/main/java/oving6/stock/.gitkeep create mode 100644 src/test/java/oving6/highscorelist/HighscoreListTest.java create mode 100644 src/test/java/oving6/logger/DistributingLoggerTest.java create mode 100644 src/test/java/oving6/logger/FilteringLoggerTest.java create mode 100644 src/test/java/oving6/logger/StreamLoggerTest.java create mode 100644 src/test/java/oving6/office/ClerkTest.java create mode 100644 src/test/java/oving6/office/ManagerTest.java create mode 100644 src/test/java/oving6/office/PrinterTest.java create mode 100644 src/test/java/oving6/stock/SmartStockTest.java create mode 100644 src/test/java/oving6/stock/StockIndexTest.java create mode 100644 src/test/java/oving6/stock/StockTest.java diff --git a/oppgavetekster/oving6/HighscoreList.md b/oppgavetekster/oving6/HighscoreList.md new file mode 100644 index 0000000..d0afd31 --- /dev/null +++ b/oppgavetekster/oving6/HighscoreList.md @@ -0,0 +1,46 @@ +# Observatør-observert-teknikken - HighscoreList-oppgave + +Denne oppgaven handler om å bruke observatør-observert-teknikken for å bli informert om endringer i en highscore-liste. + +Observatør-observert-teknikken går ut på at det observerte objektet sier ifra til en eller flere observatører om at tilstanden er endret. Dette brukes gjerne når vi har en rekke observatørobjekter som ønsker å vite når en endring skjer i et annet (observert) objekt. Det hadde vært ueffektivt om observatørobjektene skulle sjekket for endringer hele tiden. Derfor definerer vi ofte et felles `interface` som disse kan implementere, slik at det observerte objektet kan kalle på metoder i observatørene når det skjer en endring. + +I denne oppgaven skal vi lage en observerbar `HighscoreList` som kan si fra til observatører/lyttere av typen `HighscoreListListener` når nye resultater blir registrert. En hovedprogramklasse kalt `HighscoreProgram` vil bli brukt til å sjekke at det virker. Denne klassen oppretter en `HighscoreList`-instans, legger inn resultater (tall) fra konsollen som legges til listen og skriver ut listen hver gang et nytt resultat faktisk blir lagt til. + +Alle filene i denne oppgaven skal lages i [oving6/highscorelist](../../src/main/java/oving6/highscorelist). + +## Del 1: Implementasjon av HighscoreList + +En `HighscoreList` skal holde styr på heltallsresultater (av typen `int`/`Integer`). Listen skal være observerbar ved at den kan registrere lyttere (`HighscoreListListener`-instanser) og si fra til dem når listen blir endret. Listen skal ha en maksimal lengde, som settes i konstruktøren, f.eks. skal en topp 10-liste kunne opprettes med `new HighscoreList(10)`. Nye resultater registreres med metoden `addResult(int)`, som skal finne riktig posisjon og legge resultatet inn (dersom det er godt nok). Dersom listen er for lang, så skal det dårligste resultatet fjernes. NB: _Lavest verdi_ er best, f.eks. antall sekunder på en oppgave eller antall flytt i Sokoban. + +`HighscoreListListener`-grensesnittet er vist i klassediagrammet til venstre og må implementeres av alle klasser som ønsker å fungere som lyttere for `HighscoreList`-instanser. Lyttere registrerer seg med `HighscoreList` sin `addHighscoreListListener`-metode og vil siden få beskjed om nye resultater ved at `listChanged()`-metoden kalles. Argumentene som tas inn er `HighscoreList`-objektet som ble endret og posisjonen i listen der endringen skjedde. + +Her er en oversikt over metoden som må implementeres: + +- `HighscoreList(int maxSize)` - konstruktøren tar inn maks antall resultater som listen skal kunne holde. Denne verdien må brukes av `addResult`, slik at resultater som er for dårlige kastes. +- `int size()` - returnerer antall elementer i listen, som altså aldri skal overstige maks-antallet. +- `int getElement(int)` - returnerer resultatet i posisjonen angitt av argumentet. +- `void addResult(int)` - registrere et nytt resultat, og dersom resultatet er godt nok til å komme med på listen, så legges det inn på riktig plass. Dersom listen blir for lang, så må dårligste resultat kastes. Alle registrerte lyttere må få beskjed om en evt. endring av listen, inkludert på hvilken posisjon som ble endret. +- `void addHighscoreListListener(HighscoreListListener)` - registrerer en ny lytter. +- `void removeHighscoreListListener(HighscoreListListener)` - fjerner en tidligere registrert lytter. + +Klassediagram for `HighscoreList` og `HighscoreListListener`: + +![highscore-list](./img/highscore-list.png) + +Testkode for denne oppgaven finner du her: [oving6/highscorelist/HighscoreListTest.java](../../src/test/java/oving6/highscorelist/HighscoreListTest.java). + +## Del 2: Hovedprogramklasse + +Lag en hovedprogramklasse kalt `HighscoreListProgram`, som tester at `HighscoreList`-klassen din virker som den skal. La den opprette en `HighscoreList`-instans, lese inn tall fra konsollet (f.eks. med en `Scanner` og `nextInt`-metoden) og legge disse inn i listen. Sørg for at `HighscoreListProgram` implementerer `HighscoreListListener`-grensesnittet (`HighscoreListProgram implements HighscoreListListener`) og registrerer seg som lytter på `HighscoreList`-instansen via `addHighscoreListListener`. La lyttermetoden `listChanged` skrive ut informasjon og resultatene i `HighscoreList`-instansen og posisjonsargumentet, slik at du ser at alt virker som det skal. + +Vi foreslår følgende metoder og oppførsel: + +- `void init()` - oppretter en ny `HighscoreList` og registrerer seg selv (altså `HighscoreListProgram`-instansen) som lytter. Dette kan og gjøres i konstruktøren om ønskelig. +- `void run()` - leser inn tall (resultater) fra terminalen og legger dem til i listen. +- `void listChanged(HighscoreList, int)` (fra `HighscoreListListener`) - observerer endringer i `HighscoreList`-instansen og skriver ut posisjonsargumentet, samt selve listen, til konsollen. + +Klassediagrammet viser hvordan klassene henger sammen, og vårt forslag til metoder: + +![hl-program](./img/hl-program.png) + +Husk også å lage en `main()`-metode som kjører HighscoreListProgram! diff --git a/oppgavetekster/oving6/Logger.md b/oppgavetekster/oving6/Logger.md new file mode 100644 index 0000000..60e9222 --- /dev/null +++ b/oppgavetekster/oving6/Logger.md @@ -0,0 +1,136 @@ +# Delegering - Logger-oppgave + +Denne oppgaven bruker delegeringsteknikken for å implementere en fleksibel måte å håndtere logging (av feil i programmer) på. + +## Logging + +Ved kjøring av programmer er det ofte behov for å logge hva som skjer underveis, slik at det blir lettere å drive feilsøking i etterkant. F.eks. kan en lagre feilmeldinger til fil, med tidspunkt og litt om programtilstanden og hvis programmet kræsjer ordentlig, så kan brukeren sende logg-fila som e-post til utviklerne. En enkel måte å støtte logging på er å lage en hjelpeklasse med én metode, f.eks. `log(String melding)`, og så er det hjelpeklassen som bestemmer om meldingen skal vises i statuslinja, skrives til fil, sendes som melding til en alarmsentral osv. Hjelpeklassen kan kanskje brukes av mange programmer, og siden behovene vil variere er det viktig å gjøre dette fleksibelt. Denne oppgaven bruker [grensesnitt](https://www.ntnu.no/wiki/pages/viewpage.action?pageId=65936813) og [delegeringsteknikken](https://www.ntnu.no/wiki/display/tdt4100/Delegeringsteknikken) for å implementere fleksibel logging, litt på samme måte som eksisterende loggingsrammeverk (se f.eks. [Java sin egen loggingsfunksjonalitet](http://docs.oracle.com/javase/6/docs/technotes/guides/logging/overview.html), Apache sitt [log4j-rammeverk](http://logging.apache.org/log4j/), eller Googles ["Java logging framework"](https://www.google.no/search?q=java+logging+frameworks)). + +Alle filene i denne oppgaven skal lages i [oving6/logger](../../src/main/java/oving6/logger). + +### ILogger-grensesnittet + +Logging gjøres ved å bruke ulike implementasjoner av `ILogger`, som er definert som følger: + +```java +package oving6.logger; + +public interface ILogger { + + String ERROR = "error"; + String INFO = "info"; + String WARNING = "warning"; + + void log(String severity, String message, Exception exception); +} +``` + +ILogger-grensesnittet definerer én `log`-metode som brukes til all logging: + +- `severity`-argumentet angir alvorlighetsgraden, og må være en av `String`-verdiene `ERROR`, `WARNING` eller `INFO`, som er definert som konstanter i grensesnittet. +- `message`-argumentet er en melding om hva som var feil. +- `exception`-argumentet er et unntaksobjekt, som kan gi mer informasjon av hva som var feil, men kan være `null`. + +En typisk bruk vil være i `catch`-delen av en `try/catch`: + +```java +ILogger logger = ... +... +try { + ... +} catch (IOException ioe) { + logger.log(ILogger.ERROR, "Feil ved lesing fra fil", ioe); +} +``` + +Akkurat hvordan logging utføres bestemmes av hvilken implementasjon av ILogger-grensesnittet en bruker, og i denne oppgaven skal du implementere følgende tre klasser: + +- `DistributingLogger` - delegerer til andre loggere basert på _alvorlighetsgraden_. +- `FilteringLogger` - delegerer til en annen logger, men kun for spesifikke alvorlighetsgrader. +- `StreamLogger` - skriver logg-meldingen til en angitt strøm. + +Hver av disse utgjør én av deloppgavene beskrevet under. + +## Del 1 - StreamLogger + +En `StreamLogger` sørger for å skrive alle logg-meldinger til en angitt `OutputStream`, med én melding pr. linje (altså linjeskift mellom hver melding). `OutputStream`-objektet må gis inn i konstruktøren: + +- `StreamLogger(OutputStream stream)` - initialiserer `StreamLogger`-objektet slik at logg-meldinger skrives til `stream`. + +Eksempel på bruk: + +```java +ILogger logger = new StreamLogger(System.out); +logger.log(ILogger.INFO, "Denne meldingen er til informasjon og skrives til System.out", null); +``` + +Husk å kalle `flush`-metoden til OutputStream etter at logg-meldingen er skrevet. + +Det skal også være mulig å angi en såkalt _format_-string, dvs. en `String` som fungerer som en slags mal for hva som skrives, f.eks. `"%s: %s (%s)"`: + +- `void setFormatString(String formatString)` - setter format-string-en som brukes for å lage logg-meldingen som skrives. Det settes ingen andre krav til validering av `formatString`-argumentet annet enn at det ikke kan være `null`. + +Effekten av skriving skal være som om man ga format-string-en som første argument til `String.format`-metoden etterfulgt av `severity`-, `message`- og `exception`-argumentene, og så skrev ut det denne metoden returnerer: + +```java +String logMessage = String.format(formatString, severity, message, exception); +// skriv logMessage til OutputStream-en her +``` + +Merk at dersom format-string-en ikke er satt, så skal den ha en fornuftig start-verdi. + +Testkode for oppgaven: [oving6/logger/StreamLoggerTest.java](../../src/test/java/oving6/logger/StreamLoggerTest.java). + +## Del 2 - FilteringLogger + +`FilteringLogger`-klassen implementerer `ILogger`-grensesnittet og delegerer til en annen `ILogger`-implementasjon, men bare hvis _alvorlighetsgraden_ er en av et sett angitte verdier. Både loggeren det delegeres til og alvorlighetsgradene angis når `FilteringLogger`-objektet opprettes: + +- `FilteringLogger(ILogger logger, String... severities)` - initialiserer `FilteringLogger`-objektet så det delegerer logging til `logger`-argumentet, men bare hvis _alvorlighetsgraden_ som gis til `log`-metoden er en av verdiene angitt i `severities`-argumentet. `severities`-argumentet er et såkalt varargs-argument, som du kan lese mer om her: [Varargs - variabelt antall argumenter](https://www.ntnu.no/wiki/display/tdt4100/Varargs+-+variabelt+antall+argumenter). Det viktigste å vite her er at det du får inn i metoden din vil være en variabel `severities` som er av typen string array (`String[]`). Du kan hente ut elementer her via `severities[0]`, sjekke lengde ved `severities.length` og ellers bruke alle normale arraymetoder. + +Det skal også være mulig å sjekke om logging er på og slå logging av og på i etterkant: + +- `boolean isLogging(String severity)` - returnerer `true` hvis logging er slått på for den angitte alvorlighetsgraden og `false` ellers. +- `void setIsLogging(String severity, boolean value)` - slår logging på (`value` er `true`) eller av (`value` er `false`) for den angitte _alvorlighetsgraden_. + +Eksempel på bruk: + +```java +ILogger syserrLogger = new StreamLogger(System.err); +FilteringLogger logger = new FilteringLogger(syserrLogger, ILogger.ERROR); + +logger.log(ILogger.ERROR, "Denne meldingen er alvorlig og skrives til System.err", null); +logger.log(ILogger.WARNING, "Denne meldingen er en advarsel og blir filtrert bort", null); +logger.log(ILogger.INFO, "Denne meldingen er til informasjon og blir filtrert bort", null); + +logger.setIsLogging(ILogger.WARNING, true); +logger.log(ILogger.WARNING, "Denne meldingen er en advarsel og blir nå skrevet til System.err", null); +``` + +Testkode for oppgaven: [oving6/logger/FilteringLoggerTest.java](../../src/test/java/oving6/logger/FilteringLoggerTest.java). + +## Del 3 - DistributingLogger + +`DistributingLogger`-klassen brukes for å fordele logg-meldinger til en av tre andre loggere, avhengig av _alvorlighetsgraden_ til en logg-melding. Den har én hjelpe-logger for meldinger med alvorlighetsgrad `ERROR`, én for meldinger av alvorlighetsgrad `WARNING` og en for meldinger av alvorlighetsgrad `INFO`. Alle disse angis til konstruktøren: + +- `DistributingLogger(ILogger errorLogger, ILogger warningLogger, ILogger infoLogger)` - initialiserer objektet slik at den første loggeren brukes til alvorlighetsgraden `ERROR`, den andre til alvorlighetsgraden `WARNING` og den tredje til alvorlighetsgraden `INFO`. + +I tillegg skal klassen ha en metode for å sette hver av dem individuelt: + +- `void setLogger(String severity, ILogger logger)` - setter/endrer loggeren som brukes for den angitte alvorlighetsgraden. + +Eksempel på bruk: + +```java +ILogger syserrLogger = new StreamLogger(System.err); +ILogger sysoutLogger = new StreamLogger(System.out); +DistributingLogger logger = new DistributingLogger(syserrLogger, syserrLogger, sysoutLogger); + +logger.log(ILogger.ERROR, "Denne meldingen er alvorlig og skrives til System.err", null); +logger.log(ILogger.WARNING, "Denne meldingen er en advarsel og skrives til System.err", null); +logger.log(ILogger.INFO, "Denne meldingen er til informasjon og skrives til System.out", null); + +logger.setLogger(ILogger.WARNING, sysoutLogger); +logger.log(ILogger.WARNING, "Denne meldingen er en advarsel, men nå skrives den til System.out", null); +``` + +Testkode for oppgaven: [oving6/logger/DistributingLoggerTest.java](../../src/test/java/oving6/logger/DistributingLoggerTest.java). diff --git a/oppgavetekster/oving6/Office.md b/oppgavetekster/oving6/Office.md new file mode 100644 index 0000000..a05629b --- /dev/null +++ b/oppgavetekster/oving6/Office.md @@ -0,0 +1,54 @@ +# Delegering - The Office-oppgave + +Denne oppgaven bruker delegeringsteknikken for å modellere arbeidsfordeling på en “vanlig” arbeidsplass. Denne oppgaven kan muligens oppleves som mindre meningsfull. Dette er kanskje omtrent tilsvarende hvor meningsløst noen typer kontorarbeid kan virke. + +Vi skal i dette scenarioet ha en sjef, eller `Manager`, som har én eller flere arbeidere, eller `Clerk`s, altså i en såkalt én-til-mange relasjon. Et `Employee`-grensesnitt definerer en oppførsel som er felles for de ansatte, og implementeres av både `Manager` og `Clerk`. + +`Employee`-objekter på denne simulerte arbeidsplassen har to oppgaver: + +- Utskrift av dokumenter +- Utførelse av matematiske beregninger + +Alle filene i denne oppgaven skal lages i [oving6/office](../../src/main/java/oving6/office). + +## Del 1: Employee, Clerk og Printer + +`Employee`-grensesnittet har følgende metoder: + +- `double doCalculations(BinaryOperator operation, double value1, double value2)` - regner ut resultatet av å utføre `operation` med argumentene `value1` og `value2`. +- `void printDocument(String document)` - Printer `document`. Hvordan dette gjøres avhenger av den spesifikke implementasjonen. +- `int getTaskCount()` - returnerer hvor mange oppgaver (beregninger og printinger) som har blitt utført av eller på vegne av dette `Employee`-objektet. +- `int getResourceCount()` - antallet employees til rådighet, inkludert `Employee`-objektet metoden blir kalt på. En `Employee` skal altså medregne seg selv i antall ressurser den ansatte har til rådighet. Dette tallet skal inkludere alle `Employee`-objekter nedover i hierarkiet. + +Lag dette grensesnittet, og lag så en `Clerk`-klasse som implementerer det. `Clerk` må ha følgende konstruktør: + +- `Clerk(Printer printer)` + +`Clerk`-klassen må inneholde egen logikk for å løse `doCalculations`, men skal altså delegere `printDocuments` til `Printer`-objektet gitt i konstruktøren. + +Definer en `Printer`-klasse med følgende metoder: + +- `void printDocument(String document, Employee employee)` - skriver documentet til konsollen og tar vare på dokumentet i `employee` sin historikk. Ingen av argumentene kan være `null`. +- `List getPrintHistory(Employee employee)` - returnerer en `List` med alle dokumentene som har blitt printet av `employee` av denne printeren i rekkefølgen de har blitt printet. Om `employee` ikke har printet noen dokumenter ved denne printeren skal en tom liste returneres. + +La så `Clerk` delegere `printDocument` til `Printer`. Siden `Clerk` ikke har noen andre ansatte å delegere til, vil `getResourceCount()` alltid være 1. + +Testkode for `Clerk` er her: [oving6/office/ClerkTest.java](../../src/test/java/oving6/office/ClerkTest.java). + +Testkode for `Printer` er her: [oving6/office/PrinterTest.java](../../src/test/java/oving6/office/PrinterTest.java). + +## Del 2: Manager + +Vi definerer så sjefen til de hardt-arbeidende `Clerk`-objektene. `Manager`-klassen har følgende konstruktør: + +- `Manager (Collection employees)` - utløser et `IllegalArgumentException` dersom employees er tom. + +La så `Manager` implementere `Employee`-grensesnittet. Implementer `Manager`s oppgaver ved å delegere alle videre til en av arbeiderne i listen med `Employee`-objekter gitt i konstruktøren. Regelen for hvilken `Employee` som får hvilken oppgave delegert til seg kan du bestemme selv, men prøv å gjøre det slik at arbeidet fordeles jevnt på alle. Mens `Clerk` altså har kun én tilgjengelig ressurs vil `Manager`-objekter vil ha flere. + +Testkode for `Manager` er her: [oving6/office/ManagerTest.java](../../src/test/java/oving6/office/ManagerTest.java). + +## Del 3: Main-metode + +Lag en `main()`-metode som illustrerer hva som skjer med effektiviteten når vi legger til flere nivåer med mellomledere. + +Lag først et `Manager`-objekt som blir tildelt noen `Clerk`-objekter under seg. Presentér deretter effektiviteten av hierarkiet ved å skrive ut `getTaskCount() / getResourceCount()` for `Manager`-objektet. Vis deretter hvordan effektiviteten faller når vi legger til nivåer med mellomledere ved å lage to eller flere nivåer med `Manager`, hvor lederne på bunnen tildeles `Clerk`-objekter, og skriv ut den nye effektiviteten for topplederne. diff --git a/oppgavetekster/oving6/README.md b/oppgavetekster/oving6/README.md new file mode 100644 index 0000000..58b7a91 --- /dev/null +++ b/oppgavetekster/oving6/README.md @@ -0,0 +1,44 @@ +# Øving 06: Observatør-Observert og Delegering + +## Øvingsmål + +- Lære hva observatør-observert-teknikken er, dens bruksområder og fordeler +- Lære bruk av delegering for å utføre oppgaver i en klasse + +## Øvingskrav + +- Kunne definere og implementere et observatørgrensesnitt +- Kunne la en observert klasse fortelle dens observatører om endringer +- Kunne la en klasse delegere utførelsen av oppgaver til interne objekter + +## Dette må du gjøre + +### Del 1: Programmering + +Denne øvingen omfatter både [delegeringsteknikken](https://www.ntnu.no/wiki/display/tdt4100/Delegeringsteknikken) og [observatør-observert-teknikken](https://www.ntnu.no/wiki/pages/viewpage.action?pageId=66879660). Gjør **minst én** av de fire oppgavene under. For å få 2 poeng må det gjøres **minst én** oppgave fra **hvert av de to temaene**. Dette anbefales uansett på det *sterkeste*, siden dette må til for å dekke hele pensum. + +Gjennomfør enten *minst én* av oppgavene om delegering: + +- [The Office](./Office.md) (anbefalt) (Lett) +- [Logger](./Logger.md) (Medium) + +ELLER *minst én* av oppgavene om observatør-observert-teknikken: + +- [StockListener](./StockListener.md) (Medium) +- [Highscore](./HighscoreList.md) (Vanskelig) + +**I tillegg til oppgaven(e) ovenfor skal du levere en tekstfil hvor du gjør kort rede for delegeringsteknikken og observatør-observert-teknikken.** + +### Del 2: Objektdiagram + +For en av oppgavene du gjorde i del 1: + +Lag en sekvens av kall i `main()`-metoden. Denne sekvensen må benytte seg av den passende teknikken fra del 1. Tegn deretter et [objektdiagram](https://www.ntnu.no/wiki/display/tdt4100/Objektdiagrammer) som viser tilstanden til hvert objekt ved slutten av `main()`-metoden. Du trenger ikke levere inn diagrammet på Blackboard. + +## Hjelp / mistanke om bugs + +Ved spørsmål eller behov for hjelp konsulter studassen din i saltidene hans/hennes. Du kan også oppsøke andre studasser på sal eller legge ut et innlegg på [Piazza](https://piazza.com/ntnu.no/spring2025/tdt4100). + +## Godkjenning + +Last opp kildekode på Blackboard innen den angitte innleveringsfristen. Innlevert kode skal demonstreres for en læringsassistent innen én uke etter innleveringsfrist. Se for øvrig Blackboard-sidene for informasjon rundt organisering av øvingsopplegget og det tilhørende øvingsreglementet. diff --git a/oppgavetekster/oving6/StockListener.md b/oppgavetekster/oving6/StockListener.md new file mode 100644 index 0000000..573f93f --- /dev/null +++ b/oppgavetekster/oving6/StockListener.md @@ -0,0 +1,64 @@ +# Observatør-observert-teknikken - StockListener-oppgave + +Denne oppgaven handler om å bruke observatør-observert-teknikken for å holde en aksjeindeks (`StockIndex`) informert om endringer i én eller flere aksjer (`Stock`). + +Observatør-observert-teknikken går ut på at det observerte objektet sier ifra til én eller flere observatører om at tilstanden er endret. I vårt tilfelle skal vi ta utgangspunkt i at aksjer (`Stock`) har en pris, og at personer eller institusjoner (`StockListener`) ønsker å holde seg oppdatert på aksjepriser. + +Alle filene i denne oppgaven skal lages i [oving6/stock](../../src/main/java/oving6/stock). + +## Del 1: Stock-klassen og StockListener-grensesnittet + +Du skal implementere en klasse `Stock` med følgende funksjonalitet: + +- `Stock(String ticker, double price)` - en konstruktør som tar inn en aksjekode (`ticker` ulik `null`) og en aksjepris. +- `void setPrice(double price)` - endringsmetode for aksjeprisen. Dersom aksjepris er negativ eller lik null, skal metoden utløse en `IllegalArgumentException`. +- `String getTicker()` - metode for å hente aksjekoden. +- `double getPrice()` - metode for å hente aksjeprisen. + +Du skal videre definere et lyttergrensesnitt kalt `StockListener`, som observatørene må implementere. Grensesnittet skal inneholde én metode: + +- `void stockPriceChanged(Stock stock, double oldValue, double newValue)` - lyttermetode for å holde lytteren oppdatert på aksjeprisen. Metoden skal ta inn et `Stock`-objekt, samt gammel og ny pris. Alle lyttere må implementere denne metoden. + +Foreløpig er `Stock` ikke observerbar. For at observatører skal kunne holdes oppdatert, må `Stock`-objekter administrere en liste med lyttere. Derfor må `Stock`-klassen i tillegg ha følgende metoder: + +- `void addStockListener(StockListener)` - metode for å legge til nye observatører. +- `void removeStockListener(StockListener)` - metode for å fjerne observatører. + +Observatørene skal holdes oppdatert på prisendringer. Derfor må lyttermetoden kalles hos alle registrerte observatører når aksjeprisen endres med `setPrice`-metoden. + +Testkode for denne oppgaven finner du her: [oving6/stock/StockTest.java](../../src/test/java/oving6/stock/StockTest.java). + +## Del 2: StockIndex implements StockListener + +Vi skal nå lage en veldig forenklet versjon av en aksjeindeks. I korte trekk bruker man en aksjeindeks til å måle utviklingen av et utvalg aksjer. Vår enkle, fiktive aksjeindeks `StockIndex` har et navn (`String`), indeks (`double`) og en liste med `Stock`-objektene som er inkludert i indeksen. Indeksen beregnes ut i fra aksjeprisene den "observerer", og vil være lik summen av disse. Når en av aksjeprisene øker eller synker, må tilstanden til `StockIndex`-objektet holdes konsistent med denne utviklingen. Dette lar seg gjøre ved at `StockIndex` observerer én eller flere `Stock`-objekter. Klassen skal ha følgende metoder: + +- `StockIndex(String name, Stock... stocks)` - konstruktør som tar inn ingen, én eller flere aksjer (`Stock`-objekter). `Stock`-parameteret defineres som et såkalt [varargs-parameter](https://www.ntnu.no/wiki/display/tdt4100/Varargs+-+variabelt+antall+argumenter). NB: `StockIndex`-objektet skal holdes oppdatert på aksjeprisene allerede fra det er instansiert. Dersom en indeks instansieres uten `Stock`-objekter, skal aksjeindeksen være `0`. Verken navnet eller noen av `Stock`-argumentene kan være `null`. +- `void addStock(Stock stock)` - metode for å legge til en aksjepris i indeksen. Argumentet kan ikke være `null`. +- `void removeStock(Stock stock)` - metode for å fjerne en aksjepris fra indeksen. +- `double getIndex()` - hentemetode for indeksen. + +I tillegg må `StockIndex`-klassen selvsagt implementere `StockListener` og dermed også lyttermetoden `stockPriceChanged`, slik at indeksen kan holdes oppdatert. + +Testkode for denne oppgaven finner du her: [oving6/stock/StockIndexTest.java](../../src/test/java/oving6/stock/StockIndexTest.java). + +## Ekstraoppgaver + +I en del sammenhenger vil du ikke være interessert i alle småendringer i en aksjepris, men interessert i endringer utenfor et visst område eller av en viss størrelse. Kanskje vil du kjøpe aksjer hvis det er billig nok, ønsker å selge dersom prisen blir høy nok eller ønsker å vite om større endringer som kan være signal om viktige prisendringer. Så for å unngå å sende ut mange uinteressante prisoppdateringer, er det aktuelt med to typer utvidelser av `Stock`-klassen. I begge tilfellene bruker men en egen `addStockListener`-metode for å registrere lytteren og hva slags endring man er interessert i. Implementér utvidelsen(e) i en subklasse som du kaller `SmartStock`. Merk at denne utvidelsen av `Stock` ikke er så relevant å bruke sammen med `StockIndex`, siden den da vil miste noen oppdateringer og dermed kunne risikere å være inkonsistent innimellom. + +### Pris*intervall* + +I denne utvidelsen skal du støtte lyttere som ønsker å få beskjed kun dersom `Stock`-objektets pris settes utenfor et gitt intervall. Følgende metode må implementeres: + +- `void addStockListener(StockListener, double min, double max)` - metode som legger til lyttere med krav til prisintervall. + +Lyttere som er registrert med denne metoden skal bare varsles dersom `Stock`-objektets pris endres til en verdi utenfor det angitte intervallet. Hint: Bruk en `Map`-felt til å holde oversikt over intervallene, eventuelt flere lister eller andre datastrukturer. + +### Pris*differanse* + +I denne utvidelsen skal du støtte lyttere som ønsker å få beskjed kun når akkumulerte endringer av `Stock`-objektets pris er større enn en gitt differanse. Følgende metode må implementeres: + +- `void addStockListener(StockListener, double difference)` - metode som legger til lyttere med krav til prisdifferanse. + +Et viktig poeng med denne er varianter er hvilke tidligere verdien som skal gis til lyttermetoden `stockPriceChanged` sitt andre argument. Denne verdien skal være den forrige verdien som ble rapportert, som kan være en annen enn den forrige prisverdien. Anta f.eks. at en lytter registreres med `10` som prisdifferanse og at aksjeprisen starter som `110` og så endres til `118` og videre til `121`. Da skal lyttermetoden `stockPriceChanged` kalles med `110` som gammel verdi og `121` som ny verdi, fordi dette sett fra lytterens perspektiv er forrige verdi den fikk vite om. En annen lytter som var registrert med prisdifferansen `5`, ville fått beskjed allerede ved første endring og da med `110` som gammel verdi og `118` som ny, men den ville ikke få beskjed om endringen fra `118` til `121`, fordi differansen da er for liten. Dersom prisen endrer seg videre til `124`, vil lytteren få beskjed og da med `118` som gammel verdi. + +Testkode for denne oppgaven finner du her: [oving6/stock/SmartStockTest.java](../../src/test/java/oving6/stock/SmartStockTest.java). diff --git a/oppgavetekster/oving6/img/highscore-list.png b/oppgavetekster/oving6/img/highscore-list.png new file mode 100644 index 0000000000000000000000000000000000000000..7710f1341ba6c24663ab47269c45d4c170bbf158 GIT binary patch literal 144683 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

x{j`{0|vP(#^n5|#s&tj%Qio(hjHN% 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

4l@o$;3eO_12Nre uJpaA<=+FM~&yWANDfRy}5C1>;BO=Mbh_jd--=a-^P--YGr9y?9PyPq3q!sD_ literal 0 HcmV?d00001 diff --git a/oppgavetekster/oving6/img/highscore-list.puml b/oppgavetekster/oving6/img/highscore-list.puml new file mode 100644 index 0000000..fe1d890 --- /dev/null +++ b/oppgavetekster/oving6/img/highscore-list.puml @@ -0,0 +1,23 @@ +@startuml highscore-list + +skinparam dpi 400 + +class HighscoreList { + - int maxSize + - List results + + + HighscoreList(int) + + int size() + + int getElement(int) + + void addResult(int) + + void addHighscoreListListener(HighscoreListListener) + + void removeHighscoreListListener(HighscoreListListener) +} + +interface HighscoreListListener { + void listChanged(HighscoreList, int) +} + +HighscoreList -u-> "highscoreListListeners: *" HighscoreListListener + +@enduml diff --git a/oppgavetekster/oving6/img/hl-program.png b/oppgavetekster/oving6/img/hl-program.png new file mode 100644 index 0000000000000000000000000000000000000000..3b6779c6db35d403b6299e628ac6d5a7f6cf6f56 GIT binary patch literal 198562 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

2c89g&W`XGkJS@2bh9OPDMp!e$EX-&MN$2 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�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

xJDj~RrYPaAG89$|pHf%?Sq1MZh%NDSH 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 literal 0 HcmV?d00001 diff --git a/oppgavetekster/oving6/img/hl-program.puml b/oppgavetekster/oving6/img/hl-program.puml new file mode 100644 index 0000000..c3ab37f --- /dev/null +++ b/oppgavetekster/oving6/img/hl-program.puml @@ -0,0 +1,31 @@ +@startuml hl-program + +skinparam dpi 400 + +class HighscoreList { + - int maxSize + - List results + + + HighscoreList(int) + + int size() + + int getElement(int) + + void addResult(int) + + void addHighscoreListListener(HighscoreListListener) + + void removeHighscoreListListener(HighscoreListListener) +} + +interface HighscoreListListener { + void listChanged(HighscoreList, int) +} + +class HighscoreListProgram { + - HighscoreList highscoreList + + + void init() + + void run() +} + +HighscoreList -u-> "highscoreListListeners: *" HighscoreListListener +HighscoreListProgram ..l|> HighscoreListListener : "\t\t" + +@enduml diff --git a/src/main/java/oving6/highscorelist/.gitkeep b/src/main/java/oving6/highscorelist/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/oving6/logger/.gitkeep b/src/main/java/oving6/logger/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/oving6/office/.gitkeep b/src/main/java/oving6/office/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/oving6/stock/.gitkeep b/src/main/java/oving6/stock/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/test/java/oving6/highscorelist/HighscoreListTest.java b/src/test/java/oving6/highscorelist/HighscoreListTest.java new file mode 100644 index 0000000..92601dc --- /dev/null +++ b/src/test/java/oving6/highscorelist/HighscoreListTest.java @@ -0,0 +1,160 @@ +package oving6.highscorelist; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import java.util.List; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class HighscoreListTest { + + private int pos1; + private int pos2; + private HighscoreList highscoreList; + + private static void checkHighscoreList(String contextMessage, HighscoreList list, + List elements) { + assertEquals(elements.size(), list.size(), + contextMessage + " -> Testing the length of the highscore list"); + + int i = 0; + + for (int element : elements) { + assertEquals(element, list.getElement(i), + contextMessage + " -> Testing that the element at position " + i + " matches"); + + i++; + } + } + + private void addResultWithListener(int pos, int element) { + pos1 = pos; + highscoreList.addResult(element); + + // Check that the position that was changed is the same as the one sent to the listener + assertEquals(pos1, pos2, "Added " + element + " at position " + pos + + " -> Testing the position received by the listener"); + } + + @BeforeEach + public void setUp() { + highscoreList = new HighscoreList(3); + pos1 = -1; + pos2 = -1; + } + + @Test + @DisplayName("Test constructor") + public void testConstructor() { + assertEquals(0, highscoreList.size(), "Testing initialization of the highscore list"); + } + + @Test + @DisplayName("Add results (simple)") + public void testAddElementSimple() { + highscoreList.addResult(5); + HighscoreListTest.checkHighscoreList("Added 5 to an empty list", highscoreList, List.of(5)); + + highscoreList.addResult(6); + HighscoreListTest.checkHighscoreList("Added 6 to the list [5]", highscoreList, + List.of(5, 6)); + + highscoreList.addResult(2); + HighscoreListTest.checkHighscoreList("Added 2 to the list [5, 6]", highscoreList, + List.of(2, 5, 6)); + } + + @Test + @DisplayName("Add results - list becomes too long") + public void testAddElementMoreThanMax() { + highscoreList.addResult(5); + highscoreList.addResult(6); + highscoreList.addResult(2); + HighscoreListTest.checkHighscoreList("Added 5, 6, and 2 to the list", highscoreList, + List.of(2, 5, 6)); + + highscoreList.addResult(3); + HighscoreListTest.checkHighscoreList("Added 3 to the list [2, 5, 6]", highscoreList, + List.of(2, 3, 5)); + + highscoreList.addResult(7); + HighscoreListTest.checkHighscoreList("Added 7 to the list [2, 3, 5]", highscoreList, + List.of(2, 3, 5)); + } + + @Test + @DisplayName("Add two identical elements") + public void testAddElementDuplicate() { + highscoreList.addResult(5); + highscoreList.addResult(6); + highscoreList.addResult(2); + HighscoreListTest.checkHighscoreList("Added 5, 6, and 2 to the list", highscoreList, + List.of(2, 5, 6)); + + highscoreList.addResult(2); + HighscoreListTest.checkHighscoreList("Added 2 to the list [2, 5, 6]", highscoreList, + List.of(2, 2, 5)); + } + + @Test + @DisplayName("Test listeners (simple)") + public void testListListenersSimple() { + // Mock a listener + HighscoreListListener listener = (list, pos) -> pos2 = pos; + highscoreList.addHighscoreListListener(listener); + + this.addResultWithListener(0, 5); + HighscoreListTest.checkHighscoreList("Added 5 to the list []", highscoreList, List.of(5)); + + this.addResultWithListener(1, 6); + HighscoreListTest.checkHighscoreList("Added 6 to the list [5]", highscoreList, + List.of(5, 6)); + + this.addResultWithListener(0, 2); + HighscoreListTest.checkHighscoreList("Added 2 to the list [5, 6]", highscoreList, + List.of(2, 5, 6)); + } + + @Test + @DisplayName("With listener - list becomes too long") + public void testListListenerMoreThanMax() { + // Mock a listener + HighscoreListListener listener = (list, pos) -> pos2 = pos; + highscoreList.addHighscoreListListener(listener); + + highscoreList.addResult(5); + highscoreList.addResult(6); + highscoreList.addResult(2); + HighscoreListTest.checkHighscoreList("Added 5, 6, and 2 to the list", highscoreList, + List.of(2, 5, 6)); + + this.addResultWithListener(1, 3); + HighscoreListTest.checkHighscoreList("Added 3 to the list [2, 5, 6]", highscoreList, + List.of(2, 3, 5)); + + // Reset pos2 since the next element falls outside the list and is therefore not updated by + // itself and sent to the listener + pos2 = -1; + this.addResultWithListener(-1, 7); + HighscoreListTest.checkHighscoreList("Added 7 to the list [2, 3, 5]", highscoreList, + List.of(2, 3, 5)); + } + + @Test + @DisplayName("With listener - two identical elements") + public void testListListenerDuplicate() { + // Mock a listener + HighscoreListListener listener = (list, pos) -> pos2 = pos; + highscoreList.addHighscoreListListener(listener); + + highscoreList.addResult(5); + highscoreList.addResult(6); + highscoreList.addResult(2); + HighscoreListTest.checkHighscoreList("Added 5, 6, and 2 to the list", highscoreList, + List.of(2, 5, 6)); + + this.addResultWithListener(1, 2); + HighscoreListTest.checkHighscoreList("Added 2 to the list [2, 5, 6]", highscoreList, + List.of(2, 2, 5)); + } +} diff --git a/src/test/java/oving6/logger/DistributingLoggerTest.java b/src/test/java/oving6/logger/DistributingLoggerTest.java new file mode 100644 index 0000000..13d7486 --- /dev/null +++ b/src/test/java/oving6/logger/DistributingLoggerTest.java @@ -0,0 +1,100 @@ +package oving6.logger; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import java.io.ByteArrayOutputStream; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class DistributingLoggerTest { + + private static final String formatString = "%s: %s (%s)"; + + private ByteArrayOutputStream infoStream; + private ByteArrayOutputStream warnStream; + private ByteArrayOutputStream errorStream; + private DistributingLogger logger; + private StreamLogger infoLogger; + private StreamLogger warnLogger; + private StreamLogger errorLogger; + + @BeforeEach + public void setUp() { + infoStream = new ByteArrayOutputStream(); + warnStream = new ByteArrayOutputStream(); + errorStream = new ByteArrayOutputStream(); + + infoLogger = new StreamLogger(infoStream); + warnLogger = new StreamLogger(warnStream); + errorLogger = new StreamLogger(errorStream); + + logger = new DistributingLogger(errorLogger, warnLogger, infoLogger); + } + + @Test + @DisplayName("Log to INFO") + public void testLogToInfo() { + infoLogger.setFormatString(formatString); + logger.log(ILogger.INFO, "Dette er en info-melding.", null); + assertEquals(String.format(formatString, ILogger.INFO, "Dette er en info-melding.", null), + infoStream.toString().trim(), "Test the format of the info message after logging"); + assertEquals("", warnStream.toString(), + "Test the warning stream after logging an info message"); + assertEquals("", errorStream.toString(), + "Test the error stream after logging an info message"); + } + + @Test + @DisplayName("Log to WARNING") + public void testLogToWarn() { + warnLogger.setFormatString(formatString); + logger.log(ILogger.WARNING, "Dette er en advarsel.", null); + assertEquals(String.format(formatString, ILogger.WARNING, "Dette er en advarsel.", null), + warnStream.toString().trim(), + "Test the format of the warning message after logging"); + assertEquals("", infoStream.toString(), + "Test the info stream after logging a warning message"); + assertEquals("", errorStream.toString(), + "Test the error stream after logging a warning message"); + } + + @Test + @DisplayName("Log to ERROR") + public void testLogToError() { + Exception exception = new IllegalStateException(); + errorLogger.setFormatString(formatString); + logger.log(ILogger.ERROR, "Dette er en feilmelding.", exception); + assertEquals( + String.format(formatString, ILogger.ERROR, "Dette er en feilmelding.", exception), + errorStream.toString().trim(), + "Test the format of the error message after logging"); + assertEquals("", warnStream.toString(), + "Test the warning stream after logging an error message"); + assertEquals("", infoStream.toString(), + "Test the info stream after logging an error message"); + } + + @Test + @DisplayName("Change info logger") + public void testChangeInfoLogger() { + ByteArrayOutputStream newInfoStream = new ByteArrayOutputStream(); + StreamLogger newInfoLogger = new StreamLogger(newInfoStream); + + infoLogger.setFormatString(formatString); + logger.log(ILogger.INFO, "Dette er en info-melding.", null); + assertEquals(String.format(formatString, ILogger.INFO, "Dette er en info-melding.", null), + infoStream.toString().trim(), "Test the format of the info message after logging"); + + newInfoLogger.setFormatString(formatString); + logger.setLogger(ILogger.INFO, newInfoLogger); + logger.log(ILogger.INFO, "Dette er den andre info-meldingen.", null); + assertEquals(String.format(formatString, ILogger.INFO, "Dette er en info-melding.", null), + infoStream.toString().trim(), + "Test the first info stream after switching the info logger and logging another info message"); + assertEquals( + String.format(formatString, ILogger.INFO, "Dette er den andre info-meldingen.", + null), + newInfoStream.toString().trim(), + "Test the second info stream after switching the info logger and logging a new info message"); + } +} diff --git a/src/test/java/oving6/logger/FilteringLoggerTest.java b/src/test/java/oving6/logger/FilteringLoggerTest.java new file mode 100644 index 0000000..314fd7e --- /dev/null +++ b/src/test/java/oving6/logger/FilteringLoggerTest.java @@ -0,0 +1,86 @@ +package oving6.logger; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import java.io.ByteArrayOutputStream; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class FilteringLoggerTest { + + private ByteArrayOutputStream stream; + private StreamLogger subLogger; + + @BeforeEach + public void setUp() { + stream = new ByteArrayOutputStream(); + subLogger = new StreamLogger(stream); + } + + @Test + @DisplayName("Create logger without severities") + public void testFilteringLoggerNoSeverities() { + FilteringLogger logger = new FilteringLogger(subLogger); + assertFalse(logger.isLogging(ILogger.INFO), + "Test logger without severity for info-logging"); + assertFalse(logger.isLogging(ILogger.WARNING), + "Test logger without severity for warning-logging"); + assertFalse(logger.isLogging(ILogger.ERROR), + "Test logger without severity for error-logging"); + } + + @Test + @DisplayName("Create logger with error and info") + public void testFilteringLoggerErrorAndInfo() { + FilteringLogger logger = new FilteringLogger(subLogger, ILogger.ERROR, ILogger.INFO); + assertTrue(logger.isLogging(ILogger.INFO), "Test error and info logger for info-logging"); + assertFalse(logger.isLogging(ILogger.WARNING), + "Test error and info logger for warning-logging"); + assertTrue(logger.isLogging(ILogger.ERROR), "Test error and info logger for error-logging"); + } + + @Test + @DisplayName("Create logger with warning, set error") + public void testFilteringLoggerWarningSetIsLoggingError() { + FilteringLogger logger = new FilteringLogger(subLogger, ILogger.WARNING); + assertFalse(logger.isLogging(ILogger.INFO), "Test warning logger for info-logging"); + assertTrue(logger.isLogging(ILogger.WARNING), "Test warning logger for warning-logging"); + assertFalse(logger.isLogging(ILogger.ERROR), "Test warning logger for error-logging"); + + logger.setIsLogging(ILogger.ERROR, true); + assertFalse(logger.isLogging(ILogger.INFO), + "Set error-logging for warning logger and test for info-logging"); + assertTrue(logger.isLogging(ILogger.WARNING), + "Set error-logging for warning logger and test for warning-logging"); + assertTrue(logger.isLogging(ILogger.ERROR), + "Set error-logging for warning logger and test for error-logging"); + } + + @Test + @DisplayName("Logger with severity ERROR") + public void testErrorLogging() { + IllegalStateException exception = new IllegalStateException(); + FilteringLogger logger = new FilteringLogger(subLogger, ILogger.ERROR); + String formatString = "%s: %s (%s)"; + + subLogger.setFormatString(formatString); + logger.log(ILogger.ERROR, "Noe er feil!", exception); + assertEquals(String.format(formatString, ILogger.ERROR, "Noe er feil!", exception), + stream.toString().trim(), "Test the format of error message after logging"); + } + + @Test + @DisplayName("Logger with severity INFO in ERROR logger") + public void testInfoToErrorLogger() { + IllegalStateException exception = new IllegalStateException(); + FilteringLogger logger = new FilteringLogger(subLogger, ILogger.ERROR); + String formatString = "%s: %s (%s)"; + + subLogger.setFormatString(formatString); + logger.log(ILogger.INFO, "Noe er feil!", exception); + assertEquals("", stream.toString(), + "Test the stream after logging info message in error logger"); + } +} diff --git a/src/test/java/oving6/logger/StreamLoggerTest.java b/src/test/java/oving6/logger/StreamLoggerTest.java new file mode 100644 index 0000000..c6f6155 --- /dev/null +++ b/src/test/java/oving6/logger/StreamLoggerTest.java @@ -0,0 +1,49 @@ +package oving6.logger; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import java.io.ByteArrayOutputStream; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class StreamLoggerTest { + + private static final String formatString = "%s: %s (%s)"; + private static final String melding = "En melding ble logget!"; + + private ByteArrayOutputStream stream; + private StreamLogger logger; + + @BeforeEach + public void setUp() { + stream = new ByteArrayOutputStream(); + logger = new StreamLogger(stream); + } + + @Test + @DisplayName("Logs info message") + public void testLog() { + logger.log(ILogger.INFO, melding, null); + assertTrue(stream.toString().contains(melding), + "Test that the stream contains the message after it has been logged"); + assertTrue(stream.toString().contains(ILogger.INFO), + "Test that the stream contains a message of type info after it has been logged"); + } + + @Test + @DisplayName("Logs exception") + public void testLogException() { + assertThrows(IllegalArgumentException.class, () -> { + logger.setFormatString(null); + }, "Test that IllegalArgumentException is thrown when the format is null"); + + IllegalStateException exception = new IllegalStateException(); + logger.setFormatString(formatString); + logger.log(ILogger.INFO, melding, exception); + assertEquals(String.format(formatString, ILogger.INFO, melding, exception), + stream.toString().trim(), + "Test the format of the message that was logged with an exception"); + } +} diff --git a/src/test/java/oving6/office/ClerkTest.java b/src/test/java/oving6/office/ClerkTest.java new file mode 100644 index 0000000..97cc747 --- /dev/null +++ b/src/test/java/oving6/office/ClerkTest.java @@ -0,0 +1,77 @@ +package oving6.office; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class ClerkTest { + + private Clerk clerk; + private Printer printer; + + @BeforeEach + public void setUp() { + printer = new Printer(); + clerk = new Clerk(printer); + } + + @Test + @DisplayName("Perform calculations") + public void testDoCalculations() { + assertEquals(0, clerk.getTaskCount(), + "Testing the initialization of the number of tasks performed"); + + double calc1 = clerk.doCalculations((x, y) -> x + y, 2.0, 3.5); + assertEquals(5.5, calc1, "Testing calculation with addition: 2.0 + 3.5"); + assertEquals(1, clerk.getTaskCount(), "Testing the number of tasks after 1 calculation"); + + double calc2 = clerk.doCalculations((x, y) -> x / y, 2.0, 4.0); + assertEquals(0.5, calc2, "Testing calculation with division: 2.0/4.0"); + assertEquals(2, clerk.getTaskCount(), "Testing the number of tasks after two calculations"); + } + + @Test + @DisplayName("Print documents") + public void testPrintDocuments() { + assertEquals(0, clerk.getTaskCount(), + "Testing the initialization of the number of tasks performed"); + + // Print a document + clerk.printDocument("document1"); + assertTrue(printer.getPrintHistory(clerk).contains("document1"), + "Testing if the document that was printed was added to the printer history"); + assertEquals(1, clerk.getTaskCount(), "Testing the number of tasks after 1 print"); + assertEquals(1, printer.getPrintHistory(clerk).size(), + "Testing the number of prints in the history after 1 print"); + + // Print another document + clerk.printDocument("document2"); + assertTrue(printer.getPrintHistory(clerk).contains("document2"), + "Testing if document 2 that was printed was added to the printer history"); + assertEquals(2, clerk.getTaskCount(), "Testing the number of tasks after 2 prints"); + assertEquals(2, printer.getPrintHistory(clerk).size(), + "Testing the number of prints in the history after 2 prints"); + } + + @Test + @DisplayName("Retrieve task count") + public void testTaskCount() { + assertEquals(0, clerk.getTaskCount(), + "Testing the initialization of the number of tasks performed"); + + clerk.printDocument("document1"); + assertEquals(1, clerk.getTaskCount(), "Testing the number of tasks after 1 print"); + + clerk.doCalculations((x, y) -> x + y, 2.0, 3.5); + assertEquals(2, clerk.getTaskCount(), + "Testing the number of tasks after 1 print and 1 calculation"); + } + + @Test + @DisplayName("Retrieve resource count") + public void testResourceCount() { + assertEquals(1, clerk.getResourceCount(), "Testing the number of resources for one worker"); + } +} diff --git a/src/test/java/oving6/office/ManagerTest.java b/src/test/java/oving6/office/ManagerTest.java new file mode 100644 index 0000000..710a220 --- /dev/null +++ b/src/test/java/oving6/office/ManagerTest.java @@ -0,0 +1,123 @@ +package oving6.office; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import java.util.ArrayList; +import java.util.List; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class ManagerTest { + + private Clerk clerk; + private Manager manager; + private Printer printer; + + @BeforeEach + public void setUp() { + printer = new Printer(); + clerk = new Clerk(printer); + manager = new Manager(List.of(clerk)); + } + + @Test + @DisplayName("Create Manager with empty Employee collection") + public void testNoEmployeesConstructor() { + assertThrows(IllegalArgumentException.class, () -> { + new Manager(new ArrayList()); + }, "Test creating a new Manager with an empty Employee collection"); + } + + @Test + @DisplayName("Check getResourceCount without middle managers") + public void testResourceCount() { + assertEquals(2, manager.getResourceCount(), + "Test the number of resources for a manager without middle managers"); + } + + @Test + @DisplayName("Check getResourceCount with middle managers") + public void testMiddleManagementResourceCount() { + Manager topManager = new Manager(List.of(manager)); + assertEquals(3, topManager.getResourceCount(), + "Test the number of resources with middle managers"); + } + + @Test + @DisplayName("Perform a calculation") + public void testDoCalculations() { + assertEquals(0, clerk.getTaskCount(), + "Test the initialization of the number of tasks for a worker"); + assertEquals(0, manager.getTaskCount(), + "Test the initialization of the number of tasks for a manager"); + + double calc = manager.doCalculations((x, y) -> x + y, 2.0, 3.5); + assertEquals(5.5, calc, "Test calculation with addition: 2.0 + 3.5"); + + assertEquals(1, clerk.getTaskCount(), + "Test the number of tasks for a worker after 1 calculation"); + assertEquals(1, manager.getTaskCount(), + "Test the number of tasks for a manager after 1 calculation"); + } + + @Test + @DisplayName("Print a document") + public void testPrintDocuments() { + manager.printDocument("document1"); + assertTrue(printer.getPrintHistory(clerk).contains("document1"), + "Test that the printer history contains the document that was printed"); + assertEquals(1, clerk.getTaskCount(), + "Test the number of tasks for a worker after 1 print"); + assertEquals(1, manager.getTaskCount(), + "Test the number of tasks for a manager after 1 print"); + assertEquals(1, printer.getPrintHistory(clerk).size(), + "Test the number of prints in the printer history after 1 print"); + } + + @Test + @DisplayName("Check task count") + public void testTaskCount() { + assertEquals(0, clerk.getTaskCount(), + "Test the initialization of the number of tasks for a worker"); + assertEquals(0, manager.getTaskCount(), + "Test the initialization of the number of tasks for a manager"); + + manager.printDocument("document"); + assertEquals(1, clerk.getTaskCount(), + "Test the number of tasks for a worker after 1 print"); + assertEquals(1, manager.getTaskCount(), + "Test the number of tasks for a manager after 1 print"); + + manager.doCalculations((x, y) -> x + y, 2.0, 3.5); + assertEquals(2, clerk.getTaskCount(), + "Test the number of tasks for a worker after 1 print and 1 calculation"); + assertEquals(2, manager.getTaskCount(), + "Test the number of tasks for a manager after 1 print and 1 calculation"); + } + + @Test + @DisplayName("Multiple clerks") + public void testSeveralClerks() { + Clerk secondClerk = new Clerk(printer); + Manager multiManager = new Manager(List.of(clerk, secondClerk)); + assertEquals(1, clerk.getResourceCount(), "Test the number of resources for worker #1"); + assertEquals(3, multiManager.getResourceCount(), + "Test the number of resources for a manager with two workers"); + assertEquals(1, secondClerk.getResourceCount(), "Test the resources for worker #2"); + + multiManager.printDocument("document"); + assertEquals(1, multiManager.getTaskCount(), + "Test the number of tasks for a manager after 1 print"); + assertTrue( + (clerk.getTaskCount() == 1 || secondClerk.getTaskCount() == 1) + && (clerk.getTaskCount() == 0 || secondClerk.getTaskCount() == 0), + "Test that only one of the workers has performed a task after 1 print"); + + double calc = multiManager.doCalculations((x, y) -> x + y, 2.0, 3.5); + assertEquals(5.5, calc, "Test calculation with addition: 2.0 + 3.5"); + assertEquals(2, multiManager.getTaskCount(), + "Test the number of tasks for a manager after 1 print and 1 calculation"); + } +} diff --git a/src/test/java/oving6/office/PrinterTest.java b/src/test/java/oving6/office/PrinterTest.java new file mode 100644 index 0000000..d119c83 --- /dev/null +++ b/src/test/java/oving6/office/PrinterTest.java @@ -0,0 +1,97 @@ +package oving6.office; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class PrinterTest { + + private Clerk clerk1; + private Clerk clerk2; + private Printer printer; + + @BeforeEach + public void setUp() { + printer = new Printer(); + clerk1 = new Clerk(printer); + clerk2 = new Clerk(printer); + } + + @Test + @DisplayName("Testing printing") + public void testPrintDocument() { + assertThrows(IllegalArgumentException.class, () -> { + printer.printDocument(null, clerk1); + }, "Test that an exception is thrown when the document is null"); + + assertThrows(IllegalArgumentException.class, () -> { + printer.printDocument("document1", null); + }, "Test that an exception is thrown when the worker is null"); + } + + @Test + @DisplayName("Only one printer printing") + public void testPrintSingleClerk() { + assertEquals(0, printer.getPrintHistory(clerk1).size(), + "Test initialization of the number of prints in the printer history"); + + printer.printDocument("document1", clerk1); + assertEquals(1, printer.getPrintHistory(clerk1).size(), + "Test the number of prints in the history after 1 print"); + assertTrue(printer.getPrintHistory(clerk1).contains("document1"), + "Test that the document that was printed is in the history"); + + printer.printDocument("document2", clerk1); + assertEquals(2, printer.getPrintHistory(clerk1).size(), + "Test the number of prints in the history after 2 prints"); + assertTrue(printer.getPrintHistory(clerk1).contains("document2"), + "Test that document 2 that was printed is in the history"); + } + + @Test + @DisplayName("Multiple printers printing") + public void testPrintMultipleClerks() { + assertEquals(0, printer.getPrintHistory(clerk1).size(), + "Test initialization of printer history for worker1"); + assertEquals(0, printer.getPrintHistory(clerk2).size(), + "Test initialization of printer history for worker2"); + + // Print document for Clerk 1 + printer.printDocument("document1", clerk1); + assertEquals(1, printer.getPrintHistory(clerk1).size(), + "Test the number of prints in the history for worker1 after printing 1 document"); + assertTrue(printer.getPrintHistory(clerk1).contains("document1"), + "Test that the history of worker1 contains the document that was printed"); + assertEquals(0, printer.getPrintHistory(clerk2).size(), + "Test the number of prints in the history for worker2 after worker1 has printed " + + "a document"); + + // Print document for Clerk 2 + printer.printDocument("document2", clerk2); + assertEquals(1, printer.getPrintHistory(clerk2).size(), + "Test the number of prints in the history for worker2 after printing a document"); + assertTrue(printer.getPrintHistory(clerk2).contains("document2"), + "Test that the history of worker2 contains the document that was printed"); + assertEquals(1, printer.getPrintHistory(clerk1).size(), + "Test the number of prints in the history for worker1 after both worker1 and " + + "worker2 have printed 1 document each"); + } + + @Test + @DisplayName("Modifying printer history is not allowed") + public void testPrintHistoryModification() { + printer.printDocument("document1", clerk1); + printer.printDocument("document2", clerk1); + assertEquals(2, printer.getPrintHistory(clerk1).size(), + "Test the number of prints in the history after 2 prints"); + + // Remove a document and check that the printer history remains unchanged + printer.getPrintHistory(clerk1).remove("document1"); + assertEquals(2, printer.getPrintHistory(clerk1).size(), + "Test the number of prints in the history after 2 prints and attempting to " + + "remove 1 of them"); + } +} diff --git a/src/test/java/oving6/stock/SmartStockTest.java b/src/test/java/oving6/stock/SmartStockTest.java new file mode 100644 index 0000000..1624f38 --- /dev/null +++ b/src/test/java/oving6/stock/SmartStockTest.java @@ -0,0 +1,124 @@ +package oving6.stock; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class SmartStockTest { + + private SmartStock stock; + private double oldPrice; + private double newPrice; + + // Used to check that listeners work + private double oldPriceListener; + private double newPriceListener; + + private void setPriceForListener(double oldPrice, double newPrice) { + oldPriceListener = oldPrice; + newPriceListener = newPrice; + } + + private void setPriceCheckListener(String contextMessage, double newPrice, + double expectedOldPrice, double expectedNewPrice) { + // Update the price + this.oldPrice = this.newPrice; + this.newPrice = newPrice; + stock.setPrice(newPrice); + + // Check that the listener has received the change + assertEquals(expectedOldPrice, this.oldPriceListener, + contextMessage + " -> Test old price for listener after updating price from " + + oldPrice + " to " + newPrice); + assertEquals(expectedNewPrice, this.newPriceListener, + contextMessage + " -> Test new price for listener after updating price from " + + oldPrice + " to " + newPrice); + } + + @BeforeEach + public void setUp() { + stock = new SmartStock("APPL", 110.0); + } + + @Test + @DisplayName("Test constructor") + public void testConstructor() { + assertEquals("APPL", stock.getTicker(), "Test ticker"); + assertEquals(110.0, stock.getPrice(), "Test stock price"); + } + + @Test + @DisplayName("Negative stock price throws error") + public void testSetNegativePrice() { + assertThrows(IllegalArgumentException.class, () -> { + stock.setPrice(-20.0); + }, "Test setting negative stock price"); + } + + @Test + @DisplayName("Stock price equal to zero throws error") + public void testSetZeroPrice() { + assertThrows(IllegalArgumentException.class, () -> { + stock.setPrice(0); + }, "Test setting stock price equal to zero"); + } + + @Test + @DisplayName("Add listener") + public void testStockListener() { + StockListener listener = (Stock stock, double oldPrice, double newPrice) -> this + .setPriceForListener(oldPrice, newPrice); + stock.addStockListener(listener); + + this.setPriceCheckListener("Listener on all", 118.0, 110.0, 118.0); + assertEquals(118.0, stock.getPrice(), "Test stock price after updating price"); + + this.setPriceCheckListener("Listener on all", 121.0, 118.0, 121.0); + assertEquals(121.0, stock.getPrice(), "Test stock price after updating price twice"); + } + + @Test + @DisplayName("Test listener on price interval") + public void testIntervalListener() { + StockListener listener = (Stock stock, double oldPrice, double newPrice) -> this + .setPriceForListener(oldPrice, newPrice); + stock.addStockListener(listener, 110.0, 120.0); + + // Price within the interval does not notify the listener + this.setPriceCheckListener("Listener on price interval", 118.0, 0.0, 0.0); + assertEquals(118.0, stock.getPrice(), "Test stock price after updating price"); + + // Price outside the interval notifies the listener + this.setPriceCheckListener("Listener on price interval", 121.0, 118.0, 121.0); + assertEquals(121.0, stock.getPrice(), + "Test stock price after updating price for the second time"); + + // Price within the interval does not notify the listener (expected values remain unchanged) + this.setPriceCheckListener("Listener on price interval", 115.0, 118.0, 121.0); + assertEquals(115.0, stock.getPrice(), + "Test stock price after updating price for the third time"); + } + + @Test + @DisplayName("Test listener on difference") + public void testDifferenceListener() { + StockListener listener = (Stock stock, double oldPrice, double newPrice) -> this + .setPriceForListener(oldPrice, newPrice); + stock.addStockListener(listener, 10.0); + + // Price with a difference less than 10 does not notify the listener + this.setPriceCheckListener("Listener on difference", 118.0, 0.0, 0.0); + assertEquals(118.0, stock.getPrice()); + + // Price with a difference greater than 10 notifies the listener + this.setPriceCheckListener("Listener on difference", 121.0, 110.0, 121.0); + assertEquals(121.0, stock.getPrice()); + + // Price with a difference less than 10 does not notify the listener (expected values remain + // unchanged) + this.setPriceCheckListener("Listener on difference", 115.0, 110.0, 121.0); + assertEquals(115.0, stock.getPrice()); + } +} diff --git a/src/test/java/oving6/stock/StockIndexTest.java b/src/test/java/oving6/stock/StockIndexTest.java new file mode 100644 index 0000000..4ec9564 --- /dev/null +++ b/src/test/java/oving6/stock/StockIndexTest.java @@ -0,0 +1,116 @@ +package oving6.stock; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class StockIndexTest { + + private static final double applePrice = 534.98; + private static final double facebookPrice = 67.80; + private static final double epsilon = 0.000001; + + private Stock apple; + private Stock facebook; + private StockIndex index0; + private StockIndex index1; + private StockIndex indexN; + + @BeforeEach + public void setUp() { + apple = new Stock("AAPL", applePrice); + facebook = new Stock("FB", facebookPrice); + + index0 = new StockIndex("OSEBX"); + index1 = new StockIndex("OSEBX", facebook); + indexN = new StockIndex("OSEBX", facebook, apple); + } + + @Test + @DisplayName("Test constructor") + public void testConstructor() { + assertEquals(0.0, index0.getIndex(), epsilon, "Test the value of the index with 0 stocks"); + assertEquals(facebookPrice, index1.getIndex(), epsilon, + "Test the value of the index with 1 stock"); + assertEquals(facebookPrice + applePrice, indexN.getIndex(), epsilon, + "Test the value of the index with 2 stocks"); + + assertThrows(IllegalArgumentException.class, () -> { + new StockIndex(null); + }, "Test constructor with null name"); + + assertThrows(IllegalArgumentException.class, () -> { + new StockIndex("OSEBX", apple, null, facebook); + }, "Test constructor with null stocks"); + } + + @Test + @DisplayName("Add stock") + public void testAddStock() { + assertEquals(0.0, index0.getIndex(), epsilon, "Test the value of the index with 0 stocks"); + + index0.addStock(facebook); + assertEquals(facebookPrice, index0.getIndex(), epsilon, + "Test the value of the index after adding 1 stock"); + + assertThrows(IllegalArgumentException.class, () -> { + index0.addStock(null); + }, "Test adding null stock"); + } + + @Test + @DisplayName("Add the same stock twice") + public void testAddDuplicateStocks() { + assertEquals(0.0, index0.getIndex(), epsilon, "Test the value of the index with 0 stocks"); + + index0.addStock(facebook); + assertEquals(facebookPrice, index0.getIndex(), epsilon, + "Test the value of the index after adding 1 stock"); + + index0.addStock(facebook); + assertEquals(facebookPrice, index0.getIndex(), epsilon, + "Test the value of the index after adding a stock that is already in the index"); + } + + @Test + @DisplayName("Remove stock") + public void testRemoveStock() { + assertEquals(facebookPrice + applePrice, indexN.getIndex(), epsilon, + "Test the value of the index with 2 stocks"); + + indexN.removeStock(apple); + assertEquals(facebookPrice, indexN.getIndex(), epsilon, + "Test the value of the index after removing 1 stock"); + + indexN.removeStock(apple); + assertEquals(facebookPrice, indexN.getIndex(), epsilon, + "Test the value of the index after removing 1 stock that was not in the index"); + + indexN.removeStock(facebook); + assertEquals(0.0, indexN.getIndex(), epsilon, + "Test the value of the index after removing the only stock in the index"); + } + + @Test + @DisplayName("Change stock price") + public void testChangePrice() { + double facebookPrice2 = 67.0; + double facebookPrice3 = 69.0; + + facebook.setPrice(facebookPrice2); + assertEquals(facebookPrice2, index1.getIndex(), epsilon, + "Test the value of the index with 1 stock after changing the stock price"); + assertEquals(facebookPrice2 + applePrice, indexN.getIndex(), epsilon, + "Test the value of the index with 2 stocks after changing the price of 1 stock"); + + facebook.setPrice(facebookPrice3); + assertEquals(facebookPrice3, index1.getIndex(), epsilon, + "Test the value of the index with 1 stock after changing the stock price a " + + "second time"); + assertEquals(facebookPrice3 + applePrice, indexN.getIndex(), epsilon, + "Test the value of the index with 2 stocks after changing the price of 1 stock a " + + "second time"); + } +} diff --git a/src/test/java/oving6/stock/StockTest.java b/src/test/java/oving6/stock/StockTest.java new file mode 100644 index 0000000..2be7f3a --- /dev/null +++ b/src/test/java/oving6/stock/StockTest.java @@ -0,0 +1,89 @@ +package oving6.stock; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +public class StockTest { + + private Stock stock; + private double oldPrice; + private double newPrice; + + // Used to check that listeners work + private double oldPriceListener; + private double newPriceListener; + + private void setPriceForListener(double oldPrice, double newPrice) { + oldPriceListener = oldPrice; + newPriceListener = newPrice; + } + + private void setPriceCheckListener(double newPrice, double expectedOldPrice, + double expectedNewPrice) { + // Update the price + this.oldPrice = this.newPrice; + this.newPrice = newPrice; + stock.setPrice(newPrice); + + // Check that the listener has received the change + assertEquals(expectedOldPrice, this.oldPriceListener, + "Test old price for listener after updating price from " + oldPrice + " to " + + newPrice); + assertEquals(expectedNewPrice, this.newPriceListener, + "Test new price for listener after updating price from " + oldPrice + " to " + + newPrice); + } + + @BeforeEach + public void setUp() { + stock = new Stock("APPL", 110.0); + oldPrice = 0.0; + newPrice = 110.0; + oldPriceListener = 0.0; + newPriceListener = 0.0; + } + + @Test + @DisplayName("Test constructor") + public void testConstructor() { + assertEquals("APPL", stock.getTicker(), "Test ticker"); + assertEquals(110.0, stock.getPrice(), "Test stock price"); + + assertThrows(IllegalArgumentException.class, () -> { + new Stock(null, 110.0); + }, "Test constructor with null ticker"); + } + + @Test + @DisplayName("Negative stock price throws error") + public void testSetNegativePrice() { + assertThrows(IllegalArgumentException.class, () -> { + stock.setPrice(-20.0); + }, "Test setting negative stock price"); + } + + @Test + @DisplayName("Stock price equal to zero throws error") + public void testSetZeroPrice() { + assertThrows(IllegalArgumentException.class, () -> { + stock.setPrice(0); + }, "Test setting stock price equal to zero"); + } + + @Test + @DisplayName("Add listener") + public void testStockListener() { + StockListener listener = (Stock stock, double oldPrice, double newPrice) -> this + .setPriceForListener(oldPrice, newPrice); + stock.addStockListener(listener); + + this.setPriceCheckListener(118.0, 110.0, 118.0); + assertEquals(118.0, stock.getPrice(), "Test stock price after updating price"); + + this.setPriceCheckListener(121.0, 118.0, 121.0); + assertEquals(121.0, stock.getPrice(), "Test stock price after updating price twice"); + } +}