Skip to content

Commit

Permalink
Merge 6b67fb4 into bd3d9bc
Browse files Browse the repository at this point in the history
  • Loading branch information
fcastilloes committed May 18, 2017
2 parents bd3d9bc + 6b67fb4 commit 8d92bbc
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/Api/TypeCatalog.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class TypeCatalog
const TYPE_STRING = 'string';
const TYPE_ARRAY = 'array';
const TYPE_OBJECT = 'object';
const TYPE_BINARY = 'binary';

/**
* @param array $value
Expand Down Expand Up @@ -70,6 +71,7 @@ public function getDefault(string $type)
case self::TYPE_FLOAT:
return 0;
case self::TYPE_STRING:
case self::TYPE_BINARY:
return '';
case self::TYPE_ARRAY:
case self::TYPE_OBJECT:
Expand Down Expand Up @@ -110,6 +112,8 @@ public function validate(string $type, $value): bool
return false;
}
return $this->isObjectType($value);
case self::TYPE_BINARY:
return is_string($value);
}

throw new InvalidValueException("Invalid value type: $type");
Expand Down
29 changes: 29 additions & 0 deletions tests/Api/TypeCatalogTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,14 @@ public function testObjectDefault()
);
}

public function testBinaryDefault()
{
$this->assertEquals(
'',
$this->typeCatalog->getDefault(TypeCatalog::TYPE_BINARY)
);
}

public function validateDataProvider()
{
return [
Expand All @@ -97,6 +105,7 @@ public function validateDataProvider()
[false, TypeCatalog::TYPE_NULL, 3.1416],
[false, TypeCatalog::TYPE_NULL, ''],
[false, TypeCatalog::TYPE_NULL, 'foo'],
[false, TypeCatalog::TYPE_NULL, "\x01\x02"],
[false, TypeCatalog::TYPE_NULL, []],
[false, TypeCatalog::TYPE_NULL, ['a', 'b', 'c']],
[false, TypeCatalog::TYPE_NULL, ['a' => 1, 'b' => 2]],
Expand All @@ -110,6 +119,7 @@ public function validateDataProvider()
[false, TypeCatalog::TYPE_BOOLEAN, 3.1416],
[false, TypeCatalog::TYPE_BOOLEAN, ''],
[false, TypeCatalog::TYPE_BOOLEAN, 'foo'],
[false, TypeCatalog::TYPE_BOOLEAN, "\x01\x02"],
[false, TypeCatalog::TYPE_BOOLEAN, []],
[false, TypeCatalog::TYPE_BOOLEAN, ['a', 'b', 'c']],
[false, TypeCatalog::TYPE_BOOLEAN, ['a' => 1, 'b' => 2]],
Expand All @@ -123,6 +133,7 @@ public function validateDataProvider()
[false, TypeCatalog::TYPE_INTEGER, 3.1416],
[false, TypeCatalog::TYPE_INTEGER, ''],
[false, TypeCatalog::TYPE_INTEGER, 'foo'],
[false, TypeCatalog::TYPE_INTEGER, "\x01\x02"],
[false, TypeCatalog::TYPE_INTEGER, []],
[false, TypeCatalog::TYPE_INTEGER, ['a', 'b', 'c']],
[false, TypeCatalog::TYPE_INTEGER, ['a' => 1, 'b' => 2]],
Expand All @@ -136,6 +147,7 @@ public function validateDataProvider()
[true, TypeCatalog::TYPE_FLOAT, 3.1416],
[false, TypeCatalog::TYPE_FLOAT, ''],
[false, TypeCatalog::TYPE_FLOAT, 'foo'],
[false, TypeCatalog::TYPE_FLOAT, "\x01\x02"],
[false, TypeCatalog::TYPE_FLOAT, []],
[false, TypeCatalog::TYPE_FLOAT, ['a', 'b', 'c']],
[false, TypeCatalog::TYPE_FLOAT, ['a' => 1, 'b' => 2]],
Expand All @@ -149,6 +161,7 @@ public function validateDataProvider()
[false, TypeCatalog::TYPE_STRING, 3.1416],
[true, TypeCatalog::TYPE_STRING, ''],
[true, TypeCatalog::TYPE_STRING, 'foo'],
[true, TypeCatalog::TYPE_STRING, "\x01\x02"],
[false, TypeCatalog::TYPE_STRING, []],
[false, TypeCatalog::TYPE_STRING, ['a', 'b', 'c']],
[false, TypeCatalog::TYPE_STRING, ['a' => 1, 'b' => 2]],
Expand All @@ -162,6 +175,7 @@ public function validateDataProvider()
[false, TypeCatalog::TYPE_ARRAY, 3.1416],
[false, TypeCatalog::TYPE_ARRAY, ''],
[false, TypeCatalog::TYPE_ARRAY, 'foo'],
[false, TypeCatalog::TYPE_ARRAY, "\x01\x02"],
[true, TypeCatalog::TYPE_ARRAY, []],
[true, TypeCatalog::TYPE_ARRAY, ['a', 'b', 'c']],
[false, TypeCatalog::TYPE_ARRAY, ['a' => 1, 'b' => 2]],
Expand All @@ -175,9 +189,24 @@ public function validateDataProvider()
[false, TypeCatalog::TYPE_OBJECT, 3.1416],
[false, TypeCatalog::TYPE_OBJECT, ''],
[false, TypeCatalog::TYPE_OBJECT, 'foo'],
[false, TypeCatalog::TYPE_OBJECT, "\x01\x02"],
[true, TypeCatalog::TYPE_OBJECT, []],
[false, TypeCatalog::TYPE_OBJECT, ['a', 'b', 'c']],
[true, TypeCatalog::TYPE_OBJECT, ['a' => 1, 'b' => 2]],
// Type Binary
[false, TypeCatalog::TYPE_BINARY, null],
[false, TypeCatalog::TYPE_BINARY, false],
[false, TypeCatalog::TYPE_BINARY, true],
[false, TypeCatalog::TYPE_BINARY, 0],
[false, TypeCatalog::TYPE_BINARY, 42],
[false, TypeCatalog::TYPE_BINARY, 0.0],
[false, TypeCatalog::TYPE_BINARY, 3.1416],
[true, TypeCatalog::TYPE_BINARY, ''],
[true, TypeCatalog::TYPE_BINARY, 'foo'],
[true, TypeCatalog::TYPE_BINARY, "\x01\x02"],
[false, TypeCatalog::TYPE_BINARY, []],
[false, TypeCatalog::TYPE_BINARY, ['a', 'b', 'c']],
[false, TypeCatalog::TYPE_BINARY, ['a' => 1, 'b' => 2]],
];
}

Expand Down

0 comments on commit 8d92bbc

Please sign in to comment.