Skip to content

Commit b9ea01c

Browse files
authored
Merge pull request #58 from wiz-develop:endou-mame/issue57
コンストラクタの不変条件アサーションで表明違反となった場合、何の違反なのか不明で辛い
2 parents 5d35fa4 + 6a3346a commit b9ea01c

File tree

13 files changed

+65
-31
lines changed

13 files changed

+65
-31
lines changed

phpunit.xml.dist

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
timeoutForMediumTests="10"
1313
timeoutForLargeTests="60"
1414
displayDetailsOnPhpunitDeprecations="true"
15+
displayDetailsOnTestsThatTriggerWarnings="true"
1516
>
1617
<testsuites>
1718
<testsuite name="Unit">

src/Boolean/Base/BooleanValueBase.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use WizDevelop\PhpMonad\Result;
1010
use WizDevelop\PhpValueObject\Error\ValueObjectError;
1111
use WizDevelop\PhpValueObject\IValueObject;
12+
use WizDevelop\PhpValueObject\Utils;
1213

1314
/**
1415
* 真偽値の値オブジェクトの基底クラス
@@ -17,7 +18,7 @@
1718
{
1819
protected function __construct(public bool $value)
1920
{
20-
assert(static::isValid($value)->isOk());
21+
Utils::assertResultIsOk(static::isValid($value));
2122
}
2223

2324
#[Override]

src/Collection/ArrayList.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,15 @@ final public static function tryFromResults(iterable $results): Result
122122
{
123123
$elements = is_array($results) ? $results : iterator_to_array($results);
124124

125-
$elementsResult = Result\combineWithErrorValue(...$elements);
125+
$elementsResult = Result\combine(...$elements);
126126
if ($elementsResult->isErr()) {
127127
$flattenErrs = [];
128128
foreach ($elementsResult->unwrapErr() as $err) {
129-
if ($err instanceof IErrorValue) { // @phpstan-ignore-line
129+
if ($err instanceof IErrorValue) {
130130
$flattenErrs[] = $err;
131131
} elseif (is_array($err)) {
132132
foreach ($err as $e) {
133-
if ($e instanceof IErrorValue) { // @phpstan-ignore-line
133+
if ($e instanceof IErrorValue) {
134134
$flattenErrs[] = $e;
135135
} else {
136136
throw new LogicException(

src/Collection/Base/CollectionBase.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use WizDevelop\PhpMonad\Result;
1010
use WizDevelop\PhpValueObject\Error\ValueObjectError;
1111
use WizDevelop\PhpValueObject\IValueObject;
12+
use WizDevelop\PhpValueObject\Utils;
1213

1314
use function count;
1415

@@ -27,8 +28,8 @@
2728
*/
2829
protected function __construct(protected array $elements)
2930
{
30-
assert(static::isValid($elements)->isOk());
31-
assert(static::isValidCount($elements)->isOk());
31+
Utils::assertResultIsOk(static::isValid($elements));
32+
Utils::assertResultIsOk(static::isValidCount($elements));
3233
}
3334

3435
#[Override]

src/DateTime/LocalDate.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use WizDevelop\PhpMonad\Result;
1414
use WizDevelop\PhpValueObject\Error\ValueObjectError;
1515
use WizDevelop\PhpValueObject\IValueObject;
16+
use WizDevelop\PhpValueObject\Utils;
1617
use WizDevelop\PhpValueObject\ValueObjectMeta;
1718

