Deletion
删除实体的全部版本,删除后不可读取、不可复活,身份不再复用
为什么验证
用户删除数据后,这些数据不能再被读取,离线的 SDK 补发旧版本也不能让它们复活。仍被业务数据使用的 EntitySchema 不能删除,否则那些数据就无法解释。约定见 API · 状态码 和 Storage · 删除与墓碑。
前置条件
通过 WebApplicationFactory 启动 API,连接一个独立的测试数据库,见 Database。先提交一个 EntitySchema 和一个有两个版本的业务实体。
操作与预期结果
| 操作 | 预期结果 |
|---|---|
| 删除 EntitySchema,业务实体仍在使用它 | 409,rule 为 HISTORY-9,见 HISTORY-9 |
| 删除业务实体 | 204;读取当前版本、版本链和两个版本都返回 410,见 HISTORY-6 |
| 再次删除同一个实体 | 204 |
| 原样重发它的首版 | 409,rule 为 HISTORY-7,见 HISTORY-7 |
| 把它首版的 VersionId 用在一个新实体上提交 | 409,rule 为 VERSION-9,见 VERSION-9 |
| 再删除 EntitySchema,然后提交使用同一资源名的新 EntitySchema | 删除返回 204,新 EntitySchema 保存成功 |
| 删除从未出现过的 EntityId | 404 |
删除后引用方的结果见 Referrers。
测试实现
EntityApiTests 中的删除测试。
执行结果
Case ID:api-deletion
报告时间:
报告代码版本:d0ad859f366f8a9bd66443fc7a4fb2262bda1081
以下仅展示此 Case 在该报告中的执行结果。
- 测试总数
- 1
- 通过
- 1
- 未成功
- 0
- 运行总耗时
- 未知