diff --git a/.idea/Robot_Factory_PR.iml b/.idea/Robot_Factory_PR.iml index 7345876..9247d32 100644 --- a/.idea/Robot_Factory_PR.iml +++ b/.idea/Robot_Factory_PR.iml @@ -3,7 +3,8 @@ - + + diff --git a/.idea/misc.xml b/.idea/misc.xml index d15472f..2be7c15 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/.idea/.gitignore b/out/production/Robot_Factory_PR/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/out/production/Robot_Factory_PR/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/out/production/Robot_Factory_PR/.idea/Robot_Factory_PR.iml b/out/production/Robot_Factory_PR/.idea/Robot_Factory_PR.iml deleted file mode 100644 index 7345876..0000000 --- a/out/production/Robot_Factory_PR/.idea/Robot_Factory_PR.iml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/.idea/misc.xml b/out/production/Robot_Factory_PR/.idea/misc.xml deleted file mode 100644 index b789a5e..0000000 --- a/out/production/Robot_Factory_PR/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/.idea/modules.xml b/out/production/Robot_Factory_PR/.idea/modules.xml deleted file mode 100644 index 6e7f4ca..0000000 --- a/out/production/Robot_Factory_PR/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/.idea/uiDesigner.xml b/out/production/Robot_Factory_PR/.idea/uiDesigner.xml deleted file mode 100644 index 2b63946..0000000 --- a/out/production/Robot_Factory_PR/.idea/uiDesigner.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/.idea/vcs.xml b/out/production/Robot_Factory_PR/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/out/production/Robot_Factory_PR/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/README.md b/out/production/Robot_Factory_PR/README.md deleted file mode 100644 index 946006d..0000000 --- a/out/production/Robot_Factory_PR/README.md +++ /dev/null @@ -1,382 +0,0 @@ -# Robot Factory for PR2 - -* [Teilnehmer](#teilnehmer) - -* [Overview](#overview) - * [Packages](#packages) - * [Sidefiles](#sidefiles) -* [Aufgabe](#aufgabe) - - -## Teilnehmer: - -- Philipp Kotte Matr. : 2211945; -- Cedric Hermann Matr. : 2210943; - -# Overview - -## Packages -* ### [Domain](#domain-1) - * [R2D2](#-classe-r2d2-) - * [R2D2Test](#-testclasse-r2d2test-) - * [C3P0](#-classe-c3po-) - * [C3POTest](#-testclasse-c3potest-) - * [RobotBasics](#-class-robotbasics-) -* ### [Facade](#facade-1) - * [Factrory](#-classe-factory-) -* ### [Infrastructure](#infratructure-1) - * [Persistenz](#-classe-persistenz-) -* ### [utility](#robot-1) - * ### [utility](#exceptions-1) - * [RobotException](#-class-robotexception-) - * [RobotIllegalStateException](#-class-robotillegalstateexception-) - * [RobotMagicValueException](#-class-robotmagicvalueexception-) - * ### [interfaces](#interfaces-1) - * [Robot](#-interface-robot-) - * [RobotControl](#-interface-robotcontroll-) - * [RobotInstructions](#-interface-robotinstructions-) - * [Sorting] vorläufig -* ### [UI](#ui-1) - * [UI](#-class-ui-) - -## Sidefiles -* [Main](#-classe-main-) -* [makefile](#-makefile-for-Git-updates-) - -# TO-Dos: - -* Sortier Algorythem C3PO, R2D2 (mit Ausgabe) --[done]-- - -* Bei Erstellung eines Roboters wird einne SerienNr erstellt --[done]-- - -* Wichtige getter for Robots (getName) --[done]-- - -* Exception Classes (Throwable einfügen) --[done]-- - -* RobotFactory, die mit enum(RobotType) Objekt von R2D2 und C3PO erstellen kann --[abgewandelt für Exceptions]-- - -* Persistenz einrichten - -* funktionalitäten der UI zusammenfassen - -* funtkionalitäten der UI implementieren - -* Nexus6(Singleton) implementieren, kann nichts (Illegal-State) - -* JUnit5 Tests - -* Wie fügt man weitere Roboter hinzu erklärung in einer Text Datei - - -## Domain -

Class R2D2

- -### Variables: -`--not set yet--` -___ - -### Methods: -`public R2D2():R2D2` - -

-TestClass R2D2Test -

- -### Variables: - -`public int id` - -`public String name` - -`public R2D2 Herbert` -___ - -### Methods: - -`@BeforeEach` -`setup():void` - -`@Test` - -`getId():void` - -`getName():void` - -`triggerPowerSwitch():void` - -`iPowerOn():void` - - - -

-Class C3PO -

- - -### Variables: -`--not set yet--` -___ - -### Methods: -`//construtor` - -`public C3PO(): C3PO` - -

-TestClass C3PO -

