php-school/couch-db-check

A Couch DB check to use in your workshops!

1.2.0 2016-12-17 21:01 UTC

This package is auto-updated.

Last update: 2022-07-12 16:00:35 UTC


README

A Couch DB check to use in your workshops!

68747470733a2f2f7068707363686f6f6c2e6865726f6b756170702e636f6d2f62616467652e737667

----

Installation

In your workshop:

composer require php-school/couch-db-check

Register the check with the application:

//app/bootstrap.php

use PhpSchool\CouchDb\CouchDbCheck;

...

$app = new Application('My Workshop', __DIR__ . '/config.php');
$app->addCheck(CouchDbCheck::class);

Register the check with the container:

//app/config.php

use PhpSchool\CouchDb\CouchDbCheck;

return [

   ...
  
   CouchDbCheck::class => object(),
]

Usage

Your exercise should implement the interface PhpSchool\CouchDb\CouchDbExerciseCheck

This introduces the methods:

/**
 * @param CouchDBClient $couchDbClient
 * @return void
 */
public function seed(CouchDBClient $couchDbClient);

/**
 * @param CouchDBClient $couchDbClient
 * @return bool
 */
public function verify(CouchDBClient $couchDbClient);

The check will automatically create two databases before running/verifying, and remove them at the end of running/verifying. The databases phpschool and phpschool-student will be created. These arguments will be prepended to the exercise cli arguments. phpschool to your proposed solution and phpschool-student to the students submission.

In the seed method, you should configure the database with any data you might want in there for the exercise. You are passed an instance of CouchDBClient which is connected to the students database. You can read about the methods available on it here. After seeding, the check will make sure all the data added, is synchronised with the solution database. This allows for the solution and the students submission to act on the same data without interferring with each other.

The verify method is called after your solution and the students submission have been run, therefore you can perform analysis on the database (you will be passed a client connected to the students database) to check the exercise was completed succesfully. For example, you can check documents were inserted, updated or removed.