| 
<?php
 /*
 * This file is part of Chevere.
 *
 * (c) Rodolfo Berrios <[email protected]>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
 
 declare(strict_types=1);
 
 namespace Chevere\Tests;
 
 use Chevere\Workflow\ResponseReference;
 use InvalidArgumentException;
 use PHPUnit\Framework\TestCase;
 
 final class ResponseReferenceTest extends TestCase
 {
 public function testInvalidArgumentEmpty(): void
 {
 $this->expectException(InvalidArgumentException::class);
 $this->expectExceptionCode(100);
 new ResponseReference('', '');
 }
 
 public function testInvalidArgumentSpaces(): void
 {
 $this->expectException(InvalidArgumentException::class);
 $this->expectExceptionCode(100);
 new ResponseReference(' ', ' ');
 }
 
 public function testInvalidArgumentKeyEmpty(): void
 {
 $this->expectException(InvalidArgumentException::class);
 $this->expectExceptionCode(101);
 new ResponseReference('job', '');
 }
 
 public function testInvalidArgumentKeySpaces(): void
 {
 $this->expectException(InvalidArgumentException::class);
 $this->expectExceptionCode(101);
 new ResponseReference('job', ' ');
 }
 
 public function testConstruct(): void
 {
 $job = 'job';
 $key = 'key';
 $string = $job . ':' . $key;
 $reference = new ResponseReference($job, $key);
 $this->assertSame($string, $reference->__toString());
 $this->assertSame($job, $reference->job());
 $this->assertSame($key, $reference->key());
 }
 
 public function testConstructNoKey(): void
 {
 $job = 'job';
 $key = null;
 $string = $job;
 $reference = new ResponseReference($job, $key);
 $this->assertSame($string, $reference->__toString());
 $this->assertSame($job, $reference->job());
 $this->assertSame($key, $reference->key());
 }
 }
 
 |