- -### Variables: -`public int id` - -`public String name` - -`public C3PO Herbert` -___ - -### Methods: -`@BeforeEach` -`setup():void` - -`@Test` - -`getId():void` - -`getName():void` - -`triggerPowerSwitch():void` - -`iPowerOn():void` - - - -

-Class RobotBasics -

- - -### Variables: -`private int id` - -`private String name` - -`private boolean power` - -___ - -### Methods: -`public RobotBasics():RobotBasics` - -`public getId():int` - -`public getName():String` - -`public triggerPowerSwitch():void` - -`public ìsPowerOn():boolean` - -`public speak():String` - -`public think():int[]` - -## facade - -

Class Factory

- -### Variables: -`--not set yet--` -___ - -### Methods: -`--not set yet--` - -## Infrastructure - -

Class Persistenz

- -### Variables: -`--not set yet--` -___ - -### Methods: -`existsSavedData():boolean` - -`saveFactoryData():void -> throws` - -`loadFactoryData():Object -> throws` - -## utility - -### utility - -

-Class RobotException -

- -#### Methods: -`public RobotException():Exception` - -

Class RobotIllegalStateException

- -#### Methods: -`public RobotIllegalStateException():RobotException` - -

Class RobotMagicValueException

- -#### Methods: -`public RobotMagicValueException():RobotException` - -### interfaces - -

-Interface Robot

- -#### Methods: -`--not set yet--` - - - -

-Interface RobotControl -

- -### Methods: -`--not set yet--` - -

-Interface RobotInstructions

- -### Methods: -`--not set yet--` - - -## UI - -

Class UI

- -### Variables: -`--not set yet--` -___ - -### Methods: -`--not set yet--` - - - - -

Class Main

- -### Variables: -`--not set yet--` -___ - -### Methods: -`--not set yet--` - -

makefile for Git updates

