From 1361dfc89553b146864fb8ff3526cf12cf3f293a Mon Sep 17 00:00:00 2001 From: Shahd Lala Date: Tue, 31 Mar 2026 10:31:02 +0200 Subject: [PATCH] feat: NCS-16 Core Separation via Patterns (#10) Co-authored-by: Janis Co-authored-by: shahdlala66 Co-authored-by: Janis Reviewed-on: https://git.janis-eccarius.de/NowChess/NowChessSystems/pulls/10 Reviewed-by: Janis Co-authored-by: Shahd Lala Co-committed-by: Shahd Lala --- .idea/gradle.xml | 1 + .idea/scala_compiler.xml | 2 +- .../main/scala/de/nowchess/chess/Main.scala | 12 - .../de/nowchess/chess/command/Command.scala | 64 ++++ .../chess/command/CommandInvoker.scala | 73 +++++ .../chess/controller/GameController.scala | 45 --- .../de/nowchess/chess/engine/GameEngine.scala | 209 ++++++++++++ .../de/nowchess/chess/observer/Observer.scala | 87 +++++ .../command/CommandInvokerBranchTest.scala | 216 ++++++++++++ .../chess/command/CommandInvokerTest.scala | 123 +++++++ .../CommandInvokerThreadSafetyTest.scala | 131 ++++++++ .../nowchess/chess/command/CommandTest.scala | 52 +++ .../command/MoveCommandImmutabilityTest.scala | 65 ++++ .../chess/controller/GameControllerTest.scala | 108 ------ .../engine/GameEngineEdgeCasesTest.scala | 214 ++++++++++++ .../engine/GameEngineGameEndingTest.scala | 93 ++++++ .../GameEngineHandleFailedMoveTest.scala | 110 +++++++ .../engine/GameEngineInvalidMovesTest.scala | 114 +++++++ .../chess/engine/GameEngineTest.scala | 310 ++++++++++++++++++ .../engine/MoveCommandDefaultsTest.scala | 110 +++++++ .../de/nowchess/chess/main/MainTest.scala | 12 - .../observer/ObservableThreadSafetyTest.scala | 168 ++++++++++ modules/ui/build.gradle.kts | 73 +++++ .../src/main/scala/de/nowchess/ui/Main.scala | 15 + .../de/nowchess/ui/terminal/TerminalUI.scala | 76 +++++ .../test/scala/de/nowchess/ui/MainTest.scala | 22 ++ .../nowchess/ui/terminal/TerminalUITest.scala | 189 +++++++++++ settings.gradle.kts | 2 +- 28 files changed, 2517 insertions(+), 179 deletions(-) delete mode 100644 modules/core/src/main/scala/de/nowchess/chess/Main.scala create mode 100644 modules/core/src/main/scala/de/nowchess/chess/command/Command.scala create mode 100644 modules/core/src/main/scala/de/nowchess/chess/command/CommandInvoker.scala create mode 100644 modules/core/src/main/scala/de/nowchess/chess/engine/GameEngine.scala create mode 100644 modules/core/src/main/scala/de/nowchess/chess/observer/Observer.scala create mode 100644 modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerBranchTest.scala create mode 100644 modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerTest.scala create mode 100644 modules/core/src/test/scala/de/nowchess/chess/command/CommandInvokerThreadSafetyTest.scala create mode 100644 modules/core/src/test/scala/de/nowchess/chess/command/CommandTest.scala create mode 100644 modules/core/src/test/scala/de/nowchess/chess/command/MoveCommandImmutabilityTest.scala create mode 100644 modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineEdgeCasesTest.scala create mode 100644 modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineGameEndingTest.scala create mode 100644 modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineHandleFailedMoveTest.scala create mode 100644 modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineInvalidMovesTest.scala create mode 100644 modules/core/src/test/scala/de/nowchess/chess/engine/GameEngineTest.scala create mode 100644 modules/core/src/test/scala/de/nowchess/chess/engine/MoveCommandDefaultsTest.scala delete mode 100644 modules/core/src/test/scala/de/nowchess/chess/main/MainTest.scala create mode 100644 modules/core/src/test/scala/de/nowchess/chess/observer/ObservableThreadSafetyTest.scala create mode 100644 modules/ui/build.gradle.kts create mode 100644 modules/ui/src/main/scala/de/nowchess/ui/Main.scala create mode 100644 modules/ui/src/main/scala/de/nowchess/ui/terminal/TerminalUI.scala create mode 100644 modules/ui/src/test/scala/de/nowchess/ui/MainTest.scala create mode 100644 modules/ui/src/test/scala/de/nowchess/ui/terminal/TerminalUITest.scala diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 4f4edba..f1d0a36 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -12,6 +12,7 @@ diff --git a/.idea/scala_compiler.xml b/.idea/scala_compiler.xml index 8db25d6..a0f8d4f 100644 --- a/.idea/scala_compiler.xml +++ b/.idea/scala_compiler.xml @@ -5,7 +5,7 @@