Submission
一次提交按顺序保存版本,重试得到首次的确认,被拒绝时指出位置和规则
为什么验证
写入方靠 POST /versions 的响应判断哪些版本已保存。重试必须得到首次保存的确认,被拒绝时必须知道停在哪个版本、因为哪条规则,写入方才能确认前面的版本、处理被拒绝的那一个。约定见 API · 提交 和 内容相同。
前置条件
通过 WebApplicationFactory 启动 API,连接一个独立的测试数据库,见 Database。
操作与预期结果
| 操作 | 预期结果 |
|---|---|
| 按依赖顺序提交一个 EntitySchema、一个业务版本和它的下一版 | 200,按提交的顺序返回每个版本的 versionId 和 recordedAt |
| 原样重发已保存的业务版本 | 200,recordedAt 与首次保存时相同,见 VERSION-7 |
重发一份已保存的 Observation,时间改写为 +08:00 的等值时刻 | 视为内容相同,200 |
| 用已保存的 VersionId 提交不同的内容 | 409,rule 为 VERSION-7 |
| 实体已有下一版后,再提交一个基于首版的新版本 | 409,rule 为 VERSION-6,见 VERSION-6 |
| 一次提交三个版本,第二个违反 Core 规则 | 错误带 index 为 1、这个版本的 versionId 和 rule;第一个版本可以读取,第三个版本返回 404,见 VERSION-13 |
一次提交两个版本,第二个带有 recordedAt | 400,不带 index;第一个版本也没有保存 |
| 请求体超过 10 MiB | 413 |
测试实现
EntityApiTests 中的提交测试。
执行结果
Case ID:api-submission
报告时间:
报告代码版本:d0ad859f366f8a9bd66443fc7a4fb2262bda1081
以下仅展示此 Case 在该报告中的执行结果。
- 在原报告中定位:SubmissionConfirmsInOrderRetriesAndRejectsConflictingVersions
- 在原报告中定位:ContractErrorSavesNothingAndRuleRejectionSavesOnlyPrefix
- 在原报告中定位:RequestLargerThanTenMiBIsRejected
- 测试总数
- 3
- 通过
- 3
- 未成功
- 0
- 运行总耗时
- 未知