diff --git a/README.md b/README.md
index 0f5a165..ce2b43f 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,27 @@
-broadway/broadway-saga
-======================
+broadway/saga-state-mongodb
+===========================
-Proof-of-concept component providing saga functionality to your application.
-
-This component provides saga state and metadata management and a manager that
-can be used to wake up and start sagas.
+Saga state persistence for [broadway/broadway-saga](https://github.com/broadway/broadway-saga) using MongoDB.
> Note: this component is highly experimental.
# Installation
```
-$ composer require broadway/broadway-saga
+$ composer require broadway/saga-state-mongodb
+```
+
+Testing
+-------
+For testing you need a running MongoDB instance.
+To start a local MongoDB you can use the provided [docker-compose.yml](https://docs.docker.com/compose/compose-file/):
+
+```
+docker-compose up -d
```
-> Note: to use MongoDB on PHP7 you will also need to install `alcaeus/mongo-php-adapter`
+To run the tests:
+
+```
+./vendor/bin/phpunit
+```
diff --git a/composer.json b/composer.json
index 2b65945..3f87a9a 100644
--- a/composer.json
+++ b/composer.json
@@ -1,13 +1,18 @@
{
- "name": "broadway/broadway-saga",
- "description": "Proof-of-concept component providing saga functionality to broadway/broadway.",
+ "name": "broadway/saga-state-mongodb",
+ "description": "Saga state persistence for broadway/broadway-saga using MongoDB",
"license": "MIT",
"require": {
"php": ">=7.0",
- "broadway/broadway": "^2.0",
+ "broadway/broadway-saga": "^0.4",
+ "doctrine/mongodb": "^1.0",
"beberlei/assert": "^2.0",
"alcaeus/mongo-php-adapter": "^1.1"
},
+ "require-dev": {
+ "phpunit/phpunit": "^4.8",
+ "ramsey/uuid": "^3.3"
+ },
"authors": [
{
"name": "Alexander",
@@ -34,23 +39,14 @@
"homepage": "http://labs.qandidate.com/"
}
],
- "require-dev": {
- "doctrine/mongodb": "^1.0",
- "phpunit/phpunit": "^4.8",
- "ramsey/uuid": "^3.3"
- },
- "suggest": {
- "doctrine/mongodb": "For persisting saga states",
- "alcaeus/mongo-php-adapter": "Polyfill for Mongo extension on PHP 7"
- },
"autoload": {
"psr-4": {
- "Broadway\\Saga\\": "src/"
+ "Broadway\\Saga\\State\\MongoDB\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
- "Broadway\\Saga\\": "test/"
+ "Broadway\\Saga\\State\\MongoDB\\": "test/"
}
},
"extra": {
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..9f879a1
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,6 @@
+version: '3.2'
+services:
+ mongodb:
+ image: mongo:3
+ ports:
+ - "27017:27017"
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index 94608f8..3e0b0a5 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -22,9 +22,4 @@
./src/
-
-
- mongo
-
-
diff --git a/src/State/MongoDBRepository.php b/src/MongoDBRepository.php
similarity index 91%
rename from src/State/MongoDBRepository.php
rename to src/MongoDBRepository.php
index 1566815..59bfe3c 100644
--- a/src/State/MongoDBRepository.php
+++ b/src/MongoDBRepository.php
@@ -9,9 +9,12 @@
* file that was distributed with this source code.
*/
-namespace Broadway\Saga\State;
+namespace Broadway\Saga\State\MongoDB;
use Broadway\Saga\State;
+use Broadway\Saga\State\Criteria;
+use Broadway\Saga\State\RepositoryException;
+use Broadway\Saga\State\RepositoryInterface;
use Doctrine\MongoDB\Collection;
class MongoDBRepository implements RepositoryInterface
diff --git a/test/State/MongoDBRepositoryTest.php b/test/MongoDBRepositoryTest.php
similarity index 92%
rename from test/State/MongoDBRepositoryTest.php
rename to test/MongoDBRepositoryTest.php
index 8e125f6..0c988fb 100644
--- a/test/State/MongoDBRepositoryTest.php
+++ b/test/MongoDBRepositoryTest.php
@@ -9,14 +9,12 @@
* file that was distributed with this source code.
*/
-namespace Broadway\Saga\State;
+namespace Broadway\Saga\State\MongoDB;
+use Broadway\Saga\State\Testing\AbstractRepositoryTest;
use Doctrine\MongoDB\Configuration;
use Doctrine\MongoDB\Connection;
-/**
- * @group mongo
- */
class MongoDBRepositoryTest extends AbstractRepositoryTest
{
protected static $dbName = 'doctrine_mongodb';