1819
/**
@@ -57,11 +58,11 @@ final private function __construct(
5758
private int $day
5859
) {
5960
// NOTE: 不変条件(invariant)
60-
assert(static::isValid($year, $month, $day)->isOk());
61-
assert(static::isValidYear($year)->isOk());
62-
assert(static::isValidMonth($month)->isOk());
63-
assert(static::isValidDay($day)->isOk());
64-
assert(static::isValidDate($year, $month, $day)->isOk());
61+
Utils::assertResultIsOk(static::isValid($year, $month, $day));
62+
Utils::assertResultIsOk(static::isValidYear($year));
63+
Utils::assertResultIsOk(static::isValidMonth($month));
64+
Utils::assertResultIsOk(static::isValidDay($day));
65+
Utils::assertResultIsOk(static::isValidDate($year, $month, $day));
6566
}
6667

6768
// -------------------------------------------------------------------------

src/DateTime/LocalDateRange.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use WizDevelop\PhpMonad\Result;
1313
use WizDevelop\PhpValueObject\Error\ValueObjectError;
1414
use WizDevelop\PhpValueObject\IValueObject;
15+
use WizDevelop\PhpValueObject\Utils;
1516

1617
/**
1718
* @template TStart of LocalDate
@@ -42,8 +43,8 @@ final private function __construct(
4243
private mixed $to,
4344
) {
4445
// NOTE: 不変条件(invariant)
45-
assert(static::isValid($from, $to)->isOk());
46-
assert(static::isValidRange($from, $to)->isOk());
46+
Utils::assertResultIsOk(static::isValid($from, $to));
47+
Utils::assertResultIsOk(static::isValidRange($from, $to));
4748
}
4849

4950
// -------------------------------------------------------------------------

src/DateTime/LocalDateTime.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use WizDevelop\PhpMonad\Result;
1414
use WizDevelop\PhpValueObject\Error\ValueObjectError;
1515
use WizDevelop\PhpValueObject\IValueObject;
16+
use WizDevelop\PhpValueObject\Utils;
1617
use WizDevelop\PhpValueObject\ValueObjectMeta;
1718

1819
/**
@@ -38,7 +39,7 @@ final private function __construct(
3839
private LocalTime $time,
3940
) {
4041
// NOTE: 不変条件(invariant)
41-
assert(static::isValid($date, $time)->isOk());
42+
Utils::assertResultIsOk(static::isValid($date, $time));
4243
}
4344

4445
// -------------------------------------------------------------------------

src/DateTime/LocalDateTimeRange.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use WizDevelop\PhpMonad\Result;
1111
use WizDevelop\PhpValueObject\Error\ValueObjectError;
1212
use WizDevelop\PhpValueObject\IValueObject;
13+
use WizDevelop\PhpValueObject\Utils;
1314
use WizDevelop\PhpValueObject\ValueObjectMeta;
1415

1516
/**
@@ -37,7 +38,7 @@ final private function __construct(
3738
private RangeType $rangeType
3839
) {
3940
// NOTE: 不変条件(invariant)
40-
assert(static::isValid($from, $to)->isOk());
41+
Utils::assertResultIsOk(static::isValid($from, $to));
4142
}
4243

4344
// -------------------------------------------------------------------------

src/DateTime/LocalTime.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use WizDevelop\PhpMonad\Result;
1414
use WizDevelop\PhpValueObject\Error\ValueObjectError;
1515
use WizDevelop\PhpValueObject\IValueObject;
16+
use WizDevelop\PhpValueObject\Utils;
1617
use WizDevelop\PhpValueObject\ValueObjectMeta;
1718

1819
/**
@@ -50,11 +51,11 @@ final private function __construct(
5051
private int $micro
5152
) {
5253
// NOTE: 不変条件(invariant)
53-
assert(static::isValid($hour, $minute, $second, $micro)->isOk());
54-
assert(static::isValidHour($hour)->isOk());
55-
assert(static::isValidMinute($minute)->isOk());
56-
assert(static::isValidSecond($second)->isOk());
57-
assert(static::isValidMicro($micro)->isOk());
54+
Utils::assertResultIsOk(static::isValid($hour, $minute, $second, $micro));
55+
Utils::assertResultIsOk(static::isValidHour($hour));
56+
Utils::assertResultIsOk(static::isValidMinute($minute));
57+
Utils::assertResultIsOk(static::isValidSecond($second));
58+
Utils::assertResultIsOk(static::isValidMicro($micro));
5859
}
5960

6061
// -------------------------------------------------------------------------
@@ -586,7 +587,7 @@ private static function extractTime(DateTimeInterface $value): array
586587
$second = (int)$value->format('s');
587588

588589
/** @var Micro */
589-
$micro = (int)$value->format('u'); // @phpstan-ignore varTag.type
590+
$micro = (int)$value->format('u');
590591

591592
return [$hour, $minute, $second, $micro];
592593
}

src/Number/Decimal/DecimalValueBase.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use WizDevelop\PhpMonad\Result;
1111
use WizDevelop\PhpValueObject\Error\ValueObjectError;
1212
use WizDevelop\PhpValueObject\IValueObject;
13+
use WizDevelop\PhpValueObject\Utils;
1314

1415
/**
1516
* 少数の値オブジェクトの基底クラス
@@ -26,11 +27,9 @@ protected function __construct(public Number $value)
2627
{
2728
// NOTE: 不変条件(invariant)
2829
assert(static::min() <= static::max());
29-
// assert(static::min()->scale <= static::scale());
30-
// assert(static::max()->scale <= static::scale());
31-
assert(static::isValidRange($value)->isOk());
32-
assert(static::isValidDigits($value)->isOk());
33-
assert(static::isValid($value)->isOk());
30+
Utils::assertResultIsOk(static::isValidRange($value));
31+
Utils::assertResultIsOk(static::isValidDigits($value));
32+
Utils::assertResultIsOk(static::isValid($value));
3433
}
3534

3635
#[Override]

0 commit comments

Comments
 (0)