Orisumi

Referrers

列出引用一个实体的版本,以及每个引用的位置

为什么验证

追溯和删除都要知道谁引用了一个实体。例如找和 VS Code 有关的数据,要列出引用 VS Code 任何一个版本的前台时段,并知道引用在版本中的位置。约定见 API · 引用方 和 Storage · 引用的反查。

前置条件

通过 WebApplicationFactory 启动 API,连接一个独立的测试数据库,见 Database。目标是一个有两个版本的业务实体。

操作与预期结果

操作预期结果
一个业务版本在嵌套对象和数组中声明了 reference,还有一个值为 VersionId 的普通字符串每个引用列为一个从版本根部写起的 JSON Pointer,例如 /content/links/0/targetVersionIds/2;普通字符串不算引用
Observation 和 InputSet 引用目标位置分别是 Observation 的引用成员和 /content/members/<下标>
引用方分别引用目标的首版和第二版都列为这个实体的引用方,targetVersionId 给出引用的是哪一版,见 ENTITY-7
列出 EntitySchema 的引用方,它被 schemaVersionId 和另一个 Schema 版本的 previousVersionId 指向结果为空
一份 Observation 延长过一次,一个 InputSet 后来改为引用别的实体versions=current 只返回延长后的 Observation;versions=all 返回 Observation 的两个版本和 InputSet 的旧版本
用 limit=1 翻页,其中一个版本有两个引用位置每页一个版本,这个版本的两个位置在同一项中
删除目标实体照常列出引用方,见 HISTORY-8
删除引用方它不再出现在结果中
列出从未出现过的 EntityId 的引用方404

测试实现

ReferrerApiTests。

执行结果

Case ID:api-referrers

报告时间:

报告代码版本:d0ad859f366f8a9bd66443fc7a4fb2262bda1081

查看最新原报告

以下仅展示此 Case 在该报告中的执行结果。

  • TUnit 1.72.16.0
  • runnervmr9t6g
  • Ubuntu 26.04.1 LTS
  • .NET 10.0.14
  • 26 Oct 2026, 05:36:12 UTC
测试总数
5
通过
5
未成功
0
运行总耗时
未知

贡献者

页面历史