classItem
final class Item
A requirement or specification with its source evidence, links and disposition.
Requirements are optional upstream records quoted from a source; specifications are EARS statements that claim evidence directly or through requirements, link tests, or declare an independent origin with a reason.
Properties§
public string $idpublic string $kindpublic string $statementpublic string $statuspublic Source|null $sourcepublic list<Excerpt> $evidencepublic list<TestReference> $testspublic list<string> $requirementspublic list<string> $labelspublic string $categorypublic string $originpublic string $reasonpublic string $filepublic array<string, mixed> $dataMethods§
public function __construct(
public string $id,
public string $kind,
public string $statement,
public string $status,
public Source|null $source,
public list<Excerpt> $evidence,
public list<TestReference> $tests,
public list<string> $requirements,
public list<string> $related,
public list<string> $labels,
public string $category,
public string $origin,
public string $reason,
public string $file,
public array<string, mixed> $data,
)Parameters
$id | string | The item ID |
$kind | string | "requirement" or "specification" |
$statement | string | The requirement text or EARS statement |
$status | string | "supported" or "unsupported" |
$source | Source|null | The source of the item's definition file |
$evidence | list<Excerpt> | The quoted source units |
$tests | list<TestReference> | The linked tests |
$requirements | list<string> | The IDs of the requirements it refines |
$related | list<string> | The IDs of related items |
$labels | list<string> | Free-form labels |
$category | string | The category, or an empty string |
$origin | string | "sourced", "original" or "undocumented" |
$reason | string | Why the item is unsupported or independent |
$file | string | The definition file declaring the item |
$data | array<string, mixed> | The item as written, including design and metadata |
public static function from(mixed $value, Source|null $source, string $file): selfReads and validates an item of a definition.
Parameters
$value | mixed | The decoded item |
$source | Source|null | The source of the definition file |
$file | string | The definition file |
Returns
self The itemThrows
InvalidInputException When a field is invalid or the item breaks a disposition ruleTest cases 5
Called from 1
Calls 11
- static-call Fields::mapping() line 68
- static-call Fields::keys() line 69
- new
selfline 70 - static-call Fields::text() line 71
- function-call
array_mapline 76 - static-call Excerpt::from() line 76
- static-call Fields::sequence() line 76
- static-call TestReference::from() line 77
- static-call Fields::strings() line 78
- method-call ItemValidator::validate() line 87
- new ItemValidator line 87
Test cases 76§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 5
Other tests reaching this symbol 71
DefinitionReaderTestcallsDefinitionsTest::testHoldsItemsSourcesAndFilescallsLinkValidatorTest::testValidateAcceptsResolvedLinkscallsLinkValidatorTest::testValidateChecksEveryItemcallsLinkValidatorTest::testValidateRejectsMissingRelatedItemcallsLinkValidatorTest::testValidateRejectsMissingRequirementcallsLinkValidatorTest::testValidateRejectsRequirementThatIsNotSourcedcallsLinkValidatorTest::testValidateRejectsRequirementThatIsSpecificationcallsLinkValidatorTest::testValidateRejectsRunnerNamedByExtensioncallsLinkValidatorTest::testValidateRejectsSelfRelationcallsLinkValidatorTest::testValidateRejectsSelfRequirementcallsLinkValidatorTest::testValidateRejectsUnknownRunnercallsLoaderTestcallsReferenceTest::testValidateAcceptsALinkToTheDefiningFileAndHeadingcallsReferenceTest::testValidateRejectsALinkToAMissingFilecallsReferenceTest::testValidateRejectsALinkToAnotherFilecallsReferenceTest::testValidateRejectsTheWrongHeadingFragmentcallsMarkdownDocumentTestcallsApplicationTestcallsCommandHandlerTestcallsCommandLineTestcallsExecutorTestcallsFormatterTestcallsItemRecordTest::testDescribeDefaultsMissingSourceDesignMetadataAndTestscallsItemRecordTest::testDescribeReturnsTheCompleteTraceabilityRecordcallsOptionsTest::testMatchesFiltersAnIndependentItemcallsOptionsTest::testMatchesFiltersASourcedItemcallsSpecificationReportTest::testGenerateChecksLinkageIndependentlyOfExecutioncallsItemValidatorTest::providerDetailsAcceptsItemscallsItemValidatorTest::providerDetailsRejectsItemscallsItemValidatorTest::providerDispositionAcceptsItemscallsItemValidatorTest::providerDispositionRejectsItemscallsItemValidatorTest::providerIdentityAcceptsItemscallsItemValidatorTest::providerIdentityRejectsItemscallsItemValidatorTest::providerStatementAcceptsItemscallsItemValidatorTest::providerStatementRejectsItemscallsItemValidatorTest::providerValidateAcceptsItemscallsItemValidatorTest::providerValidateReportsTheFirstBrokenRulecallsAnalysisTest::testSummaryCountsTheGivenUnitscallsAnalyzerTest::testAnalyzeReadsPinnedSnapshotsUnlessLivecallsClaimsTest::testAssignKeepsOtherSpecificationsWhenOneIsInvalidcallsClaimsTest::testAssignLetsASpecificationClaimTheEvidenceOfTheRequirementsItRefinescallsClaimsTest::testAssignLetsNoRequirementClaimItsOwnEvidencecallsClaimsTest::testAssignRecordsTheEvidenceOfASpecificationcallsClaimsTest::testAssignSkipsASpecificationRefiningARequirementWithInvalidEvidencecallsClaimsTest::testAssignSkipsASpecificationWithInvalidEvidencecallsCoverageTest::testReportAppliesTheDifferentialThresholdToNewAndChangedUnitscallsCoverageTest::testReportAppliesTheOverallThresholdcallsCoverageTest::testReportAppliesTheSourceThresholdscallsCoverageTest::testReportDescribesEveryUnitAndPassesWithoutGatescallsSnapshotTest::testCreateListsTheFingerprintOfEveryUnitcallsSourceUnitTest::testFingerprintChangesWithTheRefinedRequirementRecordcallsSourceUnitTest::testFingerprintHashesClaimsAndRefinedRequirementsByIDcallsSourceUnitTest::testFingerprintIgnoresTheOrderOfClaimscallsSourceUnitTest::testSupportedIsFalseWithOnlyUnsupportedClaimscallsSourceUnitTest::testSupportedIsTrueWhenAnyClaimIsSupportedcallsSourceUnitTest::testToArrayReportsAnUnsupportedUnitcallsSourceUnitTest::testToArrayReportsASupportedUnitcallsTestExecutionTest::testRunDeduplicatesEligibleTargetsAndNeverRunsUnsupportedItemscallsVerifierTest::testVerifyDefersManualTargetsUnlessAllIsRequestedcallsVerifierTest::testVerifyFailsWhenAnyTargetFailscallsVerifierTest::testVerifyKeysResultsByItemIdcallsVerifierTest::testVerifyPassesWhenEveryTargetPassescallsVerifierTest::testVerifyRejectsAnUnknownRunnerExtensioncallsVerifierTest::testVerifyReportsLinkedTargetsAsNotRunWithoutTestscallsVerifierTest::testVerifyReportsRequirementsAsNotApplicableWithoutRunningThemcallsVerifierTest::testVerifyReportsSpecificationsWithoutTestsAsUnverifiedcallsVerifierTest::testVerifyReportsUnsupportedSpecificationsWithoutRunningThemcallsVerifierTest::testVerifyRunsASharedTargetOncecallsVerifierTest::testVerifyRunsTheSameTargetOfDifferentRunnersSeparatelycallsVerifierTest::testVerifySharesAnAutomaticResultWithAnEarlierManualReferencecalls
Relations§
Static calls 1
Type declarations 7
- type Requirements\Console\ItemRecord packages/requirements/src/Console/ItemRecord.php:21
- type Requirements\Console\Options packages/requirements/src/Console/Options.php:136
- type Requirements\Model\ItemValidator packages/requirements/src/Model/ItemValidator.php:23
- type Requirements\Model\ItemValidator packages/requirements/src/Model/ItemValidator.php:38
- type Requirements\Model\ItemValidator packages/requirements/src/Model/ItemValidator.php:58
- type Requirements\Model\ItemValidator packages/requirements/src/Model/ItemValidator.php:79
- type Requirements\Model\ItemValidator packages/requirements/src/Model/ItemValidator.php:102