- -### Variables: -`--not set yet--` -___ - -### Methods: - -`update_readme:` - -`update_make:` - -`update_all:` - - - -## Aufgabe - -PR2-Aufgabe Roboterfabrik -(ursprüngliche Autoren: Sebastian Tschirpke und Steffen Hennhöfer; mit Erweiterungen von Oliver Hummel) -Nach Abschluss Ihres Bachelorstudiums sind Sie auf Jobsuche. In einem Zeitungsartikel -lesen Sie, dass die Firma ASDF123-Roboter AG, junge und kreative Mitarbeiter für den -Aufbau einer Roboterfabrik sucht. Von der Stellenausschreibung ganz hingerissen, machen -Sie sich sofort auf den Weg und reichen Ihre Bewerbungsunterlagen ein. Tatsächlich -meldet sich die Firma kurz darauf bei Ihnen und lädt Sie zu einem Bewerbungsgespräch ein. -Für Sie läuft scheinbar alles perfekt und Sie können es kaum erwarten Ihren zukünftigen -Arbeitgeber von Ihren Qualitäten zu überzeugen. Jedoch zeigt dieser keinerlei Interesse an -Ihren Zeugnissen, sondern knüpft vielmehr Ihre Einstellung an die Lösung folgender Aufgabe -für die Sie Klassen auf der Domänenebene implementieren und testen sollen: -Die Firma möchte eine neue Roboterfabrik aufbauen und benötigt dazu ein Softwaremodell, -welches den Produktionsprozess und die Roboter simuliert. Es handelt sich nur um eine -einzige Fabrik mit einer Fabrikmethode, die flexibel auf Bestellungen der Kunden reagieren -kann. Die Roboterfabrik bietet ihren Kunden zunächst zwei verschiedene Modelle an, beide -aus der Star-Wars-Produktreihe: die Modelle heißen C3PO und R2D2 und sollen gemeinsam -genutzte Funktionalität von einer Superklasse erben. Alle Roboter haben eine einfache -Schnittstelle Robot, mit der sie gesteuert werden können. Diese Schnittstelle besteht insgesamt -aus den folgenden Dateien: - - - -* Robot.java -* RobotControl.java -* RobotInstructions.java - -Die Fabrik ist von ihren Fertigungsanlagen her so konzipiert, dass jeder Roboter einzeln -gefertigt wird. Übergeben wird lediglich das gewünschte Roboter-Modell und der Name und -schon erhält der Kunde den von ihm gewünschten Roboter (also in der Simulation eine Instanz). -Der Unterschied zwischen den angebotenen Modellen liegt in der Ausführung der Befehle aus -dem Interface RobotInstructions. Während R2D2 Arrays immer aufsteigend sortiert und bei der -Umwandlung in ein Array den Inhalt durch Kommas trennt (z.B. 1, 2, 3, 4, 5, 6), sortiert C3PO -Arrays stets absteigend und wandelt deren Inhalt in einen String mit Semikolon als Trennzeichen -um (z.B. 6; 5; 4; 3; 2; 1). R2D2 soll für die Sortierung der Daten einen selbst implementierten -SelectionSort-Algorithmus verwenden, C3PO InsertionSort. Die Zusammenstellung des Strings für -die Rückgabe soll in einer privaten Methode der Roboter- Basisklasse mit Hilfe eines Streams und -Lambda-Ausdrücken erfolgen. -Programmieren Sie zwei Klassen R2D2 und C3PO, die beide das Interface Robot implementieren. -Lesen Sie bitte sorgfältig die Dokumentation der Interfaces, damit Sie die beschriebene Semantik -in Ihrer Implementierung einhalten. Die Seriennummern der R2D2- Modelle bewegen sich im Bereich -von 0–9999, die der C3PO-Modelle von 10000–19999. Schreiben Sie ferner die in den Interfaces -referenzierten Klassen für die Ausnahmen. Sorgen Sie dafür, dass die Ausnahmen den Namen des -Roboters tragen, in dem sie entstanden sind und dass man diesen Namen über die Methode getRobotName() -wieder auslesen kann. -Auch für die Implementierung der Exceptions kann daher eine gemeinsame Superklasse hilfreich sein. -Entwickeln Sie eine Klasse RobotFactory mit deren Hilfe man Instanzen der beiden Roboter- Typen -erzeugen kann. Eine Enumeration mit dem Namen RobotType dient dazu, bei der Erzeugung anzugeben, -ob man einen R2D2- oder einen C3PO-Roboter haben möchte. -Vergessen Sie nicht, dass jeder Roboter eine Seriennummer aus dem jeweiligen Bereich benötigt und -dass er bei der Erzeugung seinen unveränderlichen Namen bekommt. Verbergen Sie die Implementierung -der Roboter vor dem Verwender und erlauben Sie nur Zugriff auf die Factory, die Interfaces und -die Ausnahmen. Wählen Sie entsprechende Pakete gemäß ihrem Schema, um dies zu realisieren. -Zusätzlich zu den beiden produzierten Roboter-Modellen R2D2 und C3PO steht in der Firma noch ein -alter Nexus-6-Roboter mit dem Namen “Pris“ (Seriennummer 19281982)herum, der leider seit einer -Begegnung mit einem Blade-Runner irreparabel defekt ist und nicht eingeschaltet werden kann (man kann -den Schalter zwar drücken, dies hat aber keine Wirkung). Da es nur dieses eine Exemplar gibt, können -auch keine weiteren Nexus-6- Modelle hergestellt werden. Implementieren Sie daher den Nexus-6-Roboter -(Klassenname Nexus6) als Singleton. Beachten Sie, dass die speak- und think-Methoden nicht funktionieren -sollen, sondern grundsätzlich eine Ausnahme Robot"-Illegal"-State"-Exception werfen. -Schreiben Sie automatisierte JUnit-Tests mit denen Sie die korrekte Funktionsweise der Implementierungen -und der Factory-Klasse überprüfen. Denken Sie daran, auch die Ausnahmen zu testen. -Angenommen, Ihre Firma möchte eine weitere Produktlinie eröffnen und in Zukunft auch noch T1000-Roboter -herstellen, die natürlich auch das Robot-Interface implementieren: Welche Änderungen müssten Sie an Ihrem -Projekt durchführen? Sie brauchen keine Implementierung dafür zu erstellen, legen Sie dafür bitte eine -Textdatei in Ihr Projekt, in der Sie die notwendigen Erweiterungen und evtl. Änderungen kurz erläutern. -* Mit Ihrer Implementierung sollten folgende Begrifflichkeiten abgedeckt sein: - * Singleton-Pattern, - * Factory-Pattern, - * Exceptions, - * Interfaces, - * abstrakte Klassen, - * JUnit- Tests, - * Enumerationen, - * Sortieralgorithmen, - * Streams & Lambdas. -* Achten Sie bei Ihrer Implementierung auf die Konsistenz der Sprache (Englisch/Deutsch). -* Kommentieren Sie Ihre Methoden ausführlich mit Javadoc-Kommentaren, - * wie in den Interfaces gezeigt (googlen Sie ggf. nach weiteren Details dafür). -* Bei der Implementierung von Methoden aus den Interfaces, dürfen Sie mit @see... auf deren Javadocs verweisen und müssen die Dokumentation nicht duplizieren. -* Sie müssen kein UML-Diagramm anfertigen, können dies aber gerne tun. -* Testen Sie Ihre Implementierung möglichst umfangreich. Wir werden es auf jeden Fall tun. ! -* Nutzen Sie für die gemeinsame Arbeit an der Implementierung ein Git-Repository und nutzen Sie regelmäßig. -* Es müssen von allen Team-Mitgliedern jeweils mindestens fünf Commits mit substanziellem Inhalt auf den main-Branch gepusht werden. - - - -# Fragen an Hummel - -Was ist mit der Umwandlung von zahlen in arrays den inhalt mit Kommas getrennt gemeint? \ No newline at end of file diff --git a/out/production/Robot_Factory_PR/domain/C3PO.class b/out/production/Robot_Factory_PR/domain/C3PO.class new file mode 100644 index 0000000..3914b92 Binary files /dev/null and b/out/production/Robot_Factory_PR/domain/C3PO.class differ diff --git a/src/out/production/Robot_Factory_PR/domain/Factory.class b/out/production/Robot_Factory_PR/domain/Factory.class similarity index 88% rename from src/out/production/Robot_Factory_PR/domain/Factory.class rename to out/production/Robot_Factory_PR/domain/Factory.class index 4767b0a..55fb312 100644 Binary files a/src/out/production/Robot_Factory_PR/domain/Factory.class and b/out/production/Robot_Factory_PR/domain/Factory.class differ diff --git a/out/production/Robot_Factory_PR/domain/Nexus6.class b/out/production/Robot_Factory_PR/domain/Nexus6.class new file mode 100644 index 0000000..2b11119 Binary files /dev/null and b/out/production/Robot_Factory_PR/domain/Nexus6.class differ diff --git a/out/production/Robot_Factory_PR/domain/R2D2.class b/out/production/Robot_Factory_PR/domain/R2D2.class new file mode 100644 index 0000000..8d66d79 Binary files /dev/null and b/out/production/Robot_Factory_PR/domain/R2D2.class differ diff --git a/out/production/Robot_Factory_PR/domain/Robot.class b/out/production/Robot_Factory_PR/domain/Robot.class new file mode 100644 index 0000000..4a2269d Binary files /dev/null and b/out/production/Robot_Factory_PR/domain/Robot.class differ diff --git a/out/production/Robot_Factory_PR/domain/RobotType.class b/out/production/Robot_Factory_PR/domain/RobotType.class new file mode 100644 index 0000000..815b94b Binary files /dev/null and b/out/production/Robot_Factory_PR/domain/RobotType.class differ diff --git a/src/out/production/Robot_Factory_PR/facade/FactorySystem.class b/out/production/Robot_Factory_PR/facade/FactorySystem.class similarity index 88% rename from src/out/production/Robot_Factory_PR/facade/FactorySystem.class rename to out/production/Robot_Factory_PR/facade/FactorySystem.class index f510c18..568a01a 100644 Binary files a/src/out/production/Robot_Factory_PR/facade/FactorySystem.class and b/out/production/Robot_Factory_PR/facade/FactorySystem.class differ diff --git a/out/production/Robot_Factory_PR/infrastructure/Persistenz.class b/out/production/Robot_Factory_PR/infrastructure/Persistenz.class index 9c31bf5..92e6b24 100644 Binary files a/out/production/Robot_Factory_PR/infrastructure/Persistenz.class and b/out/production/Robot_Factory_PR/infrastructure/Persistenz.class differ diff --git a/out/production/Robot_Factory_PR/makefile b/out/production/Robot_Factory_PR/makefile deleted file mode 100644 index 9f1b581..0000000 --- a/out/production/Robot_Factory_PR/makefile +++ /dev/null @@ -1,31 +0,0 @@ - -update_readme: - git add README.md - git commit -m "updated README" - git push -u origin main -update_make: - git add makefile - git commit -m "updated makefile" - git push -u origin main -update_all: - git add --all - git commit -m "Updated everything. Further explanation in README" - git push -u origin main -update_domain: - git add domain/ - git commit -m "Updated domain. Further explanation in README" - git push -u origin main -update_exceptions: - git add robot/exceptions - git commit -m "Updated Exceptions" - git push -u origin main -update_interfaces: - git add robot/interfaces - git commit -m "updated interfaces" - git push -u origin main -update_ui: - git add ui/ - git commit -m "updated ui" - git push -u origin main -fetch_git: - git pull origin main diff --git a/out/production/Robot_Factory_PR/ui/UI$1.class b/out/production/Robot_Factory_PR/ui/UI$1.class new file mode 100644 index 0000000..b858c80 Binary files /dev/null and b/out/production/Robot_Factory_PR/ui/UI$1.class differ diff --git a/src/out/production/Robot_Factory_PR/ui/UI.class b/out/production/Robot_Factory_PR/ui/UI.class similarity index 50% rename from src/out/production/Robot_Factory_PR/ui/UI.class rename to out/production/Robot_Factory_PR/ui/UI.class index 6c3769f..de5df6d 100644 Binary files a/src/out/production/Robot_Factory_PR/ui/UI.class and b/out/production/Robot_Factory_PR/ui/UI.class differ diff --git a/src/out/production/Robot_Factory_PR/utility/interfaces/Robot.class b/out/production/Robot_Factory_PR/utility/interfaces/Robot.class similarity index 100% rename from src/out/production/Robot_Factory_PR/utility/interfaces/Robot.class rename to out/production/Robot_Factory_PR/utility/interfaces/Robot.class diff --git a/src/out/production/Robot_Factory_PR/utility/interfaces/RobotControl.class b/out/production/Robot_Factory_PR/utility/interfaces/RobotControl.class similarity index 100% rename from src/out/production/Robot_Factory_PR/utility/interfaces/RobotControl.class rename to out/production/Robot_Factory_PR/utility/interfaces/RobotControl.class diff --git a/src/out/production/Robot_Factory_PR/utility/interfaces/RobotInstructions.class b/out/production/Robot_Factory_PR/utility/interfaces/RobotInstructions.class similarity index 100% rename from src/out/production/Robot_Factory_PR/utility/interfaces/RobotInstructions.class rename to out/production/Robot_Factory_PR/utility/interfaces/RobotInstructions.class diff --git a/src/out/production/Robot_Factory_PR/utility/robot_exceptions/ArrayEmptyException.class b/out/production/Robot_Factory_PR/utility/robot_exceptions/ArrayEmptyException.class similarity index 100% rename from src/out/production/Robot_Factory_PR/utility/robot_exceptions/ArrayEmptyException.class rename to out/production/Robot_Factory_PR/utility/robot_exceptions/ArrayEmptyException.class diff --git a/src/out/production/Robot_Factory_PR/utility/robot_exceptions/ExceptionStorage.class b/out/production/Robot_Factory_PR/utility/robot_exceptions/ExceptionStorage.class similarity index 90% rename from src/out/production/Robot_Factory_PR/utility/robot_exceptions/ExceptionStorage.class rename to out/production/Robot_Factory_PR/utility/robot_exceptions/ExceptionStorage.class index 662da0e..12d289c 100644 Binary files a/src/out/production/Robot_Factory_PR/utility/robot_exceptions/ExceptionStorage.class and b/out/production/Robot_Factory_PR/utility/robot_exceptions/ExceptionStorage.class differ diff --git a/src/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotException.class b/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotException.class similarity index 90% rename from src/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotException.class rename to out/production/Robot_Factory_PR/utility/robot_exceptions/RobotException.class index f22d7b3..fd4917c 100644 Binary files a/src/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotException.class and b/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotException.class differ diff --git a/src/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotIllegalStateException.class b/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotIllegalStateException.class similarity index 89% rename from src/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotIllegalStateException.class rename to out/production/Robot_Factory_PR/utility/robot_exceptions/RobotIllegalStateException.class index d0643ab..a45a7dd 100644 Binary files a/src/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotIllegalStateException.class and b/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotIllegalStateException.class differ diff --git a/src/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotMagicValueException.class b/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotMagicValueException.class similarity index 89% rename from src/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotMagicValueException.class rename to out/production/Robot_Factory_PR/utility/robot_exceptions/RobotMagicValueException.class index 5a41dab..d463030 100644 Binary files a/src/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotMagicValueException.class and b/out/production/Robot_Factory_PR/utility/robot_exceptions/RobotMagicValueException.class differ diff --git a/src/out/production/Robot_Factory_PR/utility/robot_exceptions/robotExceptions.class b/out/production/Robot_Factory_PR/utility/robot_exceptions/robotExceptions.class similarity index 93% rename from src/out/production/Robot_Factory_PR/utility/robot_exceptions/robotExceptions.class rename to out/production/Robot_Factory_PR/utility/robot_exceptions/robotExceptions.class index a50f274..9275771 100644 Binary files a/src/out/production/Robot_Factory_PR/utility/robot_exceptions/robotExceptions.class and b/out/production/Robot_Factory_PR/utility/robot_exceptions/robotExceptions.class differ diff --git a/out/test/Robot_Factory_PR/tests/C3POTest.class b/out/test/Robot_Factory_PR/tests/C3POTest.class new file mode 100644 index 0000000..a4992af Binary files /dev/null and b/out/test/Robot_Factory_PR/tests/C3POTest.class differ diff --git a/out/test/Robot_Factory_PR/tests/FactoryTest.class b/out/test/Robot_Factory_PR/tests/FactoryTest.class new file mode 100644 index 0000000..97d7fbb Binary files /dev/null and b/out/test/Robot_Factory_PR/tests/FactoryTest.class differ diff --git a/out/test/Robot_Factory_PR/tests/Nexus6Test.class b/out/test/Robot_Factory_PR/tests/Nexus6Test.class new file mode 100644 index 0000000..1f773a9 Binary files /dev/null and b/out/test/Robot_Factory_PR/tests/Nexus6Test.class differ diff --git a/out/test/Robot_Factory_PR/tests/R2D2Test.class b/out/test/Robot_Factory_PR/tests/R2D2Test.class new file mode 100644 index 0000000..257975b Binary files /dev/null and b/out/test/Robot_Factory_PR/tests/R2D2Test.class differ diff --git a/src/domain/C3PO.java b/src/domain/C3PO.java index b244aec..615371f 100644 --- a/src/domain/C3PO.java +++ b/src/domain/C3PO.java @@ -1,8 +1,8 @@ -package src.domain; +package domain; -import src.utility.robot_exceptions.ExceptionStorage; -import src.utility.robot_exceptions.RobotException; -import src.utility.robot_exceptions.robotExceptions; +import utility.robot_exceptions.ExceptionStorage; +import utility.robot_exceptions.RobotException; +import utility.robot_exceptions.robotExceptions; public class C3PO extends Robot { public C3PO(int id, String name){ diff --git a/src/domain/Factory.java b/src/domain/Factory.java index 5b459b2..ffd55ba 100644 --- a/src/domain/Factory.java +++ b/src/domain/Factory.java @@ -1,4 +1,4 @@ -package src.domain; +package domain; import java.io.Serializable; import java.util.Collection; diff --git a/src/domain/Nexus6.java b/src/domain/Nexus6.java index 082acef..3b4db5a 100644 --- a/src/domain/Nexus6.java +++ b/src/domain/Nexus6.java @@ -1,14 +1,14 @@ -package src.domain; -import src.utility.robot_exceptions.ExceptionStorage; -import src.utility.robot_exceptions.RobotException; -import src.utility.robot_exceptions.robotExceptions; +package domain; +import utility.robot_exceptions.ExceptionStorage; +import utility.robot_exceptions.RobotException; +import utility.robot_exceptions.robotExceptions; public final class Nexus6 extends Robot { - private static final Nexus6 INSTANCE = new Nexus6(); + private static final Nexus6 INSTANCE = new Nexus6("Pris"); - private Nexus6() { - super(1, "Nexus-6", RobotType.Nexus6); + public Nexus6(String name) { + super(19281982, name, RobotType.Nexus6); } public static Nexus6 getInstance() { diff --git a/src/domain/R2D2.java b/src/domain/R2D2.java index 0d033db..5b208d6 100644 --- a/src/domain/R2D2.java +++ b/src/domain/R2D2.java @@ -1,9 +1,9 @@ -package src.domain; +package domain; -import src.utility.interfaces.RobotInstructions; -import src.utility.robot_exceptions.ExceptionStorage; -import src.utility.robot_exceptions.RobotException; -import src.utility.robot_exceptions.robotExceptions; +import utility.interfaces.RobotInstructions; +import utility.robot_exceptions.ExceptionStorage; +import utility.robot_exceptions.RobotException; +import utility.robot_exceptions.robotExceptions; public class R2D2 extends Robot { /** diff --git a/src/domain/Robot.java b/src/domain/Robot.java index 75669b0..4c7e057 100644 --- a/src/domain/Robot.java +++ b/src/domain/Robot.java @@ -1,15 +1,15 @@ -package src.domain; +package domain; -import src.utility.robot_exceptions.ExceptionStorage; -import src.utility.robot_exceptions.RobotException; -import src.utility.robot_exceptions.robotExceptions; +import utility.robot_exceptions.ExceptionStorage; +import utility.robot_exceptions.RobotException; +import utility.robot_exceptions.robotExceptions; import java.io.Serializable; import java.util.Arrays; import java.util.stream.Collectors; -public abstract class Robot implements src.utility.interfaces.Robot, Serializable { +public abstract class Robot implements utility.interfaces.Robot, Serializable { protected ExceptionStorage exceptions; private int id; diff --git a/src/domain/RobotType.java b/src/domain/RobotType.java index 04ec47e..db843d4 100644 --- a/src/domain/RobotType.java +++ b/src/domain/RobotType.java @@ -1,4 +1,4 @@ -package src.domain; +package domain; public enum RobotType { C3PO("C3PO"), R2D2("R2D2"), Nexus6("Nexus6"); diff --git a/src/facade/FactorySystem.java b/src/facade/FactorySystem.java index 02c603e..7cfefcb 100644 --- a/src/facade/FactorySystem.java +++ b/src/facade/FactorySystem.java @@ -1,8 +1,8 @@ -package src.facade; +package facade; -import src.domain.Factory; -import src.domain.Robot; -import src.domain.RobotType; +import domain.Factory; +import domain.Robot; +import domain.RobotType; import infrastructure.Persistenz; public class FactorySystem { diff --git a/src/out/production/Robot_Factory_PR/domain/C3PO.class b/src/out/production/Robot_Factory_PR/domain/C3PO.class deleted file mode 100644 index 4e45319..0000000 Binary files a/src/out/production/Robot_Factory_PR/domain/C3PO.class and /dev/null differ diff --git a/src/out/production/Robot_Factory_PR/domain/R2D2.class b/src/out/production/Robot_Factory_PR/domain/R2D2.class deleted file mode 100644 index 31cb8c2..0000000 Binary files a/src/out/production/Robot_Factory_PR/domain/R2D2.class and /dev/null differ diff --git a/src/out/production/Robot_Factory_PR/domain/Robot.class b/src/out/production/Robot_Factory_PR/domain/Robot.class deleted file mode 100644 index 0c5199c..0000000 Binary files a/src/out/production/Robot_Factory_PR/domain/Robot.class and /dev/null differ diff --git a/src/out/production/Robot_Factory_PR/infrastructure/Persistenz.class b/src/out/production/Robot_Factory_PR/infrastructure/Persistenz.class deleted file mode 100644 index 92e6b24..0000000 Binary files a/src/out/production/Robot_Factory_PR/infrastructure/Persistenz.class and /dev/null differ diff --git a/src/ui/UI.java b/src/ui/UI.java index c42ab1e..544f3bc 100644 --- a/src/ui/UI.java +++ b/src/ui/UI.java @@ -1,8 +1,8 @@ -package src.ui; +package ui; -import src.domain.Robot; -import src.domain.RobotType; -import src.facade.FactorySystem; +import domain.Robot; +import domain.RobotType; +import facade.FactorySystem; import infrastructure.Persistenz; import java.util.Scanner; diff --git a/src/utility/interfaces/Robot.java b/src/utility/interfaces/Robot.java index 62bc4ff..c4886c3 100644 --- a/src/utility/interfaces/Robot.java +++ b/src/utility/interfaces/Robot.java @@ -1,5 +1,5 @@ /* (c) 2012 Thomas Smits */ -package src.utility.interfaces; +package utility.interfaces; /** diff --git a/src/utility/interfaces/RobotControl.java b/src/utility/interfaces/RobotControl.java index 764eb01..b204e0e 100644 --- a/src/utility/interfaces/RobotControl.java +++ b/src/utility/interfaces/RobotControl.java @@ -1,5 +1,5 @@ -package src.utility.interfaces; -import src.utility.robot_exceptions.RobotException; +package utility.interfaces; +import utility.robot_exceptions.RobotException; /** * Das Interface repräsentiert einen einfachen Roboter mit seinen Funktionen. diff --git a/src/utility/interfaces/RobotInstructions.java b/src/utility/interfaces/RobotInstructions.java index 5837ba3..8d4d3c4 100644 --- a/src/utility/interfaces/RobotInstructions.java +++ b/src/utility/interfaces/RobotInstructions.java @@ -1,8 +1,8 @@ -package src.utility.interfaces; +package utility.interfaces; -import src.utility.robot_exceptions.RobotException; -import src.utility.robot_exceptions.RobotIllegalStateException; -import src.utility.robot_exceptions.RobotMagicValueException; +import utility.robot_exceptions.RobotException; +import utility.robot_exceptions.RobotIllegalStateException; +import utility.robot_exceptions.RobotMagicValueException; /** diff --git a/src/utility/robot_exceptions/ArrayEmptyException.java b/src/utility/robot_exceptions/ArrayEmptyException.java index 27263a9..6ec8001 100644 --- a/src/utility/robot_exceptions/ArrayEmptyException.java +++ b/src/utility/robot_exceptions/ArrayEmptyException.java @@ -1,4 +1,4 @@ -package src.utility.robot_exceptions; +package utility.robot_exceptions; public class ArrayEmptyException extends RobotException{ public ArrayEmptyException(robotExceptions type,String errorMessage){ diff --git a/src/utility/robot_exceptions/ExceptionStorage.java b/src/utility/robot_exceptions/ExceptionStorage.java index aee64b6..31068bc 100644 --- a/src/utility/robot_exceptions/ExceptionStorage.java +++ b/src/utility/robot_exceptions/ExceptionStorage.java @@ -1,4 +1,4 @@ -package src.utility.robot_exceptions; +package utility.robot_exceptions; import java.io.Serializable; import java.time.LocalDateTime; diff --git a/src/utility/robot_exceptions/RobotException.java b/src/utility/robot_exceptions/RobotException.java index 3f3cf29..3e95aec 100644 --- a/src/utility/robot_exceptions/RobotException.java +++ b/src/utility/robot_exceptions/RobotException.java @@ -1,4 +1,4 @@ -package src.utility.robot_exceptions; +package utility.robot_exceptions; public class RobotException extends Exception{ robotExceptions currentType; diff --git a/src/utility/robot_exceptions/RobotIllegalStateException.java b/src/utility/robot_exceptions/RobotIllegalStateException.java index 51316de..6f4705a 100644 --- a/src/utility/robot_exceptions/RobotIllegalStateException.java +++ b/src/utility/robot_exceptions/RobotIllegalStateException.java @@ -1,4 +1,4 @@ -package src.utility.robot_exceptions; +package utility.robot_exceptions; public class RobotIllegalStateException extends RobotException{ diff --git a/src/utility/robot_exceptions/RobotMagicValueException.java b/src/utility/robot_exceptions/RobotMagicValueException.java index 6fc65fa..d70623f 100644 --- a/src/utility/robot_exceptions/RobotMagicValueException.java +++ b/src/utility/robot_exceptions/RobotMagicValueException.java @@ -1,4 +1,4 @@ -package src.utility.robot_exceptions; +package utility.robot_exceptions; public class RobotMagicValueException extends RobotException { /** diff --git a/src/utility/robot_exceptions/robotExceptions.java b/src/utility/robot_exceptions/robotExceptions.java index b5e0083..045d398 100644 --- a/src/utility/robot_exceptions/robotExceptions.java +++ b/src/utility/robot_exceptions/robotExceptions.java @@ -1,4 +1,4 @@ -package src.utility.robot_exceptions; +package utility.robot_exceptions; public enum robotExceptions { ILLEGALSTATE("ist in einem illegalen Zustand"), diff --git a/test_factoryFactory.ser b/test_factoryFactory.ser new file mode 100644 index 0000000..05a9170 Binary files /dev/null and b/test_factoryFactory.ser differ diff --git a/tests/tests/C3POTest.java b/tests/tests/C3POTest.java index afb5d42..28565aa 100644 --- a/tests/tests/C3POTest.java +++ b/tests/tests/C3POTest.java @@ -1,8 +1,8 @@ -package tests.tests; -import src.domain.C3PO; +package tests; +import domain.C3PO; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import src.utility.robot_exceptions.RobotException; +import utility.robot_exceptions.RobotException; import static org.junit.jupiter.api.Assertions.*; diff --git a/tests/tests/FactoryTest.java b/tests/tests/FactoryTest.java index d89a58d..115dfa5 100644 --- a/tests/tests/FactoryTest.java +++ b/tests/tests/FactoryTest.java @@ -1,4 +1,4 @@ -package tests.tests; +package tests; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/tests/tests/Nexus6Test.java b/tests/tests/Nexus6Test.java new file mode 100644 index 0000000..5874631 --- /dev/null +++ b/tests/tests/Nexus6Test.java @@ -0,0 +1,107 @@ +package tests; + +import domain.Nexus6; +import domain.R2D2; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import utility.robot_exceptions.RobotException; + +import static org.junit.jupiter.api.Assertions.*; + +class Nexus6Test { + + Nexus6 nexus6; + int id = 19281982; + String name = "Pris"; + + @BeforeEach + void setup(){ + nexus6 = new Nexus6(name); + nexus6.triggerPowerSwitch(); + } + + @Test + void getId() { + assertEquals(id, nexus6.getId()); + } + + @Test + void getName() { + assertEquals(name, nexus6.getName()); + } + + @Test + void triggerPowerSwitch() { + assertTrue(nexus6.isPowerOn()); + nexus6.triggerPowerSwitch(); + assertFalse(nexus6.isPowerOn()); + } + + @Test + void R2D2SpeakTestEmpty() { + try{ + String solution = nexus6.speak(new int[]{}); + }catch(RobotException re){ + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + + @Test + void R2D2SpeakTestZeros() throws RobotException { + try{ + String solution = nexus6.speak(new int[4]); + }catch(RobotException re){ + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + + @Test + void R2D2SpeakTestOneElement() throws RobotException { + try{ + String solution = nexus6.speak(new int[]{1}); + }catch(RobotException re){ + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + + @Test + void R2D2SpeakTestUnitElements() throws RobotException { + try{ + String solution = nexus6.speak(new int[]{-1, 0, 1}); + }catch(RobotException re){ + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + + @Test + void R2D2SpeakTestMagicNumberException() { + + try{ + String solution = nexus6.speak(new int[]{42}); + }catch(RobotException re){ + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + + @Test + void speak(){ + String solution = "12, 2, 4, 5, 12, 2, 4, 7, 56, 433, 23"; + int[] input = {12, 2, 4, 5, 12, 2, 4, 7, 56, 433, 23}; + try{ + String array = nexus6.speak(input); + } catch(RobotException re) { + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + + @Test + void think(){ + int[] solution = { 2, 4, 4, 5, 7, 12, 23, 56, 433}; + int[] input = { 4, 5, 12, 2, 4, 7, 56, 433, 23}; + try{ + int[] value = nexus6.think(input); + }catch(RobotException re){ + assertEquals(0, "Pris ist in einem illegalen Zustand".compareTo(re.getMessage())); + } + } + } \ No newline at end of file diff --git a/tests/tests/R2D2Test.java b/tests/tests/R2D2Test.java index be9a0a1..ec50f7e 100644 --- a/tests/tests/R2D2Test.java +++ b/tests/tests/R2D2Test.java @@ -1,11 +1,9 @@ -package tests.tests; +package tests; -import src.domain.R2D2; -import src.domain.RobotType; -import org.junit.jupiter.api.Test; +import domain.R2D2; import org.junit.jupiter.api.BeforeEach; -import src.utility.robot_exceptions.RobotException; -import src.utility.robot_exceptions.RobotMagicValueException; +import org.junit.jupiter.api.Test; +import utility.robot_exceptions.RobotException; import static org.junit.jupiter.api.Assertions.*;