diff --git a/.travis.yml b/.travis.yml
index 1da4f33..6a11e27 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,4 +26,4 @@ script:
- cd docker && docker-compose -f docker-compose.test.yml run tests
after_script:
- wget https://scrutinizer-ci.com/ocular.phar
- - php ocular.phar code-coverage:upload --format=php-clover code/tests/coverage.clover
\ No newline at end of file
+ - php ocular.phar code-coverage:upload --format=php-clover code/coverage.clover
\ No newline at end of file
diff --git a/code/.gitignore b/code/.gitignore
index 5038bac..e96f379 100644
--- a/code/.gitignore
+++ b/code/.gitignore
@@ -22,4 +22,4 @@
###> qossmic/deptrac-shim ###
/.deptrac.cache
###< qossmic/deptrac-shim ###
-tests/coverage.clover
\ No newline at end of file
+coverage.clover
\ No newline at end of file
diff --git a/code/1 b/code/1
deleted file mode 100644
index e69de29..0000000
diff --git a/code/composer.json b/code/composer.json
index ddbb80a..fbc0e89 100644
--- a/code/composer.json
+++ b/code/composer.json
@@ -61,7 +61,10 @@
},
"autoload-dev": {
"psr-4": {
- "App\\Tests\\": "tests/"
+ "App\\Tests\\Crossword\\": "src/Crossword/tests/",
+ "App\\Tests\\Dictionary\\": "src/Dictionary/tests/",
+ "App\\Tests\\Game\\": "src/Game/tests/",
+ "App\\Tests\\SharedKernel\\": "src/SharedKernel/tests/"
}
},
"replace": {
@@ -74,7 +77,7 @@
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
- "phpunit": "phpunit --coverage-clover=tests/coverage.clover",
+ "phpunit": "phpunit --coverage-clover=coverage.clover",
"psalm": "psalm",
"ecs": "ecs check src",
"phpcs": "phpcs --standard=PSR12 src/",
diff --git a/code/config/routes/annotations.yaml b/code/config/routes/annotations.yaml
index 5298abc..47d4044 100644
--- a/code/config/routes/annotations.yaml
+++ b/code/config/routes/annotations.yaml
@@ -1,5 +1,17 @@
-controllers:
- resource: ../../src/
+controllers_game:
+ resource: ../../src/Game/UI
+ type: annotation
+
+controllers_crossword:
+ resource: ../../src/Crossword/UI
+ type: annotation
+
+controllers_dictionary:
+ resource: ../../src/Dictionary/UI
+ type: annotation
+
+controllers_swagger:
+ resource: ../../src/Swagger/UI
type: annotation
kernel:
diff --git a/code/config/services.yaml b/code/config/services.yaml
index 6d05c87..8177c3f 100644
--- a/code/config/services.yaml
+++ b/code/config/services.yaml
@@ -27,8 +27,11 @@ services:
resource: '../src/*'
exclude:
- '../src/SharedKernel/config/'
+ - '../src/SharedKernel/tests/'
- '../src/Swagger/config/'
+ - '../src/Swagger/tests/'
- '../src/Game/config/'
+ - '../src/Game/tests/'
- '../src/Game/Domain/Model/'
- '../src/Game/Domain/Dto/'
- '../src/Game/Domain/Events/DomainEventsSubscriber.php'
@@ -36,10 +39,12 @@ services:
- '../src/Game/UI/Web/'
- '../src/Crossword/UI/API/'
- '../src/Crossword/config/'
+ - '../src/Crossword/tests/'
- '../src/Crossword/Domain/Model/'
- '../src/Crossword/Domain/Dto/'
- '../src/Dictionary/UI/API/'
- '../src/Dictionary/config/'
+ - '../src/Dictionary/tests/'
- '../src/Dictionary/Domain/Model/'
- '../src/Dictionary/Domain/Dto/'
- '../src/Dictionary/Application/Service/WordsStoragePopulate.php'
diff --git a/code/coverage.clover b/code/coverage.clover
new file mode 100644
index 0000000..c08d994
--- /dev/null
+++ b/code/coverage.clover
@@ -0,0 +1,4206 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/phpunit.xml b/code/phpunit.xml
index 1f091f3..57463fe 100644
--- a/code/phpunit.xml
+++ b/code/phpunit.xml
@@ -21,7 +21,10 @@
- tests
+ src/Crossword/tests
+ src/Dictionary/tests
+ src/Game/tests
+ src/SharedKernel/tests
diff --git a/code/psalm.xml b/code/psalm.xml
index 3e4e3d0..70b6d1a 100644
--- a/code/psalm.xml
+++ b/code/psalm.xml
@@ -10,6 +10,10 @@
+
+
+
+
diff --git a/code/src/Crossword/config/ecs.php b/code/src/Crossword/config/ecs.php
index 1c0c8a6..aa73c52 100644
--- a/code/src/Crossword/config/ecs.php
+++ b/code/src/Crossword/config/ecs.php
@@ -5,4 +5,5 @@
'/src/Crossword/Infrastructure/Dao',
'/src/Crossword/Domain/Service/Scanner/RowYScanner.php',
'/src/Crossword/Domain/Service/Scanner/RowXScanner.php',
+ '/src/Crossword/tests',
];
diff --git a/code/tests/Crossword/Application/Assert/TypeAssertTest.php b/code/src/Crossword/tests/Application/Assert/TypeAssertTest.php
similarity index 100%
rename from code/tests/Crossword/Application/Assert/TypeAssertTest.php
rename to code/src/Crossword/tests/Application/Assert/TypeAssertTest.php
diff --git a/code/tests/Crossword/Application/Service/CrosswordGeneratorTest.php b/code/src/Crossword/tests/Application/Service/CrosswordGeneratorTest.php
similarity index 96%
rename from code/tests/Crossword/Application/Service/CrosswordGeneratorTest.php
rename to code/src/Crossword/tests/Application/Service/CrosswordGeneratorTest.php
index 046e624..48ffcb3 100644
--- a/code/tests/Crossword/Application/Service/CrosswordGeneratorTest.php
+++ b/code/src/Crossword/tests/Application/Service/CrosswordGeneratorTest.php
@@ -11,7 +11,7 @@
use App\Crossword\Domain\Messages\Message\GenerateCrosswordMessage;
use App\Crossword\Infrastructure\Adapter\Dictionary\InMemoryDictionaryAdapter;
use App\SharedKernel\Application\Response\API\SuccessApiResponse;
-use App\Tests\CrosswordTestCase;
+use App\Tests\Crossword\CrosswordTestCase;
/**
* @coversDefaultClass \App\Crossword\Application\Service\CrosswordGenerator
diff --git a/code/tests/Crossword/Application/Service/CrosswordReceiverTest.php b/code/src/Crossword/tests/Application/Service/CrosswordReceiverTest.php
similarity index 97%
rename from code/tests/Crossword/Application/Service/CrosswordReceiverTest.php
rename to code/src/Crossword/tests/Application/Service/CrosswordReceiverTest.php
index 0c4901d..2eba677 100644
--- a/code/tests/Crossword/Application/Service/CrosswordReceiverTest.php
+++ b/code/src/Crossword/tests/Application/Service/CrosswordReceiverTest.php
@@ -10,8 +10,8 @@
use App\Crossword\Infrastructure\Cache\CacheItem;
use App\Crossword\Infrastructure\Cache\InMemoryClient;
use App\Crossword\Infrastructure\Repository\Redis\ReadCrosswordRepository;
-use App\Tests\CrosswordTestCase;
use Psr\Log\NullLogger;
+use App\Tests\Crossword\CrosswordTestCase;
/**
* @coversDefaultClass \App\Crossword\Application\Service\CrosswordReceiver
diff --git a/code/tests/Crossword/Application/Service/SupportedLanguagesTest.php b/code/src/Crossword/tests/Application/Service/SupportedLanguagesTest.php
similarity index 97%
rename from code/tests/Crossword/Application/Service/SupportedLanguagesTest.php
rename to code/src/Crossword/tests/Application/Service/SupportedLanguagesTest.php
index e8b2742..aba3124 100644
--- a/code/tests/Crossword/Application/Service/SupportedLanguagesTest.php
+++ b/code/src/Crossword/tests/Application/Service/SupportedLanguagesTest.php
@@ -9,8 +9,8 @@
use App\Crossword\Domain\Dto\DictionaryLanguagesDto;
use App\Crossword\Infrastructure\Adapter\Dictionary\InMemoryDictionaryAdapter;
use App\SharedKernel\Application\Response\API\SuccessApiResponse;
-use App\Tests\CrosswordTestCase;
use Psr\Log\NullLogger;
+use App\Tests\Crossword\CrosswordTestCase;
/**
* @coversDefaultClass \App\Crossword\Application\Service\SupportedLanguages
diff --git a/code/tests/CrosswordTestCase.php b/code/src/Crossword/tests/CrosswordTestCase.php
similarity index 98%
rename from code/tests/CrosswordTestCase.php
rename to code/src/Crossword/tests/CrosswordTestCase.php
index 6a140b3..7177c3e 100644
--- a/code/tests/CrosswordTestCase.php
+++ b/code/src/Crossword/tests/CrosswordTestCase.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace App\Tests;
+namespace App\Tests\Crossword;
use Faker\Factory;
use PHPUnit\Framework\MockObject\Rule\InvocationOrder;
diff --git a/code/tests/Crossword/Domain/Messages/Handler/GenerateCrosswordMessageHandlerTest.php b/code/src/Crossword/tests/Domain/Messages/Handler/GenerateCrosswordMessageHandlerTest.php
similarity index 91%
rename from code/tests/Crossword/Domain/Messages/Handler/GenerateCrosswordMessageHandlerTest.php
rename to code/src/Crossword/tests/Domain/Messages/Handler/GenerateCrosswordMessageHandlerTest.php
index c74f5bc..44a83ff 100644
--- a/code/tests/Crossword/Domain/Messages/Handler/GenerateCrosswordMessageHandlerTest.php
+++ b/code/src/Crossword/tests/Domain/Messages/Handler/GenerateCrosswordMessageHandlerTest.php
@@ -13,13 +13,12 @@
use App\Crossword\Domain\Model\Coordinate;
use App\Crossword\Domain\Model\Line;
use App\Crossword\Domain\Model\Row;
-use App\Crossword\Domain\Repository\PersistCrosswordRepositoryInterface;
use App\Crossword\Domain\Service\Constructor\ConstructorFactory;
use App\Crossword\Domain\Service\Constructor\ConstructorInterface;
use App\Crossword\Infrastructure\Cache\InMemoryClient;
use App\Crossword\Infrastructure\Repository\Redis\PersistCrosswordRepository;
use App\SharedKernel\Domain\Model\Word;
-use App\Tests\CrosswordTestCase;
+use App\Tests\Crossword\CrosswordTestCase;
/**
* @coversDefaultClass \App\Crossword\Domain\Messages\Handler\GenerateCrosswordMessageHandler
@@ -33,7 +32,7 @@ public function testGenerateCrosswordMessageHandler(): void
{
$cache = new InMemoryClient();
- $row = new Row(new Cell(new Coordinate(1,1), null));
+ $row = new Row(new Cell(new Coordinate(1, 1), null));
$crosswordDto = new CrosswordDto(new LineDto(new Line($row), new Word('test', 'test test')));
$mockConstructor = $this->createMock(ConstructorInterface::class);
$mockConstructor->method('build')->willReturn($crosswordDto);
diff --git a/code/tests/Crossword/Domain/Model/CellTest.php b/code/src/Crossword/tests/Domain/Model/CellTest.php
similarity index 100%
rename from code/tests/Crossword/Domain/Model/CellTest.php
rename to code/src/Crossword/tests/Domain/Model/CellTest.php
diff --git a/code/tests/Crossword/Domain/Model/CoordinateTest.php b/code/src/Crossword/tests/Domain/Model/CoordinateTest.php
similarity index 100%
rename from code/tests/Crossword/Domain/Model/CoordinateTest.php
rename to code/src/Crossword/tests/Domain/Model/CoordinateTest.php
diff --git a/code/tests/Crossword/Domain/Model/GridTest.php b/code/src/Crossword/tests/Domain/Model/GridTest.php
similarity index 100%
rename from code/tests/Crossword/Domain/Model/GridTest.php
rename to code/src/Crossword/tests/Domain/Model/GridTest.php
diff --git a/code/tests/Crossword/Domain/Model/LineTest.php b/code/src/Crossword/tests/Domain/Model/LineTest.php
similarity index 99%
rename from code/tests/Crossword/Domain/Model/LineTest.php
rename to code/src/Crossword/tests/Domain/Model/LineTest.php
index 4ee6c92..cbbee75 100644
--- a/code/tests/Crossword/Domain/Model/LineTest.php
+++ b/code/src/Crossword/tests/Domain/Model/LineTest.php
@@ -27,7 +27,6 @@ public function testFillLetter(): void
$cells = $line->jsonSerialize();
self::assertSame($cells[0]['letter'], 'q');
-
}
/**
diff --git a/code/tests/Crossword/Domain/Model/RowTest.php b/code/src/Crossword/tests/Domain/Model/RowTest.php
similarity index 100%
rename from code/tests/Crossword/Domain/Model/RowTest.php
rename to code/src/Crossword/tests/Domain/Model/RowTest.php
diff --git a/code/tests/Crossword/Domain/Service/Constructor/ConstructorFactoryTest.php b/code/src/Crossword/tests/Domain/Service/Constructor/ConstructorFactoryTest.php
similarity index 92%
rename from code/tests/Crossword/Domain/Service/Constructor/ConstructorFactoryTest.php
rename to code/src/Crossword/tests/Domain/Service/Constructor/ConstructorFactoryTest.php
index 71a0d4a..65985f1 100644
--- a/code/tests/Crossword/Domain/Service/Constructor/ConstructorFactoryTest.php
+++ b/code/src/Crossword/tests/Domain/Service/Constructor/ConstructorFactoryTest.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace App\Tests\Crossword\Domain\Service\Constructor;
+namespace Tests\Crossword\Domain\Service\Constructor;
use App\Crossword\Domain\Enum\Type;
use App\Crossword\Domain\Service\Constructor\ConstructorFactory;
@@ -10,7 +10,7 @@
use App\Crossword\Domain\Service\Constructor\Normal\NormalConstructor;
use App\Crossword\Domain\Service\WordFinder;
use App\Crossword\Infrastructure\Adapter\Dictionary\InMemoryDictionaryAdapter;
-use App\Tests\CrosswordTestCase;
+use App\Tests\Crossword\CrosswordTestCase;
use Generator;
use Psr\Log\NullLogger;
diff --git a/code/tests/Crossword/Domain/Service/Constructor/Normal/AttemptWordFinderTest.php b/code/src/Crossword/tests/Domain/Service/Constructor/Normal/AttemptWordFinderTest.php
similarity index 92%
rename from code/tests/Crossword/Domain/Service/Constructor/Normal/AttemptWordFinderTest.php
rename to code/src/Crossword/tests/Domain/Service/Constructor/Normal/AttemptWordFinderTest.php
index a3f6138..421a6ae 100644
--- a/code/tests/Crossword/Domain/Service/Constructor/Normal/AttemptWordFinderTest.php
+++ b/code/src/Crossword/tests/Domain/Service/Constructor/Normal/AttemptWordFinderTest.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace App\Tests\Crossword\Domain\Service\Constructor\Normal;
+namespace Tests\Crossword\Domain\Service\Constructor\Normal;
use App\Crossword\Domain\Dto\DictionaryWordDto;
use App\Crossword\Domain\Service\Constructor\Normal\AttemptWordFinder;
@@ -11,7 +11,7 @@
use App\SharedKernel\Application\Response\API\SuccessApiResponse;
use App\SharedKernel\Domain\Model\Mask;
use App\SharedKernel\Domain\Model\Word;
-use App\Tests\CrosswordTestCase;
+use App\Tests\Crossword\CrosswordTestCase;
use Psr\Log\NullLogger;
/**
diff --git a/code/tests/Crossword/Domain/Service/WordFinderTest.php b/code/src/Crossword/tests/Domain/Service/WordFinderTest.php
similarity index 98%
rename from code/tests/Crossword/Domain/Service/WordFinderTest.php
rename to code/src/Crossword/tests/Domain/Service/WordFinderTest.php
index 8a3b42c..19febef 100644
--- a/code/tests/Crossword/Domain/Service/WordFinderTest.php
+++ b/code/src/Crossword/tests/Domain/Service/WordFinderTest.php
@@ -13,8 +13,8 @@
use App\SharedKernel\Application\Response\API\FailedApiResponse;
use App\SharedKernel\Application\Response\API\SuccessApiResponse;
use App\SharedKernel\Domain\Model\Word;
-use App\Tests\CrosswordTestCase;
use Psr\Log\NullLogger;
+use App\Tests\Crossword\CrosswordTestCase;
/**
* @coversDefaultClass \App\Crossword\Domain\Service\WordFinder
diff --git a/code/src/Crossword/tests/bootstrap.php b/code/src/Crossword/tests/bootstrap.php
new file mode 100644
index 0000000..128206c
--- /dev/null
+++ b/code/src/Crossword/tests/bootstrap.php
@@ -0,0 +1,11 @@
+bootEnv(dirname(__DIR__) . '/../../.env');
+}
diff --git a/code/src/Dictionary/config/ecs.php b/code/src/Dictionary/config/ecs.php
index c699633..f84c1b9 100644
--- a/code/src/Dictionary/config/ecs.php
+++ b/code/src/Dictionary/config/ecs.php
@@ -3,4 +3,5 @@
const DICTIONARY_SKIP_PATH = [
'/src/Dictionary/Infrastructure/Repository',
'/src/Dictionary/Infrastructure/Dao',
+ '/src/Dictionary/tests',
];
diff --git a/code/tests/Dictionary/Application/Assert/FileAssertTest.php b/code/src/Dictionary/tests/Application/Assert/FileAssertTest.php
similarity index 92%
rename from code/tests/Dictionary/Application/Assert/FileAssertTest.php
rename to code/src/Dictionary/tests/Application/Assert/FileAssertTest.php
index 617c441..b32ca94 100644
--- a/code/tests/Dictionary/Application/Assert/FileAssertTest.php
+++ b/code/src/Dictionary/tests/Application/Assert/FileAssertTest.php
@@ -5,13 +5,13 @@
namespace App\Tests\Dictionary\Application\Assert;
use App\Dictionary\Application\Assert\FileAssert;
-use App\Tests\CrosswordTestCase;
use RuntimeException;
+use App\Tests\Dictionary\DictionaryTestCase;
/**
* @coversDefaultClass \App\Dictionary\Application\Assert\FileAssert
*/
-final class FileAssertTest extends CrosswordTestCase
+final class FileAssertTest extends DictionaryTestCase
{
/**
* @covers ::assertFile
diff --git a/code/tests/Dictionary/Application/Service/WordsStoragePopulateTest.php b/code/src/Dictionary/tests/Application/Service/WordsStoragePopulateTest.php
similarity index 89%
rename from code/tests/Dictionary/Application/Service/WordsStoragePopulateTest.php
rename to code/src/Dictionary/tests/Application/Service/WordsStoragePopulateTest.php
index d1778f5..d371d7f 100644
--- a/code/tests/Dictionary/Application/Service/WordsStoragePopulateTest.php
+++ b/code/src/Dictionary/tests/Application/Service/WordsStoragePopulateTest.php
@@ -7,13 +7,13 @@
use App\Dictionary\Application\Criteria\WordsStoragePopulateCriteria;
use App\Dictionary\Application\Service\WordsStoragePopulate;
use App\Dictionary\Infrastructure\FileReader\TextFileReader;
-use App\Tests\CrosswordTestCase;
use Psr\Log\NullLogger;
+use App\Tests\Dictionary\DictionaryTestCase;
/**
* @coversDefaultClass \App\Dictionary\Application\Service\WordsStoragePopulate
*/
-final class WordsStoragePopulateTest extends CrosswordTestCase
+final class WordsStoragePopulateTest extends DictionaryTestCase
{
private const WORD_LIST = ['test', 'search', 'date'];
diff --git a/code/tests/Dictionary/Application/Service/WordsStorageUploadTest.php b/code/src/Dictionary/tests/Application/Service/WordsStorageUploadTest.php
similarity index 90%
rename from code/tests/Dictionary/Application/Service/WordsStorageUploadTest.php
rename to code/src/Dictionary/tests/Application/Service/WordsStorageUploadTest.php
index 744bc47..098b9cc 100644
--- a/code/tests/Dictionary/Application/Service/WordsStorageUploadTest.php
+++ b/code/src/Dictionary/tests/Application/Service/WordsStorageUploadTest.php
@@ -8,13 +8,13 @@
use App\Dictionary\Application\Service\WordsStorageUpload;
use App\Dictionary\Domain\Messages\Message\SaveToStorageMessage;
use App\Dictionary\Infrastructure\FileReader\CsvFileReader;
-use App\Tests\CrosswordTestCase;
use Psr\Log\NullLogger;
+use App\Tests\Dictionary\DictionaryTestCase;
/**
* @coversDefaultClass \App\Dictionary\Application\Service\WordsStorageUpload
*/
-final class WordsStorageUploadTest extends CrosswordTestCase
+final class WordsStorageUploadTest extends DictionaryTestCase
{
/**
* @covers ::execute
diff --git a/code/src/Dictionary/tests/DictionaryTestCase.php b/code/src/Dictionary/tests/DictionaryTestCase.php
new file mode 100644
index 0000000..ec5aaf7
--- /dev/null
+++ b/code/src/Dictionary/tests/DictionaryTestCase.php
@@ -0,0 +1,58 @@
+createMock(MessageBusInterface::class);
+ $messageBus->expects($invocationRule)->method('dispatch');
+
+ return $messageBus;
+ }
+
+ $messageBus = $this->createMock(MessageBusInterface::class);
+ $messageBus->expects($invocationRule)
+ ->method('dispatch')
+ ->withConsecutive(
+ [
+ self::isInstanceOf(get_class($message)),
+ ]
+ )
+ ->willReturn(new Envelope($message));
+
+ return $messageBus;
+ }
+
+ protected function createTempFile(string $ext = '.tmp', array $data = []): string
+ {
+ $filePath = sys_get_temp_dir() . uniqid(Factory::create()->name, true) . $ext;
+ foreach ($data as $item) {
+ file_put_contents($filePath, $item . PHP_EOL, FILE_APPEND);
+ }
+
+ return $filePath;
+ }
+}
diff --git a/code/tests/Dictionary/Domain/Messages/Handler/SearchWordDefinitionMessageHandlerTest.php b/code/src/Dictionary/tests/Domain/Messages/Handler/SearchWordDefinitionMessageHandlerTest.php
similarity index 92%
rename from code/tests/Dictionary/Domain/Messages/Handler/SearchWordDefinitionMessageHandlerTest.php
rename to code/src/Dictionary/tests/Domain/Messages/Handler/SearchWordDefinitionMessageHandlerTest.php
index 7a7b080..225c5dd 100644
--- a/code/tests/Dictionary/Domain/Messages/Handler/SearchWordDefinitionMessageHandlerTest.php
+++ b/code/src/Dictionary/tests/Domain/Messages/Handler/SearchWordDefinitionMessageHandlerTest.php
@@ -9,12 +9,12 @@
use App\Dictionary\Domain\Messages\Message\SaveToStorageMessage;
use App\Dictionary\Domain\Messages\Message\SearchWordDefinitionMessage;
use App\Dictionary\Infrastructure\Gateway\InMemory\WordDefinitionApiGatewayInMemory;
-use App\Tests\CrosswordTestCase;
+use App\Tests\Dictionary\DictionaryTestCase;
/**
* @coversDefaultClass \App\Dictionary\Domain\Messages\Handler\SearchWordDefinitionMessageHandler
*/
-final class SearchWordDefinitionMessageHandlerTest extends CrosswordTestCase
+final class SearchWordDefinitionMessageHandlerTest extends DictionaryTestCase
{
/**
* @covers ::__invoke
diff --git a/code/src/Dictionary/tests/bootstrap.php b/code/src/Dictionary/tests/bootstrap.php
new file mode 100644
index 0000000..128206c
--- /dev/null
+++ b/code/src/Dictionary/tests/bootstrap.php
@@ -0,0 +1,11 @@
+bootEnv(dirname(__DIR__) . '/../../.env');
+}
diff --git a/code/src/Game/config/ecs.php b/code/src/Game/config/ecs.php
index ea2d9db..8e7119d 100644
--- a/code/src/Game/config/ecs.php
+++ b/code/src/Game/config/ecs.php
@@ -3,4 +3,5 @@
const GAME_SKIP_PATH = [
'/src/Game/Infrastructure/Repository',
'/src/Game/Infrastructure/Dao',
+ '/src/Game/tests',
];
diff --git a/code/tests/Game/Application/Assert/CorrectAnswersAssertTest.php b/code/src/Game/tests/Application/Assert/CorrectAnswersAssertTest.php
similarity index 100%
rename from code/tests/Game/Application/Assert/CorrectAnswersAssertTest.php
rename to code/src/Game/tests/Application/Assert/CorrectAnswersAssertTest.php
diff --git a/code/tests/Game/Application/Assert/PasswordAssertTest.php b/code/src/Game/tests/Application/Assert/PasswordAssertTest.php
similarity index 100%
rename from code/tests/Game/Application/Assert/PasswordAssertTest.php
rename to code/src/Game/tests/Application/Assert/PasswordAssertTest.php
diff --git a/code/tests/Game/Application/Assert/RoleAssertTest.php b/code/src/Game/tests/Application/Assert/RoleAssertTest.php
similarity index 100%
rename from code/tests/Game/Application/Assert/RoleAssertTest.php
rename to code/src/Game/tests/Application/Assert/RoleAssertTest.php
diff --git a/code/tests/Game/Application/Service/Answers/AnswersTest.php b/code/src/Game/tests/Application/Service/Answers/AnswersTest.php
similarity index 98%
rename from code/tests/Game/Application/Service/Answers/AnswersTest.php
rename to code/src/Game/tests/Application/Service/Answers/AnswersTest.php
index a789f74..2d8c9ab 100644
--- a/code/tests/Game/Application/Service/Answers/AnswersTest.php
+++ b/code/src/Game/tests/Application/Service/Answers/AnswersTest.php
@@ -12,7 +12,7 @@
use App\Game\Domain\Model\PlayerId;
use App\Game\Infrastructure\Encoder\Base64Encoder;
use App\Game\Infrastructure\Repository\InMemory\InMemoryPlayerRepository;
-use App\Tests\GameTestCase;
+use App\Tests\Game\GameTestCase;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
diff --git a/code/tests/Game/Application/Service/Answers/AnswersValidatorTest.php b/code/src/Game/tests/Application/Service/Answers/AnswersValidatorTest.php
similarity index 100%
rename from code/tests/Game/Application/Service/Answers/AnswersValidatorTest.php
rename to code/src/Game/tests/Application/Service/Answers/AnswersValidatorTest.php
diff --git a/code/tests/Game/Application/Service/Auth/PlayerLoginTest.php b/code/src/Game/tests/Application/Service/Auth/PlayerLoginTest.php
similarity index 98%
rename from code/tests/Game/Application/Service/Auth/PlayerLoginTest.php
rename to code/src/Game/tests/Application/Service/Auth/PlayerLoginTest.php
index 0316840..ce42555 100644
--- a/code/tests/Game/Application/Service/Auth/PlayerLoginTest.php
+++ b/code/src/Game/tests/Application/Service/Auth/PlayerLoginTest.php
@@ -9,7 +9,7 @@
use App\Game\Domain\Model\PlayerId;
use App\Game\Domain\Service\PlayerTokenHack;
use App\Game\Infrastructure\Repository\InMemory\InMemoryPlayerRepository;
-use App\Tests\GameTestCase;
+use App\Tests\Game\GameTestCase;
use Psr\Log\NullLogger;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
diff --git a/code/tests/Game/Application/Service/Auth/PlayerRegisterTest.php b/code/src/Game/tests/Application/Service/Auth/PlayerRegisterTest.php
similarity index 100%
rename from code/tests/Game/Application/Service/Auth/PlayerRegisterTest.php
rename to code/src/Game/tests/Application/Service/Auth/PlayerRegisterTest.php
diff --git a/code/tests/Game/Application/Service/GamePlayTest.php b/code/src/Game/tests/Application/Service/GamePlayTest.php
similarity index 80%
rename from code/tests/Game/Application/Service/GamePlayTest.php
rename to code/src/Game/tests/Application/Service/GamePlayTest.php
index 23f627a..f64f547 100644
--- a/code/tests/Game/Application/Service/GamePlayTest.php
+++ b/code/src/Game/tests/Application/Service/GamePlayTest.php
@@ -28,17 +28,17 @@ final class GamePlayTest extends TestCase
public function testCreateNewGame(): void
{
$response = new SuccessApiResponse([
- [
- 'line' => [
- ['coordinate' => '1.1', 'letter' => 't'],
- ['coordinate' => '1.2', 'letter' => 'e'],
- ['coordinate' => '1.3', 'letter' => 's'],
- ['coordinate' => '1.4', 'letter' => 't'],
- ],
- 'word' => ['definition' => 'test']
- ]
+ [
+ 'line' => [
+ ['coordinate' => '1.1', 'letter' => 't'],
+ ['coordinate' => '1.2', 'letter' => 'e'],
+ ['coordinate' => '1.3', 'letter' => 's'],
+ ['coordinate' => '1.4', 'letter' => 't'],
+ ],
+ 'word' => ['definition' => 'test']
]
- );
+ ]);
+
$crossword = new CrosswordDto($response->body());
$crosswordMock = $this->createMock(CrosswordInterface::class);
diff --git a/code/tests/Game/Application/Service/PlayerFromTokenExtractorTest.php b/code/src/Game/tests/Application/Service/PlayerFromTokenExtractorTest.php
similarity index 98%
rename from code/tests/Game/Application/Service/PlayerFromTokenExtractorTest.php
rename to code/src/Game/tests/Application/Service/PlayerFromTokenExtractorTest.php
index 79be4db..0b622ff 100644
--- a/code/tests/Game/Application/Service/PlayerFromTokenExtractorTest.php
+++ b/code/src/Game/tests/Application/Service/PlayerFromTokenExtractorTest.php
@@ -8,7 +8,7 @@
use App\Game\Application\Service\PlayerFromTokenExtractor;
use App\Game\Domain\Dto\PlayerDto;
use App\Game\Domain\Model\PlayerId;
-use App\Tests\GameTestCase;
+use App\Tests\Game\GameTestCase;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
diff --git a/code/tests/Game/Application/Service/PlayerHistoryTest.php b/code/src/Game/tests/Application/Service/PlayerHistoryTest.php
similarity index 100%
rename from code/tests/Game/Application/Service/PlayerHistoryTest.php
rename to code/src/Game/tests/Application/Service/PlayerHistoryTest.php
diff --git a/code/tests/Game/Domain/Assembler/PlayerAssemblerTest.php b/code/src/Game/tests/Domain/Assembler/PlayerAssemblerTest.php
similarity index 95%
rename from code/tests/Game/Domain/Assembler/PlayerAssemblerTest.php
rename to code/src/Game/tests/Domain/Assembler/PlayerAssemblerTest.php
index 1360e40..70694fa 100644
--- a/code/tests/Game/Domain/Assembler/PlayerAssemblerTest.php
+++ b/code/src/Game/tests/Domain/Assembler/PlayerAssemblerTest.php
@@ -7,7 +7,7 @@
use App\Game\Domain\Assembler\PlayerAssembler;
use App\Game\Domain\Dto\PlayerDto;
use App\Game\Domain\Model\PlayerId;
-use App\Tests\GameTestCase;
+use App\Tests\Game\GameTestCase;
/**
* @coversDefaultClass \App\Game\Domain\Assembler\PlayerAssembler
diff --git a/code/tests/Game/Domain/Model/GridTest.php b/code/src/Game/tests/Domain/Model/GridTest.php
similarity index 100%
rename from code/tests/Game/Domain/Model/GridTest.php
rename to code/src/Game/tests/Domain/Model/GridTest.php
diff --git a/code/tests/Game/Domain/Model/PlayerTest.php b/code/src/Game/tests/Domain/Model/PlayerTest.php
similarity index 95%
rename from code/tests/Game/Domain/Model/PlayerTest.php
rename to code/src/Game/tests/Domain/Model/PlayerTest.php
index e97bebd..c005fcf 100644
--- a/code/tests/Game/Domain/Model/PlayerTest.php
+++ b/code/src/Game/tests/Domain/Model/PlayerTest.php
@@ -6,7 +6,7 @@
use App\Game\Domain\Enum\Level;
use App\Game\Domain\Model\PlayerId;
-use App\Tests\GameTestCase;
+use App\Tests\Game\GameTestCase;
/**
* @coversDefaultClass \App\Game\Domain\Model\Player
diff --git a/code/tests/GameTestCase.php b/code/src/Game/tests/GameTestCase.php
similarity index 95%
rename from code/tests/GameTestCase.php
rename to code/src/Game/tests/GameTestCase.php
index 250e8f7..6cecdc8 100644
--- a/code/tests/GameTestCase.php
+++ b/code/src/Game/tests/GameTestCase.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace App\Tests;
+namespace App\Tests\Game;
use App\Game\Domain\Enum\Level;
use App\Game\Domain\Enum\Role;
diff --git a/code/tests/Game/UI/Console/CreatePlayerCommandTest.php b/code/src/Game/tests/UI/Console/CreatePlayerCommandTest.php
similarity index 100%
rename from code/tests/Game/UI/Console/CreatePlayerCommandTest.php
rename to code/src/Game/tests/UI/Console/CreatePlayerCommandTest.php
diff --git a/code/src/Game/tests/bootstrap.php b/code/src/Game/tests/bootstrap.php
new file mode 100644
index 0000000..128206c
--- /dev/null
+++ b/code/src/Game/tests/bootstrap.php
@@ -0,0 +1,11 @@
+bootEnv(dirname(__DIR__) . '/../../.env');
+}
diff --git a/code/src/SharedKernel/config/ecs.php b/code/src/SharedKernel/config/ecs.php
index f463b6a..1afe32f 100644
--- a/code/src/SharedKernel/config/ecs.php
+++ b/code/src/SharedKernel/config/ecs.php
@@ -2,4 +2,5 @@
const SHARED_KERNEL_SKIP_PATH = [
'/src/SharedKernel/Infrastructure/HttpClient/Middleware',
+ '/src/SharedKernel/tests',
];
diff --git a/code/tests/SharedKernel/Application/Assert/RequestAssertTest.php b/code/src/SharedKernel/tests/Application/Assert/RequestAssertTest.php
similarity index 100%
rename from code/tests/SharedKernel/Application/Assert/RequestAssertTest.php
rename to code/src/SharedKernel/tests/Application/Assert/RequestAssertTest.php
diff --git a/code/tests/SharedKernel/Application/Response/SuccessResponseTest.php b/code/src/SharedKernel/tests/Application/Response/SuccessResponseTest.php
similarity index 100%
rename from code/tests/SharedKernel/Application/Response/SuccessResponseTest.php
rename to code/src/SharedKernel/tests/Application/Response/SuccessResponseTest.php
diff --git a/code/tests/SharedKernel/Domain/Model/MaskTest.php b/code/src/SharedKernel/tests/Domain/Model/MaskTest.php
similarity index 100%
rename from code/tests/SharedKernel/Domain/Model/MaskTest.php
rename to code/src/SharedKernel/tests/Domain/Model/MaskTest.php
diff --git a/code/tests/SharedKernel/Infrastructure/HttpClient/ResponseDataExtractorTest.php b/code/src/SharedKernel/tests/Infrastructure/HttpClient/ResponseDataExtractorTest.php
similarity index 100%
rename from code/tests/SharedKernel/Infrastructure/HttpClient/ResponseDataExtractorTest.php
rename to code/src/SharedKernel/tests/Infrastructure/HttpClient/ResponseDataExtractorTest.php
diff --git a/code/src/SharedKernel/tests/bootstrap.php b/code/src/SharedKernel/tests/bootstrap.php
new file mode 100644
index 0000000..128206c
--- /dev/null
+++ b/code/src/SharedKernel/tests/bootstrap.php
@@ -0,0 +1,11 @@
+bootEnv(dirname(__DIR__) . '/../../.env');
+}
diff --git a/code/tests/bootstrap.php b/code/tests/bootstrap.php
deleted file mode 100644
index 469dcce..0000000
--- a/code/tests/bootstrap.php
+++ /dev/null
@@ -1,11 +0,0 @@
-bootEnv(dirname(__DIR__).'/.env');
-}