Skip to content

Commit b83f8c0

Browse files
committed
Create object schema test
1 parent e6f03c8 commit b83f8c0

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

tests/Schemas/ObjectSchemaTest.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
namespace Webdevcave\SchemaValidator\Tests\Schemas;
4+
5+
use PHPUnit\Framework\Attributes\CoversClass;
6+
use stdClass;
7+
use Webdevcave\SchemaValidator\Schemas\ArraySchema;
8+
use Webdevcave\SchemaValidator\Schemas\BaseSchema;
9+
use Webdevcave\SchemaValidator\Schemas\ObjectSchema;
10+
use PHPUnit\Framework\TestCase;
11+
use Webdevcave\SchemaValidator\Validator;
12+
13+
#[CoversClass(ObjectSchema::class)]
14+
#[CoversClass(ArraySchema::class)]
15+
#[CoversClass(BaseSchema::class)]
16+
#[CoversClass(Validator::class)]
17+
class ObjectSchemaTest extends TestCase
18+
{
19+
public function testTypeCheck(): void
20+
{
21+
$schema = Validator::object();
22+
23+
$this->assertFalse($schema->validate(1), "Array schema should not validate integers");
24+
$this->assertFalse($schema->validate(1.1), "Array schema should not validate floats");
25+
$this->assertFalse($schema->validate('str'), "Array schema should not validate strings");
26+
$this->assertFalse($schema->validate([1, 2, 3]), "Array schema should not validate arrays");
27+
28+
$this->assertTrue($schema->validate(new stdClass()), "Array schema should validate object");
29+
}
30+
}

0 commit comments

Comments
 (0)