From 7cc4a1e1e63d559548fcdf8f1975fa99eb79ada0 Mon Sep 17 00:00:00 2001 From: yanbobo-ONE <1162510603@qq.com> Date: Thu, 13 Aug 2026 13:05:13 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[feat]:=20=E5=AE=8C=E6=88=90FakeTicket?= =?UTF-8?q?=E5=9C=BA=E6=AC=A1=E7=A5=A8=E6=A1=A3=E4=B8=8E=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=BE=B9=E7=95=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...47\350\241\214\346\200\273\350\247\210.md" | 6 +- .../stage-v2-03/01-reservation-selected.png | Bin 0 -> 138388 bytes .../stage-v2-03/02-order-summary.png | Bin 0 -> 107658 bytes .../stage-v2-03/03-payment-stop.png | Bin 0 -> 62492 bytes .../test-results/stage-v2-03/evidence.md | 17 ++ ...42\345\215\225\350\276\271\347\225\214.md" | 30 ++- .../FakeTicketReservationOrderFlowTest.kt | 108 +++++++++++ .../faketicket/support/ShellTestDevice.kt | 7 +- .../yanbo/faketicket/domain/model/Models.kt | 5 - .../reservation/ReservationOrderPolicy.kt | 172 ++++++++++++++++++ .../navigation/FakeTicketNavHost.kt | 17 +- .../yanbo/faketicket/ui/FakeTicketUiState.kt | 3 - .../faketicket/ui/FakeTicketViewModel.kt | 17 -- .../ui/components/FakeTicketTestTags.kt | 17 ++ .../ui/discovery/DiscoveryScreens.kt | 158 +++++++++++++++- .../reservation/ReservationFlowViewModel.kt | 92 ++++++++++ .../yanbo/faketicket/ui/screens/Screens.kt | 37 ++-- .../reservation/ReservationOrderPolicyTest.kt | 139 ++++++++++++++ .../ReservationFlowViewModelTest.kt | 80 ++++++++ 19 files changed, 856 insertions(+), 49 deletions(-) create mode 100644 docs/images/test-results/stage-v2-03/01-reservation-selected.png create mode 100644 docs/images/test-results/stage-v2-03/02-order-summary.png create mode 100644 docs/images/test-results/stage-v2-03/03-payment-stop.png create mode 100644 docs/images/test-results/stage-v2-03/evidence.md create mode 100644 fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/FakeTicketReservationOrderFlowTest.kt create mode 100644 fake-ticket-app/src/main/java/com/yanbo/faketicket/domain/reservation/ReservationOrderPolicy.kt create mode 100644 fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/reservation/ReservationFlowViewModel.kt create mode 100644 fake-ticket-app/src/test/java/com/yanbo/faketicket/domain/reservation/ReservationOrderPolicyTest.kt create mode 100644 fake-ticket-app/src/test/java/com/yanbo/faketicket/ui/reservation/ReservationFlowViewModelTest.kt diff --git "a/00_\351\241\271\347\233\256\346\211\247\350\241\214\346\200\273\350\247\210.md" "b/00_\351\241\271\347\233\256\346\211\247\350\241\214\346\200\273\350\247\210.md" index 5cae2d3..b85a87e 100644 --- "a/00_\351\241\271\347\233\256\346\211\247\350\241\214\346\200\273\350\247\210.md" +++ "b/00_\351\241\271\347\233\256\346\211\247\350\241\214\346\200\273\350\247\210.md" @@ -8,7 +8,7 @@ 当前整体状态:`IN_PROGRESS` -当前唯一阶段:`03 FakeTicket 场次票档与订单边界(READY)` +当前唯一阶段:`04 FakeTicket 开售排队与异常场景(READY)` ## 目标 @@ -53,8 +53,8 @@ | 00R | [规范迁移与现状审计](docs/stages/v2/00R_规范迁移与现状审计.md) | `VERIFIED` | 2026-08-12 完成 v2 规范迁移与静态一致性检查 | | 01 | [工程与历史实现基线复验](docs/stages/v2/01_工程与历史实现基线复验.md) | `VERIFIED` | 2026-08-13:双模块测试、Lint、APK、签名门禁及 vivo Android 16 启动/旋转验证通过 | | 02 | [FakeTicket 真实布局页面骨架](docs/stages/v2/02_FakeTicket真实布局页面骨架.md) | `VERIFIED` | 2026-08-13:四页 canonical 流程、返回、旋转、稳定 ID 与 vivo Android 16 真机证据通过 | -| 03 | [FakeTicket 场次票档与订单边界](docs/stages/v2/03_FakeTicket场次票档与订单边界.md) | `READY` | 当前唯一可开始阶段;精确场次、票档顺序、数量、总额、支付页停止 | -| 04 | [FakeTicket 开售排队与异常场景](docs/stages/v2/04_FakeTicket开售排队与异常场景.md) | `REVALIDATION_REQUIRED` | 排队成功/失败/超时及风险停止 fixture | +| 03 | [FakeTicket 场次票档与订单边界](docs/stages/v2/03_FakeTicket场次票档与订单边界.md) | `VERIFIED` | 2026-08-13:三场七票档、数量/实名/金额边界、订单摘要与支付停止页在 vivo Android 16 通过 | +| 04 | [FakeTicket 开售排队与异常场景](docs/stages/v2/04_FakeTicket开售排队与异常场景.md) | `READY` | 当前唯一可开始阶段;排队成功/失败/超时及风险停止 fixture | | 05 | [Agent 任务配置目标模式与权限](docs/stages/v2/05_Agent任务配置目标模式与权限.md) | `REVALIDATION_REQUIRED` | 完整标题、城市、场次、票档、金额和逐次确认 | | 06 | [目标身份与 Accessibility 观测](docs/stages/v2/06_目标身份与Accessibility观测.md) | `REVALIDATION_REQUIRED` | 目标配置、包名/版本/签名与节点快照 | | 07 | [截图 OCR 与证据归一化](docs/stages/v2/07_截图OCR与证据归一化.md) | `REVALIDATION_REQUIRED` | 同帧 OCR、隐私和资源生命周期 | diff --git a/docs/images/test-results/stage-v2-03/01-reservation-selected.png b/docs/images/test-results/stage-v2-03/01-reservation-selected.png new file mode 100644 index 0000000000000000000000000000000000000000..fac2489f1c27d8a8a2107d1626103bbadc724065 GIT binary patch literal 138388 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

k(37R({LW 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

4bNBIt?6;z* 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Ξsg$Vzf8 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 literal 0 HcmV?d00001 diff --git a/docs/images/test-results/stage-v2-03/evidence.md b/docs/images/test-results/stage-v2-03/evidence.md new file mode 100644 index 0000000..c2b3ed9 --- /dev/null +++ b/docs/images/test-results/stage-v2-03/evidence.md @@ -0,0 +1,17 @@ +# 阶段 03 真机证据 + +本目录只保存 FakeTicketApp 的脱敏 fixture 页面,不包含真实账号、实名资料、票务平台页面、OCR 原文或完整节点树。 + +- 设备:vivo V2453A +- Android:16(API 36) +- 流程:三亚预约选择 -> 模拟订单摘要 -> 支付停止页 +- 固定选择:2026-12-19 19:30、980 元票档、1 张、观演人 A fixture +- 金额:票款 980 元 + 服务费 10 元 = 合计 990 元 +- 安全结论:支付停止页无支付动作;支付只能由用户本人处理 +- 设备环境:截图右侧可见 vivo 系统 `com.vivo.upslide` 小窗控件,仅覆盖空白区域,未修改用户系统设置 + +文件: + +- `01-reservation-selected.png` +- `02-order-summary.png` +- `03-payment-stop.png` diff --git "a/docs/stages/v2/03_FakeTicket\345\234\272\346\254\241\347\245\250\346\241\243\344\270\216\350\256\242\345\215\225\350\276\271\347\225\214.md" "b/docs/stages/v2/03_FakeTicket\345\234\272\346\254\241\347\245\250\346\241\243\344\270\216\350\256\242\345\215\225\350\276\271\347\225\214.md" index a710ee9..daf6cc8 100644 --- "a/docs/stages/v2/03_FakeTicket\345\234\272\346\254\241\347\245\250\346\241\243\344\270\216\350\256\242\345\215\225\350\276\271\347\225\214.md" +++ "b/docs/stages/v2/03_FakeTicket\345\234\272\346\254\241\347\245\250\346\241\243\344\270\216\350\256\242\345\215\225\350\276\271\347\225\214.md" @@ -1,6 +1,9 @@ # 阶段 03:FakeTicket 场次票档与订单边界 -- 状态:`READY` +- 状态:`VERIFIED` +- 负责人:Codex +- 开始时间:2026-08-13 +- 完成时间:2026-08-13 - 前置:阶段 02 `VERIFIED` ## 目标 @@ -14,3 +17,28 @@ ## 门禁 测试先行覆盖精确日期/时间、首选和有序后备票档、禁用确定按钮、必要费用、总额超限、实名缺失/歧义和支付页无支付动作。JVM、UI、Lint、assemble 与真机流程通过。 + +## 实施结果 + +- 三个可预约场次使用精确日期、时间和稳定 ID;七个票档按 `580 -> 780 -> 980 -> 1280 -> 1680 -> 1980 -> 2380` 固定排序。 +- 票档策略支持首选和有序后备;数量固定为 1 至 2,实名 fixture 数量必须与票数一致。 +- 模拟订单明确计算票款和每张 10 元服务费;测试总额上限为 4000 元,超过时禁止确认。 +- 预约页、订单摘要和支付停止页共享同一订单草稿;支付页删除支付动作,仅允许返回复核。 + +## 验证与证据 + +- TDD 红灯:`ReservationOrderPolicyTest` 首次因策略和 fixture 缺失编译失败;补最小领域实现后通过。 +- TDD 红灯:`ReservationFlowViewModelTest` 首次因状态层缺失编译失败;补最小 `StateFlow` ViewModel 后通过。 +- 真机首次失败:离屏高价票档不在节点树;增加稳定列表 ID 并滚动到节点。 +- 真机第二次失败:滚到列表尾后目标场次离屏;每个选择动作前滚动到对应稳定 ID。 +- 真机第三次失败:摘要文案重复“观演人”;收敛 fixture 显示名职责后通过。 +- `./gradlew :fake-ticket-app:testDebugUnitTest :fake-ticket-app:lintDebug :fake-ticket-app:assembleDebug`:退出码 0;JVM 84 个测试零失败,Lint 和 APK 构建成功。 +- `ANDROID_SERIAL=10AF5C1FCL001TZ ./gradlew :fake-ticket-app:connectedDebugAndroidTest`:退出码 0;vivo V2453A、Android 16/API 36,9 个测试零失败。 +- 支付安全负向:主导航无支付回调,支付停止页无 `ACTION_PAY` 节点;完整真机用例断言支付动作数量为 0。 +- 视觉证据:`docs/images/test-results/stage-v2-03/`;三张图只含脱敏 FakeTicket fixture。右侧 vivo 系统小窗仅覆盖空白区域,未修改设备设置。 + +## 限制与下一门禁 + +- 本阶段只验证 vivo V2453A Android 16/API 36,不外推到其他系统、ROM 或分辨率。 +- 本阶段未操作 AndroidAgent 或真实大麦;真实目标仍须等待阶段 15 及后续逐级验收。 +- 阶段 04 已在总览中成为下一次唯一 `READY`;本次不开始阶段 04。 diff --git a/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/FakeTicketReservationOrderFlowTest.kt b/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/FakeTicketReservationOrderFlowTest.kt new file mode 100644 index 0000000..7e50fef --- /dev/null +++ b/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/FakeTicketReservationOrderFlowTest.kt @@ -0,0 +1,108 @@ +package com.yanbo.faketicket + +import androidx.compose.ui.test.assertCountEquals +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.assertIsEnabled +import androidx.compose.ui.test.assertIsNotEnabled +import androidx.compose.ui.test.hasAnyDescendant +import androidx.compose.ui.test.hasTestTag +import androidx.compose.ui.test.junit4.createEmptyComposeRule +import androidx.compose.ui.test.onAllNodesWithTag +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.performClick +import androidx.compose.ui.test.performScrollToNode +import androidx.compose.ui.test.performTextInput +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.yanbo.faketicket.support.ShellTestDevice +import com.yanbo.faketicket.ui.components.FakeTicketTestTags +import com.yanbo.faketicket.ui.discovery.DiscoveryContent +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class FakeTicketReservationOrderFlowTest { + @get:Rule + val composeRule = createEmptyComposeRule() + + @Before + fun launch() = ShellTestDevice.launchFakeTicket() + + @Test + fun exactReservationCreatesSummaryAndStopsWithoutPaymentAction() { + openReservationSelect() + + listOf( + "12月18日 周五 19:30", + "12月19日 周六 19:30", + "12月20日 周日 19:30", + ).forEach { composeRule.onNodeWithText(it).assertExists() } + listOf(580, 780, 980, 1280, 1680, 1980, 2380).forEach { price -> + composeRule.onNodeWithTag(FakeTicketTestTags.LIST_RESERVATION_OPTIONS) + .performScrollToNode(hasTestTag(FakeTicketTestTags.tier("tier-$price"))) + composeRule.onNodeWithText("¥$price").assertExists() + } + + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_CONFIRM_RESERVATION) + .assertIsNotEnabled() + composeRule.onNodeWithTag(FakeTicketTestTags.LIST_RESERVATION_OPTIONS) + .performScrollToNode(hasTestTag(FakeTicketTestTags.SESSION_2026_12_19_1930)) + composeRule.onNodeWithTag(FakeTicketTestTags.SESSION_2026_12_19_1930).performClick() + composeRule.onNodeWithTag(FakeTicketTestTags.LIST_RESERVATION_OPTIONS) + .performScrollToNode(hasTestTag(FakeTicketTestTags.TIER_980)) + composeRule.onNodeWithTag(FakeTicketTestTags.TIER_980).performClick() + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_CONFIRM_RESERVATION) + .assertIsNotEnabled() + composeRule.onNodeWithTag(FakeTicketTestTags.LIST_RESERVATION_OPTIONS) + .performScrollToNode(hasTestTag(FakeTicketTestTags.ATTENDEE_FIXTURE_A)) + composeRule.onNodeWithTag(FakeTicketTestTags.ATTENDEE_FIXTURE_A).performClick() + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_CONFIRM_RESERVATION) + .assertIsEnabled() + val screenshots = mutableListOf( + ShellTestDevice.capturePrivatePng( + fileName = "01-reservation-selected.png", + privateDirectoryName = "stage-v2-03", + ), + ) + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_CONFIRM_RESERVATION) + .performClick() + + composeRule.onNodeWithTag(FakeTicketTestTags.PAGE_ORDER_CONFIRM).assertIsDisplayed() + composeRule.onNodeWithText("12月19日 周六 19:30").assertExists() + composeRule.onNodeWithText("票款 ¥980").assertExists() + composeRule.onNodeWithText("服务费 ¥10").assertExists() + composeRule.onNodeWithText("合计 ¥990").assertExists() + composeRule.onNodeWithText("观演人 A").assertExists() + screenshots += ShellTestDevice.capturePrivatePng( + fileName = "02-order-summary.png", + privateDirectoryName = "stage-v2-03", + ) + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_SUBMIT_ORDER).performClick() + + composeRule.onNodeWithTag(FakeTicketTestTags.PAGE_PAYMENT).assertIsDisplayed() + composeRule.onNodeWithText("支付请由用户本人处理").assertIsDisplayed() + composeRule.onAllNodesWithTag(FakeTicketTestTags.ACTION_PAY).assertCountEquals(0) + screenshots += ShellTestDevice.capturePrivatePng( + fileName = "03-payment-stop.png", + privateDirectoryName = "stage-v2-03", + ) + ShellTestDevice.exportEvidence(screenshots, directoryName = "stage-v2-03-selected") + } + + private fun openReservationSelect() { + composeRule.onNodeWithTag(FakeTicketTestTags.INPUT_HOME_SEARCH) + .performTextInput(DiscoveryContent.performanceTitle) + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_HOME_SEARCH).performClick() + composeRule.onNodeWithTag(FakeTicketTestTags.PAGE_SEARCH_RESULTS).assertIsDisplayed() + ShellTestDevice.waitForKeyboardHidden() + composeRule.onNode( + hasTestTag(FakeTicketTestTags.CARD_TARGET_PERFORMANCE) and + hasAnyDescendant(hasTestTag(FakeTicketTestTags.CITY_SANYA)), + ).assertExists() + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_CITY_RESERVE).performClick() + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_RESERVE_OR_BUY).performClick() + composeRule.onNodeWithTag(FakeTicketTestTags.PAGE_RESERVATION_SELECT).assertIsDisplayed() + } +} diff --git a/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/support/ShellTestDevice.kt b/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/support/ShellTestDevice.kt index 5adc042..6bd2c39 100644 --- a/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/support/ShellTestDevice.kt +++ b/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/support/ShellTestDevice.kt @@ -37,11 +37,14 @@ object ShellTestDevice { error("Display did not reach rotation $expectedRotation") } - fun capturePrivatePng(fileName: String): File { + fun capturePrivatePng( + fileName: String, + privateDirectoryName: String = "stage-v2-02", + ): File { waitForUiStable() waitForFakeTicketForeground() val instrumentation = InstrumentationRegistry.getInstrumentation() - val directory = File(instrumentation.targetContext.filesDir, "stage-v2-02") + val directory = File(instrumentation.targetContext.filesDir, privateDirectoryName) check(directory.exists() || directory.mkdirs()) { "Unable to create private screenshot directory: $directory" } diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/domain/model/Models.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/domain/model/Models.kt index fd0610f..3eb366f 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/domain/model/Models.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/domain/model/Models.kt @@ -36,8 +36,3 @@ data class FakeOrder( val quantity: Int, val totalPriceYuan: Int ) - -data class PaymentResult( - val success: Boolean, - val orderId: String -) diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/domain/reservation/ReservationOrderPolicy.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/domain/reservation/ReservationOrderPolicy.kt new file mode 100644 index 0000000..16e95c3 --- /dev/null +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/domain/reservation/ReservationOrderPolicy.kt @@ -0,0 +1,172 @@ +package com.yanbo.faketicket.domain.reservation + +data class ReservationSession( + val id: String, + val dateIso: String, + val time24Hour: String, + val displayText: String, +) + +data class ReservationTicketTier( + val id: String, + val priceYuan: Int, +) + +data class AttendeeProfile( + val id: String, + val displayName: String, +) + +data class TicketTierPreference( + val preferredTierId: String, + val backupTierIds: List, +) + +data class ReservationSelection( + val sessionId: String? = null, + val tierId: String? = null, + val quantity: Int = 1, + val attendeeProfileIds: List = emptyList(), +) + +data class ReservationOrderDraft( + val performanceTitle: String, + val session: ReservationSession, + val tier: ReservationTicketTier, + val quantity: Int, + val attendeeProfiles: List, + val serviceFeeYuan: Int, +) { + val ticketSubtotalYuan: Int = tier.priceYuan * quantity + val totalPriceYuan: Int = ticketSubtotalYuan + serviceFeeYuan +} + +enum class ReservationBlockReason { + SESSION_REQUIRED, + SESSION_INVALID, + TIER_REQUIRED, + TIER_INVALID, + QUANTITY_OUT_OF_RANGE, + ATTENDEE_REQUIRED, + ATTENDEE_AMBIGUOUS, + TOTAL_LIMIT_EXCEEDED, +} + +data class ReservationEvaluation( + val canConfirm: Boolean, + val reason: ReservationBlockReason?, + val totalPriceYuan: Int?, +) + +object ReservationFixture { + const val performanceTitle = "三亚·阳光 三亚 嘉年华2026周杰伦演唱会" + const val serviceFeePerTicketYuan = 10 + const val maximumTotalYuan = 4000 + + val sessions = listOf( + ReservationSession( + id = "session-2026-12-18-1930", + dateIso = "2026-12-18", + time24Hour = "19:30", + displayText = "12月18日 周五 19:30", + ), + ReservationSession( + id = "session-2026-12-19-1930", + dateIso = "2026-12-19", + time24Hour = "19:30", + displayText = "12月19日 周六 19:30", + ), + ReservationSession( + id = "session-2026-12-20-1930", + dateIso = "2026-12-20", + time24Hour = "19:30", + displayText = "12月20日 周日 19:30", + ), + ) + + val ticketTiers = listOf(580, 780, 980, 1280, 1680, 1980, 2380).map { price -> + ReservationTicketTier(id = "tier-$price", priceYuan = price) + } + + val attendeeProfiles = listOf( + AttendeeProfile(id = "attendee-fixture-a", displayName = "A"), + AttendeeProfile(id = "attendee-fixture-b", displayName = "B"), + ) +} + +class ReservationOrderPolicy( + private val fixture: ReservationFixture = ReservationFixture, +) { + fun matchSession(dateIso: String, time24Hour: String): ReservationSession? = + fixture.sessions.singleOrNull { it.dateIso == dateIso && it.time24Hour == time24Hour } + + fun resolveTier( + preference: TicketTierPreference, + availableTierIds: Set, + ): ReservationTicketTier? = + sequenceOf(preference.preferredTierId) + .plus(preference.backupTierIds.asSequence()) + .mapNotNull { tierId -> fixture.ticketTiers.singleOrNull { it.id == tierId } } + .firstOrNull { it.id in availableTierIds } + + fun evaluate(selection: ReservationSelection): ReservationEvaluation { + val sessionId = selection.sessionId + ?: return blocked(ReservationBlockReason.SESSION_REQUIRED) + if (fixture.sessions.none { it.id == sessionId }) { + return blocked(ReservationBlockReason.SESSION_INVALID) + } + + val tierId = selection.tierId + ?: return blocked(ReservationBlockReason.TIER_REQUIRED) + val tier = fixture.ticketTiers.singleOrNull { it.id == tierId } + ?: return blocked(ReservationBlockReason.TIER_INVALID) + + if (selection.quantity !in 1..2) { + return blocked(ReservationBlockReason.QUANTITY_OUT_OF_RANGE) + } + if (selection.attendeeProfileIds.isEmpty()) { + return blocked(ReservationBlockReason.ATTENDEE_REQUIRED) + } + val selectedProfiles = selection.attendeeProfileIds.mapNotNull { profileId -> + fixture.attendeeProfiles.singleOrNull { it.id == profileId } + } + if ( + selectedProfiles.size != selection.quantity || + selectedProfiles.size != selection.attendeeProfileIds.distinct().size + ) { + return blocked(ReservationBlockReason.ATTENDEE_AMBIGUOUS) + } + + val total = (tier.priceYuan + fixture.serviceFeePerTicketYuan) * selection.quantity + if (total > fixture.maximumTotalYuan) { + return blocked(ReservationBlockReason.TOTAL_LIMIT_EXCEEDED, total) + } + return ReservationEvaluation(canConfirm = true, reason = null, totalPriceYuan = total) + } + + fun createDraft(selection: ReservationSelection): ReservationOrderDraft? { + if (!evaluate(selection).canConfirm) return null + val session = fixture.sessions.single { it.id == selection.sessionId } + val tier = fixture.ticketTiers.single { it.id == selection.tierId } + val attendees = selection.attendeeProfileIds.map { profileId -> + fixture.attendeeProfiles.single { it.id == profileId } + } + return ReservationOrderDraft( + performanceTitle = fixture.performanceTitle, + session = session, + tier = tier, + quantity = selection.quantity, + attendeeProfiles = attendees, + serviceFeeYuan = fixture.serviceFeePerTicketYuan * selection.quantity, + ) + } + + private fun blocked( + reason: ReservationBlockReason, + totalPriceYuan: Int? = null, + ) = ReservationEvaluation( + canConfirm = false, + reason = reason, + totalPriceYuan = totalPriceYuan, + ) +} diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketNavHost.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketNavHost.kt index 5f50e09..6b4c943 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketNavHost.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketNavHost.kt @@ -11,12 +11,14 @@ import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import androidx.navigation.navArgument +import androidx.lifecycle.viewmodel.compose.viewModel as composeViewModel import com.yanbo.faketicket.scenario.FakeTicketScenario import com.yanbo.faketicket.ui.FakeTicketViewModel import com.yanbo.faketicket.ui.discovery.HomeDiscoveryScreen import com.yanbo.faketicket.ui.discovery.PerformanceDetailDiscoveryScreen import com.yanbo.faketicket.ui.discovery.ReservationSelectDiscoveryScreen import com.yanbo.faketicket.ui.discovery.SearchResultsDiscoveryScreen +import com.yanbo.faketicket.ui.reservation.ReservationFlowViewModel import com.yanbo.faketicket.ui.screens.BuyReadyScreen import com.yanbo.faketicket.ui.screens.LoginRequiredScreen import com.yanbo.faketicket.ui.screens.NetworkErrorScreen @@ -33,6 +35,8 @@ fun FakeTicketNavHost( navController: NavHostController = rememberNavController(), viewModel: FakeTicketViewModel? = null ) { + val reservationViewModel: ReservationFlowViewModel = composeViewModel() + val reservationState by reservationViewModel.uiState.collectAsState() val currentRoute = viewModel?.let { vm -> val state by vm.scenarioState.collectAsState() state.scenario @@ -97,7 +101,15 @@ fun FakeTicketNavHost( ) } composable(FakeTicketRoute.RESERVATION_SELECT) { - ReservationSelectDiscoveryScreen() + ReservationSelectDiscoveryScreen( + state = reservationState, + onEvent = reservationViewModel::onEvent, + onConfirm = { + if (reservationViewModel.uiState.value.orderDraft != null) { + navController.navigate(FakeTicketRoute.ORDER_CONFIRM) + } + }, + ) } composable(FakeTicketRoute.WAIT_SALE) { WaitSaleScreen( @@ -119,13 +131,14 @@ fun FakeTicketNavHost( } composable(FakeTicketRoute.ORDER_CONFIRM) { OrderConfirmScreen( + draft = reservationState.orderDraft, onSubmit = { navController.navigate(FakeTicketRoute.PAYMENT) }, onBack = { navController.popBackStack() } ) } composable(FakeTicketRoute.PAYMENT) { PaymentScreen( - onPay = { navController.navigate(FakeTicketRoute.SUCCESS) }, + draft = reservationState.orderDraft, onBack = { navController.popBackStack() } ) } diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/FakeTicketUiState.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/FakeTicketUiState.kt index aac4a6b..24102b7 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/FakeTicketUiState.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/FakeTicketUiState.kt @@ -2,7 +2,6 @@ package com.yanbo.faketicket.ui import com.yanbo.faketicket.domain.model.Concert import com.yanbo.faketicket.domain.model.FakeOrder -import com.yanbo.faketicket.domain.model.PaymentResult data class FakeTicketUiState( val currentRoute: String = "home", @@ -12,7 +11,6 @@ data class FakeTicketUiState( val selectedTierId: String? = null, val quantity: Int = 1, val order: FakeOrder? = null, - val paymentResult: PaymentResult? = null, val errorMessage: String? = null ) @@ -28,7 +26,6 @@ sealed interface FakeTicketUiEvent { data object IncreaseQuantity : FakeTicketUiEvent data object ConfirmTicket : FakeTicketUiEvent data object SubmitOrder : FakeTicketUiEvent - data object Pay : FakeTicketUiEvent data object BackHome : FakeTicketUiEvent data object Back : FakeTicketUiEvent } diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/FakeTicketViewModel.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/FakeTicketViewModel.kt index 57a0a5f..0917bf2 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/FakeTicketViewModel.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/FakeTicketViewModel.kt @@ -6,7 +6,6 @@ import com.yanbo.faketicket.data.InMemoryTicketRepository import com.yanbo.faketicket.data.InventoryStore import com.yanbo.faketicket.data.TicketRepository import com.yanbo.faketicket.domain.model.OrderDraft -import com.yanbo.faketicket.domain.model.PaymentResult import com.yanbo.faketicket.scenario.FakeTicketScenario import com.yanbo.faketicket.scenario.ScenarioController import com.yanbo.faketicket.scenario.ScenarioState @@ -40,7 +39,6 @@ class FakeTicketViewModel( FakeTicketUiEvent.IncreaseQuantity -> increaseQuantity() FakeTicketUiEvent.ConfirmTicket -> confirmTicket() FakeTicketUiEvent.SubmitOrder -> submitOrder() - FakeTicketUiEvent.Pay -> pay() FakeTicketUiEvent.BackHome -> backHome() FakeTicketUiEvent.Back -> back() } @@ -186,21 +184,6 @@ class FakeTicketViewModel( } } - private fun pay() { - val order = _uiState.value.order - if (order == null) { - _uiState.update { it.copy(errorMessage = "没有待支付的订单") } - return - } - _uiState.update { - it.copy( - paymentResult = PaymentResult(success = true, orderId = order.orderId), - currentRoute = "success", - errorMessage = null - ) - } - } - private fun backHome() { _uiState.update { FakeTicketUiState() diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/components/FakeTicketTestTags.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/components/FakeTicketTestTags.kt index 80c3dba..9c77c04 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/components/FakeTicketTestTags.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/components/FakeTicketTestTags.kt @@ -16,7 +16,20 @@ object FakeTicketTestTags { const val TEXT_DATE_RANGE = "text_date_range" const val ACTION_RESERVE_OR_BUY = "action_reserve_or_buy" const val PAGE_RESERVATION_SELECT = "page_reservation_select" + const val LIST_RESERVATION_OPTIONS = "list_reservation_options" const val ACTION_CONFIRM_RESERVATION = "action_confirm_reservation" + const val SESSION_2026_12_18_1930 = "session_2026_12_18_1930" + const val SESSION_2026_12_19_1930 = "session_2026_12_19_1930" + const val SESSION_2026_12_20_1930 = "session_2026_12_20_1930" + const val TIER_580 = "tier_580" + const val TIER_780 = "tier_780" + const val TIER_980 = "tier_980" + const val TIER_1280 = "tier_1280" + const val TIER_1680 = "tier_1680" + const val TIER_1980 = "tier_1980" + const val TIER_2380 = "tier_2380" + const val ATTENDEE_FIXTURE_A = "attendee_fixture_a" + const val ATTENDEE_FIXTURE_B = "attendee_fixture_b" const val PAGE_DETAIL = "page_detail" const val PAGE_WAIT_SALE = "page_wait_sale" const val PAGE_BUY_READY = "page_buy_ready" @@ -55,6 +68,10 @@ object FakeTicketTestTags { const val SCENARIO_CONTROL = "scenario_control" const val ACTION_RESET_SCENARIO = "action_reset_scenario" const val ACTION_BACK = "action_back" + + fun session(sessionId: String): String = sessionId.replace('-', '_') + fun tier(tierId: String): String = tierId.replace('-', '_') + fun attendee(profileId: String): String = profileId.replace('-', '_') } data class BlockingDialogState( diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/discovery/DiscoveryScreens.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/discovery/DiscoveryScreens.kt index 763a51e..5a3025a 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/discovery/DiscoveryScreens.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/discovery/DiscoveryScreens.kt @@ -1,6 +1,7 @@ package com.yanbo.faketicket.ui.discovery import androidx.compose.foundation.background +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -13,6 +14,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions @@ -20,9 +22,11 @@ import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults +import androidx.compose.material3.Checkbox import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.OutlinedTextFieldDefaults +import androidx.compose.material3.RadioButton import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable @@ -43,6 +47,10 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.yanbo.faketicket.ui.components.FakeTicketTestTags +import com.yanbo.faketicket.domain.reservation.ReservationBlockReason +import com.yanbo.faketicket.domain.reservation.ReservationFixture +import com.yanbo.faketicket.ui.reservation.ReservationUiEvent +import com.yanbo.faketicket.ui.reservation.ReservationUiState private val PageBackground = Color(0xFFF6F7F9) private val SurfaceColor = Color(0xFFFFFFFF) @@ -496,7 +504,11 @@ private fun DetailLine( } @Composable -fun ReservationSelectDiscoveryScreen() { +fun ReservationSelectDiscoveryScreen( + state: ReservationUiState, + onEvent: (ReservationUiEvent) -> Unit, + onConfirm: () -> Unit, +) { Column( modifier = Modifier .fillMaxSize() @@ -530,7 +542,94 @@ fun ReservationSelectDiscoveryScreen() { fontSize = 13.sp, ) } - Spacer(Modifier.weight(1f)) + LazyColumn( + modifier = Modifier + .weight(1f) + .testTag(FakeTicketTestTags.LIST_RESERVATION_OPTIONS), + contentPadding = androidx.compose.foundation.layout.PaddingValues( + horizontal = 16.dp, + vertical = 14.dp, + ), + verticalArrangement = Arrangement.spacedBy(10.dp), + ) { + item { + SectionLabel("场次") + } + items(ReservationFixture.sessions, key = { it.id }) { session -> + SelectionRow( + selected = state.selection.sessionId == session.id, + label = session.displayText, + tag = FakeTicketTestTags.session(session.id), + onClick = { onEvent(ReservationUiEvent.SelectSession(session.id)) }, + ) + } + item { + SectionLabel("票档") + } + items(ReservationFixture.ticketTiers, key = { it.id }) { tier -> + SelectionRow( + selected = state.selection.tierId == tier.id, + label = "¥${tier.priceYuan}", + tag = FakeTicketTestTags.tier(tier.id), + onClick = { onEvent(ReservationUiEvent.SelectTier(tier.id)) }, + ) + } + item { + SectionLabel("数量") + Row( + modifier = Modifier + .fillMaxWidth() + .padding(top = 8.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + TextButton( + onClick = { onEvent(ReservationUiEvent.DecreaseQuantity) }, + enabled = state.selection.quantity > 1, + modifier = Modifier.testTag(FakeTicketTestTags.QUANTITY_DECREASE), + ) { + Text("−", fontSize = 22.sp) + } + Text( + text = state.selection.quantity.toString(), + modifier = Modifier.testTag(FakeTicketTestTags.QUANTITY_VALUE), + color = PrimaryText, + fontSize = 18.sp, + fontWeight = FontWeight.SemiBold, + ) + TextButton( + onClick = { onEvent(ReservationUiEvent.IncreaseQuantity) }, + enabled = state.selection.quantity < 2, + modifier = Modifier.testTag(FakeTicketTestTags.QUANTITY_INCREASE), + ) { + Text("+", fontSize = 22.sp) + } + } + } + item { + SectionLabel("实名观演人") + } + items(ReservationFixture.attendeeProfiles, key = { it.id }) { profile -> + val selected = profile.id in state.selection.attendeeProfileIds + Row( + modifier = Modifier + .fillMaxWidth() + .background(SurfaceColor, RoundedCornerShape(6.dp)) + .clickable { onEvent(ReservationUiEvent.ToggleAttendee(profile.id)) } + .padding(horizontal = 12.dp, vertical = 10.dp) + .testTag(FakeTicketTestTags.attendee(profile.id)), + verticalAlignment = Alignment.CenterVertically, + ) { + Checkbox( + checked = selected, + onCheckedChange = { + onEvent(ReservationUiEvent.ToggleAttendee(profile.id)) + }, + ) + Text("观演人 ${profile.displayName}", color = PrimaryText, fontSize = 15.sp) + } + } + } Box( modifier = Modifier .fillMaxWidth() @@ -538,16 +637,65 @@ fun ReservationSelectDiscoveryScreen() { .padding(horizontal = 16.dp, vertical = 12.dp), ) { Button( - onClick = {}, - enabled = false, + onClick = { + onEvent(ReservationUiEvent.ConfirmReservation) + onConfirm() + }, + enabled = state.canConfirm, modifier = Modifier .fillMaxWidth() .height(48.dp) .testTag(FakeTicketTestTags.ACTION_CONFIRM_RESERVATION), shape = RoundedCornerShape(6.dp), ) { - Text("确定", letterSpacing = 0.sp) + Text(confirmButtonText(state), letterSpacing = 0.sp) } } } } + +@Composable +private fun SectionLabel(text: String) { + Text( + text = text, + color = PrimaryText, + fontSize = 16.sp, + fontWeight = FontWeight.SemiBold, + ) +} + +@Composable +private fun SelectionRow( + selected: Boolean, + label: String, + tag: String, + onClick: () -> Unit, +) { + Row( + modifier = Modifier + .fillMaxWidth() + .background(SurfaceColor, RoundedCornerShape(6.dp)) + .clickable(onClick = onClick) + .padding(horizontal = 12.dp, vertical = 10.dp) + .testTag(tag), + verticalAlignment = Alignment.CenterVertically, + ) { + RadioButton(selected = selected, onClick = onClick) + Text(label, color = PrimaryText, fontSize = 15.sp) + } +} + +private fun confirmButtonText(state: ReservationUiState): String = when (state.blockReason) { + ReservationBlockReason.SESSION_REQUIRED, + ReservationBlockReason.SESSION_INVALID, + -> "请选择场次" + ReservationBlockReason.TIER_REQUIRED, + ReservationBlockReason.TIER_INVALID, + -> "请选择票档" + ReservationBlockReason.ATTENDEE_REQUIRED, + ReservationBlockReason.ATTENDEE_AMBIGUOUS, + -> "请选择 ${state.selection.quantity} 位观演人" + ReservationBlockReason.TOTAL_LIMIT_EXCEEDED -> "总额超过 ¥${ReservationFixture.maximumTotalYuan}" + ReservationBlockReason.QUANTITY_OUT_OF_RANGE -> "数量不可用" + null -> "确定 · ¥${state.totalPriceYuan}" +} diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/reservation/ReservationFlowViewModel.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/reservation/ReservationFlowViewModel.kt new file mode 100644 index 0000000..5975bd0 --- /dev/null +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/reservation/ReservationFlowViewModel.kt @@ -0,0 +1,92 @@ +package com.yanbo.faketicket.ui.reservation + +import androidx.lifecycle.ViewModel +import com.yanbo.faketicket.domain.reservation.ReservationBlockReason +import com.yanbo.faketicket.domain.reservation.ReservationEvaluation +import com.yanbo.faketicket.domain.reservation.ReservationFixture +import com.yanbo.faketicket.domain.reservation.ReservationOrderDraft +import com.yanbo.faketicket.domain.reservation.ReservationOrderPolicy +import com.yanbo.faketicket.domain.reservation.ReservationSelection +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update + +data class ReservationUiState( + val selection: ReservationSelection = ReservationSelection(), + val canConfirm: Boolean = false, + val blockReason: ReservationBlockReason? = ReservationBlockReason.SESSION_REQUIRED, + val totalPriceYuan: Int? = null, + val orderDraft: ReservationOrderDraft? = null, +) + +sealed interface ReservationUiEvent { + data class SelectSession(val sessionId: String) : ReservationUiEvent + data class SelectTier(val tierId: String) : ReservationUiEvent + data object DecreaseQuantity : ReservationUiEvent + data object IncreaseQuantity : ReservationUiEvent + data class ToggleAttendee(val attendeeProfileId: String) : ReservationUiEvent + data object ConfirmReservation : ReservationUiEvent +} + +class ReservationFlowViewModel( + private val policy: ReservationOrderPolicy = ReservationOrderPolicy(), +) : ViewModel() { + private val _uiState = MutableStateFlow(ReservationUiState()) + val uiState: StateFlow = _uiState.asStateFlow() + + fun onEvent(event: ReservationUiEvent) { + when (event) { + is ReservationUiEvent.SelectSession -> updateSelection { + copy(sessionId = event.sessionId) + } + is ReservationUiEvent.SelectTier -> updateSelection { + copy(tierId = event.tierId) + } + ReservationUiEvent.DecreaseQuantity -> updateSelection { + copy( + quantity = (quantity - 1).coerceAtLeast(1), + attendeeProfileIds = attendeeProfileIds.take((quantity - 1).coerceAtLeast(1)), + ) + } + ReservationUiEvent.IncreaseQuantity -> updateSelection { + copy(quantity = (quantity + 1).coerceAtMost(2)) + } + is ReservationUiEvent.ToggleAttendee -> updateSelection { + val toggled = if (event.attendeeProfileId in attendeeProfileIds) { + attendeeProfileIds - event.attendeeProfileId + } else { + attendeeProfileIds + event.attendeeProfileId + } + copy(attendeeProfileIds = toggled.filter { profileId -> + ReservationFixture.attendeeProfiles.any { it.id == profileId } + }) + } + ReservationUiEvent.ConfirmReservation -> confirmReservation() + } + } + + private fun updateSelection(transform: ReservationSelection.() -> ReservationSelection) { + _uiState.update { current -> + val selection = current.selection.transform() + current.withEvaluation(selection, policy.evaluate(selection)).copy(orderDraft = null) + } + } + + private fun confirmReservation() { + _uiState.update { current -> + val draft = policy.createDraft(current.selection) + current.copy(orderDraft = draft) + } + } + + private fun ReservationUiState.withEvaluation( + selection: ReservationSelection, + evaluation: ReservationEvaluation, + ) = copy( + selection = selection, + canConfirm = evaluation.canConfirm, + blockReason = evaluation.reason, + totalPriceYuan = evaluation.totalPriceYuan, + ) +} diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/screens/Screens.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/screens/Screens.kt index 24a13b6..07e81ba 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/screens/Screens.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/screens/Screens.kt @@ -12,6 +12,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag import androidx.compose.ui.unit.dp import com.yanbo.faketicket.ui.components.FakeTicketTestTags +import com.yanbo.faketicket.domain.reservation.ReservationOrderDraft @Composable fun WaitSaleScreen(onBuyReady: () -> Unit, onBack: () -> Unit) { @@ -83,7 +84,11 @@ fun TicketSelectScreen(onConfirm: () -> Unit, onBack: () -> Unit) { } @Composable -fun OrderConfirmScreen(onSubmit: () -> Unit, onBack: () -> Unit) { +fun OrderConfirmScreen( + draft: ReservationOrderDraft?, + onSubmit: () -> Unit, + onBack: () -> Unit, +) { Column( modifier = Modifier .fillMaxSize() @@ -93,8 +98,23 @@ fun OrderConfirmScreen(onSubmit: () -> Unit, onBack: () -> Unit) { horizontalAlignment = Alignment.CenterHorizontally ) { Text("订单确认") + if (draft == null) { + Text("订单信息不完整") + } else { + Text(draft.performanceTitle) + Text(draft.session.displayText) + Text("票档 ¥${draft.tier.priceYuan} × ${draft.quantity}") + Text("票款 ¥${draft.ticketSubtotalYuan}") + Text("服务费 ¥${draft.serviceFeeYuan}") + Text("观演人 ${draft.attendeeProfiles.joinToString { it.displayName }}") + Text( + "合计 ¥${draft.totalPriceYuan}", + modifier = Modifier.testTag(FakeTicketTestTags.TEXT_ORDER_SUMMARY), + ) + } Button( onClick = onSubmit, + enabled = draft != null, modifier = Modifier.testTag(FakeTicketTestTags.ACTION_SUBMIT_ORDER) ) { Text("提交订单") @@ -106,7 +126,7 @@ fun OrderConfirmScreen(onSubmit: () -> Unit, onBack: () -> Unit) { } @Composable -fun PaymentScreen(onPay: () -> Unit, onBack: () -> Unit) { +fun PaymentScreen(draft: ReservationOrderDraft?, onBack: () -> Unit) { Column( modifier = Modifier .fillMaxSize() @@ -115,19 +135,14 @@ fun PaymentScreen(onPay: () -> Unit, onBack: () -> Unit) { verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { - Text("模拟支付") + Text("订单已提交") Text( - "仅模拟、不产生真实扣款", + "支付请由用户本人处理", modifier = Modifier.testTag(FakeTicketTestTags.TEXT_PAYMENT_DISCLAIMER) ) - Button( - onClick = onPay, - modifier = Modifier.testTag(FakeTicketTestTags.ACTION_PAY) - ) { - Text("确认支付") - } + draft?.let { Text("待支付 ¥${it.totalPriceYuan}") } Button(onClick = onBack) { - Text("返回") + Text("返回复核") } } } diff --git a/fake-ticket-app/src/test/java/com/yanbo/faketicket/domain/reservation/ReservationOrderPolicyTest.kt b/fake-ticket-app/src/test/java/com/yanbo/faketicket/domain/reservation/ReservationOrderPolicyTest.kt new file mode 100644 index 0000000..3399ce6 --- /dev/null +++ b/fake-ticket-app/src/test/java/com/yanbo/faketicket/domain/reservation/ReservationOrderPolicyTest.kt @@ -0,0 +1,139 @@ +package com.yanbo.faketicket.domain.reservation + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Test + +class ReservationOrderPolicyTest { + private val policy = ReservationOrderPolicy() + + @Test + fun `fixture exposes three exact sessions and matches date plus time uniquely`() { + assertEquals( + listOf( + "2026-12-18 19:30", + "2026-12-19 19:30", + "2026-12-20 19:30", + ), + ReservationFixture.sessions.map { "${it.dateIso} ${it.time24Hour}" }, + ) + + assertEquals( + "session-2026-12-19-1930", + policy.matchSession(dateIso = "2026-12-19", time24Hour = "19:30")?.id, + ) + assertNull(policy.matchSession(dateIso = "2026-12-19", time24Hour = "20:00")) + } + + @Test + fun `fixture exposes seven tiers in stable low to high price order`() { + assertEquals( + listOf(580, 780, 980, 1280, 1680, 1980, 2380), + ReservationFixture.ticketTiers.map { it.priceYuan }, + ) + } + + @Test + fun `preferred tier falls back in configured order`() { + val preference = TicketTierPreference( + preferredTierId = "tier-1680", + backupTierIds = listOf("tier-1280", "tier-980"), + ) + + assertEquals( + "tier-1280", + policy.resolveTier( + preference = preference, + availableTierIds = setOf("tier-580", "tier-980", "tier-1280"), + )?.id, + ) + assertNull(policy.resolveTier(preference, availableTierIds = setOf("tier-580"))) + } + + @Test + fun `confirmation stays disabled until session tier and one attendee are selected`() { + assertFalse(policy.evaluate(ReservationSelection()).canConfirm) + assertEquals( + ReservationBlockReason.SESSION_REQUIRED, + policy.evaluate(ReservationSelection()).reason, + ) + + val complete = ReservationSelection( + sessionId = "session-2026-12-18-1930", + tierId = "tier-980", + quantity = 1, + attendeeProfileIds = listOf("attendee-fixture-a"), + ) + assertTrue(policy.evaluate(complete).canConfirm) + } + + @Test + fun `order total includes explicit service fee`() { + val selection = ReservationSelection( + sessionId = "session-2026-12-18-1930", + tierId = "tier-980", + quantity = 2, + attendeeProfileIds = listOf("attendee-fixture-a", "attendee-fixture-b"), + ) + + val draft = policy.createDraft(selection)!! + + assertEquals(1960, draft.ticketSubtotalYuan) + assertEquals(20, draft.serviceFeeYuan) + assertEquals(1980, draft.totalPriceYuan) + } + + @Test + fun `quantity outside one to two is rejected`() { + val selection = completeSelection(quantity = 3) + + assertEquals( + ReservationBlockReason.QUANTITY_OUT_OF_RANGE, + policy.evaluate(selection).reason, + ) + } + + @Test + fun `total above fixture limit is rejected`() { + val selection = completeSelection( + tierId = "tier-2380", + quantity = 2, + attendeeProfileIds = listOf("attendee-fixture-a", "attendee-fixture-b"), + ) + + val result = policy.evaluate(selection) + + assertEquals(4780, result.totalPriceYuan) + assertEquals(ReservationBlockReason.TOTAL_LIMIT_EXCEEDED, result.reason) + assertFalse(result.canConfirm) + } + + @Test + fun `missing or ambiguous attendee selection is rejected`() { + assertEquals( + ReservationBlockReason.ATTENDEE_REQUIRED, + policy.evaluate(completeSelection(attendeeProfileIds = emptyList())).reason, + ) + assertEquals( + ReservationBlockReason.ATTENDEE_AMBIGUOUS, + policy.evaluate( + completeSelection( + attendeeProfileIds = listOf("attendee-fixture-a", "attendee-fixture-b"), + ), + ).reason, + ) + } + + private fun completeSelection( + tierId: String = "tier-980", + quantity: Int = 1, + attendeeProfileIds: List = listOf("attendee-fixture-a"), + ) = ReservationSelection( + sessionId = "session-2026-12-18-1930", + tierId = tierId, + quantity = quantity, + attendeeProfileIds = attendeeProfileIds, + ) +} diff --git a/fake-ticket-app/src/test/java/com/yanbo/faketicket/ui/reservation/ReservationFlowViewModelTest.kt b/fake-ticket-app/src/test/java/com/yanbo/faketicket/ui/reservation/ReservationFlowViewModelTest.kt new file mode 100644 index 0000000..a34ecf4 --- /dev/null +++ b/fake-ticket-app/src/test/java/com/yanbo/faketicket/ui/reservation/ReservationFlowViewModelTest.kt @@ -0,0 +1,80 @@ +package com.yanbo.faketicket.ui.reservation + +import com.yanbo.faketicket.domain.reservation.ReservationBlockReason +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNotNull +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Test + +class ReservationFlowViewModelTest { + @Test + fun `initial confirmation is disabled because session is missing`() { + val viewModel = ReservationFlowViewModel() + + assertFalse(viewModel.uiState.value.canConfirm) + assertEquals(ReservationBlockReason.SESSION_REQUIRED, viewModel.uiState.value.blockReason) + assertNull(viewModel.uiState.value.orderDraft) + } + + @Test + fun `complete exact selection creates order draft`() { + val viewModel = ReservationFlowViewModel() + + viewModel.onEvent(ReservationUiEvent.SelectSession("session-2026-12-19-1930")) + viewModel.onEvent(ReservationUiEvent.SelectTier("tier-1280")) + viewModel.onEvent(ReservationUiEvent.ToggleAttendee("attendee-fixture-a")) + + assertTrue(viewModel.uiState.value.canConfirm) + viewModel.onEvent(ReservationUiEvent.ConfirmReservation) + + val draft = viewModel.uiState.value.orderDraft + assertNotNull(draft) + assertEquals("12月19日 周六 19:30", draft?.session?.displayText) + assertEquals(1280, draft?.ticketSubtotalYuan) + assertEquals(10, draft?.serviceFeeYuan) + assertEquals(1290, draft?.totalPriceYuan) + } + + @Test + fun `two tickets require two distinct attendees`() { + val viewModel = ReservationFlowViewModel() + viewModel.onEvent(ReservationUiEvent.SelectSession("session-2026-12-18-1930")) + viewModel.onEvent(ReservationUiEvent.SelectTier("tier-980")) + viewModel.onEvent(ReservationUiEvent.IncreaseQuantity) + viewModel.onEvent(ReservationUiEvent.ToggleAttendee("attendee-fixture-a")) + + assertFalse(viewModel.uiState.value.canConfirm) + assertEquals(ReservationBlockReason.ATTENDEE_AMBIGUOUS, viewModel.uiState.value.blockReason) + + viewModel.onEvent(ReservationUiEvent.ToggleAttendee("attendee-fixture-b")) + assertTrue(viewModel.uiState.value.canConfirm) + } + + @Test + fun `over-limit total never creates draft`() { + val viewModel = ReservationFlowViewModel() + viewModel.onEvent(ReservationUiEvent.SelectSession("session-2026-12-20-1930")) + viewModel.onEvent(ReservationUiEvent.SelectTier("tier-2380")) + viewModel.onEvent(ReservationUiEvent.IncreaseQuantity) + viewModel.onEvent(ReservationUiEvent.ToggleAttendee("attendee-fixture-a")) + viewModel.onEvent(ReservationUiEvent.ToggleAttendee("attendee-fixture-b")) + + assertEquals(4780, viewModel.uiState.value.totalPriceYuan) + assertEquals(ReservationBlockReason.TOTAL_LIMIT_EXCEEDED, viewModel.uiState.value.blockReason) + viewModel.onEvent(ReservationUiEvent.ConfirmReservation) + assertNull(viewModel.uiState.value.orderDraft) + } + + @Test + fun `quantity stays inside one to two`() { + val viewModel = ReservationFlowViewModel() + + viewModel.onEvent(ReservationUiEvent.DecreaseQuantity) + assertEquals(1, viewModel.uiState.value.selection.quantity) + + repeat(3) { viewModel.onEvent(ReservationUiEvent.IncreaseQuantity) } + assertEquals(2, viewModel.uiState.value.selection.quantity) + } +} From 3c4b6c3e7ac00aaa55ea381bbc6bba8f7c19e373 Mon Sep 17 00:00:00 2001 From: yanbobo-ONE <1162510603@qq.com> Date: Thu, 13 Aug 2026 13:52:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[feat]:=20=E5=AE=8C=E6=88=90FakeTicket?= =?UTF-8?q?=E5=BC=80=E5=94=AE=E6=8E=92=E9=98=9F=E4=B8=8E=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...47\350\241\214\346\200\273\350\247\210.md" | 6 +- .../stage-v2-04/01-queue-waiting.png | Bin 0 -> 52223 bytes .../stage-v2-04/02-queue-timeout.png | Bin 0 -> 44237 bytes .../stage-v2-04/03-captcha-stop.png | Bin 0 -> 59600 bytes .../test-results/stage-v2-04/evidence.md | 17 ++ ...02\345\270\270\345\234\272\346\231\257.md" | 39 ++++- .../faketicket/FakeTicketDiscoveryFlowTest.kt | 1 + .../FakeTicketScenarioFixtureTest.kt | 110 +++++++++++++ .../faketicket/support/ShellTestDevice.kt | 5 +- .../java/com/yanbo/faketicket/MainActivity.kt | 20 +-- .../yanbo/faketicket/data/InventoryStore.kt | 15 +- .../navigation/FakeTicketNavHost.kt | 89 ++++++++-- .../faketicket/navigation/FakeTicketPage.kt | 7 +- .../faketicket/navigation/FakeTicketRoute.kt | 5 + .../faketicket/scenario/FakeTicketScenario.kt | 43 ++++- .../faketicket/scenario/ScenarioController.kt | 60 ++++++- .../faketicket/ui/FakeTicketViewModel.kt | 13 ++ .../ui/components/FakeTicketTestTags.kt | 9 + .../yanbo/faketicket/ui/screens/Screens.kt | 154 ++++++++++++++---- .../faketicket/FakeTicketPageContractTest.kt | 23 ++- .../faketicket/data/InventoryStoreTest.kt | 11 +- .../scenario/QueueScenarioControllerTest.kt | 70 ++++++++ .../scenario/ScenarioBuildPolicyTest.kt | 19 +++ .../scenario/ScenarioInjectionPolicyTest.kt | 29 ++++ 24 files changed, 664 insertions(+), 81 deletions(-) create mode 100644 docs/images/test-results/stage-v2-04/01-queue-waiting.png create mode 100644 docs/images/test-results/stage-v2-04/02-queue-timeout.png create mode 100644 docs/images/test-results/stage-v2-04/03-captcha-stop.png create mode 100644 docs/images/test-results/stage-v2-04/evidence.md create mode 100644 fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/FakeTicketScenarioFixtureTest.kt create mode 100644 fake-ticket-app/src/test/java/com/yanbo/faketicket/scenario/QueueScenarioControllerTest.kt create mode 100644 fake-ticket-app/src/test/java/com/yanbo/faketicket/scenario/ScenarioBuildPolicyTest.kt create mode 100644 fake-ticket-app/src/test/java/com/yanbo/faketicket/scenario/ScenarioInjectionPolicyTest.kt diff --git "a/00_\351\241\271\347\233\256\346\211\247\350\241\214\346\200\273\350\247\210.md" "b/00_\351\241\271\347\233\256\346\211\247\350\241\214\346\200\273\350\247\210.md" index b85a87e..e4bbe25 100644 --- "a/00_\351\241\271\347\233\256\346\211\247\350\241\214\346\200\273\350\247\210.md" +++ "b/00_\351\241\271\347\233\256\346\211\247\350\241\214\346\200\273\350\247\210.md" @@ -8,7 +8,7 @@ 当前整体状态:`IN_PROGRESS` -当前唯一阶段:`04 FakeTicket 开售排队与异常场景(READY)` +当前唯一阶段:`05 Agent 任务配置目标模式与权限(READY)` ## 目标 @@ -54,8 +54,8 @@ | 01 | [工程与历史实现基线复验](docs/stages/v2/01_工程与历史实现基线复验.md) | `VERIFIED` | 2026-08-13:双模块测试、Lint、APK、签名门禁及 vivo Android 16 启动/旋转验证通过 | | 02 | [FakeTicket 真实布局页面骨架](docs/stages/v2/02_FakeTicket真实布局页面骨架.md) | `VERIFIED` | 2026-08-13:四页 canonical 流程、返回、旋转、稳定 ID 与 vivo Android 16 真机证据通过 | | 03 | [FakeTicket 场次票档与订单边界](docs/stages/v2/03_FakeTicket场次票档与订单边界.md) | `VERIFIED` | 2026-08-13:三场七票档、数量/实名/金额边界、订单摘要与支付停止页在 vivo Android 16 通过 | -| 04 | [FakeTicket 开售排队与异常场景](docs/stages/v2/04_FakeTicket开售排队与异常场景.md) | `READY` | 当前唯一可开始阶段;排队成功/失败/超时及风险停止 fixture | -| 05 | [Agent 任务配置目标模式与权限](docs/stages/v2/05_Agent任务配置目标模式与权限.md) | `REVALIDATION_REQUIRED` | 完整标题、城市、场次、票档、金额和逐次确认 | +| 04 | [FakeTicket 开售排队与异常场景](docs/stages/v2/04_FakeTicket开售排队与异常场景.md) | `VERIFIED` | 2026-08-13:开售/库存、排队三结果、八类异常、Debug 注入门禁及 vivo Android 16 真机 fixture 通过 | +| 05 | [Agent 任务配置目标模式与权限](docs/stages/v2/05_Agent任务配置目标模式与权限.md) | `READY` | 前置阶段已验证;完整标题、城市、场次、票档、金额和逐次确认待复验 | | 06 | [目标身份与 Accessibility 观测](docs/stages/v2/06_目标身份与Accessibility观测.md) | `REVALIDATION_REQUIRED` | 目标配置、包名/版本/签名与节点快照 | | 07 | [截图 OCR 与证据归一化](docs/stages/v2/07_截图OCR与证据归一化.md) | `REVALIDATION_REQUIRED` | 同帧 OCR、隐私和资源生命周期 | | 08 | [元素定位与页面状态](docs/stages/v2/08_元素定位与页面状态.md) | `REVALIDATION_REQUIRED` | 文本、区域、关系和置信度 | diff --git a/docs/images/test-results/stage-v2-04/01-queue-waiting.png b/docs/images/test-results/stage-v2-04/01-queue-waiting.png new file mode 100644 index 0000000000000000000000000000000000000000..f37128876295e56e46ab1ce1337d3fec1780e2fe GIT binary patch literal 52223 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 =hITE$nSYxacqIr3QoYA{SfLeJI_zUF_=JJr9h( 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 literal 0 HcmV?d00001 diff --git a/docs/images/test-results/stage-v2-04/03-captcha-stop.png b/docs/images/test-results/stage-v2-04/03-captcha-stop.png new file mode 100644 index 0000000000000000000000000000000000000000..28afe893568ce025cea7f38fadf07fc99f9adef3 GIT binary patch literal 59600 zcmeFZ2UJs8*e=YBqt2+vs0afHjEaC%MT$}#5fKp(>0Rk1A<{dsf`EY1A~n*bh8}7n z(xgUefDll6M@j-AB>8vZcmMUR^{?+=cinZ@y6fIMu@FwqK4Aw9cq%{Q4APUhln>$_Ux+MNhuJ;WqzS<2bjZ zd6oa>^ykl?xxhP7NPn&u!s^IIefI||`EloL%h;US+CAd#RQgq~J6c*=-AR%`q}5@x z-_*eY@4>3o;Kd=@o1FcfO1+MztL~p$W3}(yo9|8CZ9~||?z|p(U}{=xgfH3J-fr+A z)KA6G$fMBMFaiChNHG7rfhUUnjEhb6A3m%QOS-<@jSxVpsWco_bBxdMgJS%wFN{>V z4A$pBzY_yYfy`wC1@iBon$sgPY4pADTkr5$1c?AjSQ_aa~I0PC>r<(DL&V~*{ojpp%j z%DN2XaKUUE{Wm8r1sqkIkXSjS?K9_|8}2K8Swg~Fi;K+_y3fd)+754++TXB{3z_-! z%ORW+^#B?Oi6?G0lE@YaOW)0|L~-%ZqM0QAjry7Olc_#m)=w>m-suXFp~QPhT@P9s z$Yob~JAVCp?U`_-LSv?;zTj49Kraf|@R?b;ZCh4b6m$N9DO(4P2aS!5z{Xq&2?-LG zRb~EKn}tS2$BrHI^vgOcZro!g1Mk+O8&-Lmt@oYQ=-(CBc2B3SUoHuRCfGa}glo37 zwdv{L)Tqf5To6tTSn#{u)t!TuAPJYa?kO)e=T>X@HfcKyNu?|x@zYI}PPkBDH$|V- zp=xbBB-*JzOJm`rnp0=orA}!=4V2)OnxU~B75A#{N&n}ptc~389>=DJhP#LI{? zeb~juo5$rNv;H_EA|Yv3zx^~F%)kw_s&z!Vvcnd9iUOmQyw~LS7-}z(FWr}nxNX}t zbQwn9?e&}DV|32y-P6|Y##R$+2<(e$Pw>qR?&vjNpT?p}-^i#a!GP6wTQ<6kP#Sup zGDH}5U+8pv{{7H35`L10L7u%F-;GAYrZB)OkE|*CgU0f1Npo*gvCiM~&aB5QuPKPV z+bi7&;N!08Ip8lcE(u&2yyT=zxZwBV-e6FC95r0Hf^Nai7Cm{01KeB1F9{W;uT*Zj zI#G#JT6!5@A(L~JBf4%SLn$7$JL$DyW4&GE*qhS3A3T!0kfCpAm@q*{_uB=MRufB@ zQ6$t$3GD0dU_izyCaj$cj<(>iKVI7DIWOwZj_mss?Y>FA)~>vVuKHu0x`BodpHd3w znw?^7X85&Z4VL^wLS$S9MB?e5jKyb%j%0Yv*O3_9t&3DmwY?vQ=4@)*iHh;BK@hiZ zFrMJtP*~$li>cu4-fK9O?H(^2h_m_PL7b}dmw(3U#~W?iBCSNC3$V|lvqZTFKGW}G z_mPQ|-ts7fgbHoRu{xz-d)a=Iw1#>?k#~0|Xw-(St*weJ zFGiF!t>}QXl%MhL;BCEEexI74@76~pcWrn00@1Hw8vV$1 z>daeOc-3UBk2;4?_y|I26O%$4mdtj)vA>5LUgTP5x z&~-*nML+!U$S741gETMW38dTLklxE>_m0aCHwJ8%3I-6RLw$Ou+oIf*KFM*IR``z> zzB0REIGbBk7r$1TvdURX7DfTei$DyNwAwLNEXvfW`enhVY3mAT{ zbX?X8o2~@iubN%aM620iY3qcBP&odpU2Nb^dAVGmotfDfad$GLBOUETPf8Rwne-oI$1zqYyfNiT zz=2_uwO+Xpe7v4oz#0nvjPelB zXyvQq{iYUaIvFNzT>O!-{p-!w^T8?$)7sKvScI5(S65eQ<9s9z`?0sFdd?A-Y(=kM zkXJE)$!c4fFTLPUGbMa;3w&9Re3w%;a-nntYZH>28UEHH`i3pHgyofedcS(Cifhjc zcu|`}=~02uZ_mQpho&19h>D(lcrVw@_7vU_#v;!(r=dkj!Qh={_KPUgQbc>x)%8rc zvf-eg(aym0WFNJ=lFDj~!4tcdb)F71n=q!A;RGp#;^k~_-@QXmm||k|xg@RXcfwL# z59}TmPESv7;rY=f5wFdKapo{124aP61M(bra ziIBTd7-dqA!8{H%r*4T!-L-0a4xPf#zK09+!}ICT@v6(BqNZh!nsfAoqeB2pn4Qzo zMo5Jmbant}ZoC(3X>2S{Z`uTS(TBrrU=0`pI?`~J$)q;Gu&xg_`j24?!W`_$5 zVr>{Y1V}xAUKEzHKZU|P+_c?V#7-*MGtRFOs!>E|b$w%Ft~R%TLqEQ*WnZM;?iiZ) ziWQA)o21w_S=h3(xjtU5Du7|PePd42ziSGHDu18BgzS&3uN7#G<@`-M4=*vV7K6vE z48-O3rYfMQ%*+r6;=)Ls<9s)UKF@SUxgAl@-2OYvTv@^dRM4fsDZx98<$9Y?kV9sZ zvSZE#PMR%1tNQQEQJDdTm$HIa;Pl*ie7djURMYp#`N)vv)oXpFwE_=8x+PsiY3sCZ zR)7<`ZFzT9i(X5m@!6FS6F zY=*w7f2qi#XhdJP<=gh2mJOlqG%fT^ZJ;+odDf@u3>F$TY8Sq}I2n<(n1DnEj1ulFEkGuCOBk!!GlvH{G9(6 z%7XO+`gu!qNj=enu<`JC&BTXiFG?F%3#+1M3N3ywJat#-bhU*tCGUj^)_-~k5_6R8 z?)E%-oWtx@=rKq&@T1)^XCG@pmV|Bn*F9caEXX~hQC2S6O&i!x(X1A z+DVByp+&{Tknf)b5$K7JW|!2AMy6SQK4#wGO?(%1d3Pm-bir21eQYyqYGSV=h%WnK z>M5^ES9QSlJl@iyS4UwYc)T;;XtNz;9R4!K+p6e9dR;(fg&eZb>e6+cHDjTetdHR2 zmKZ_u7j?T>CGwtVq*UX#Ecw(bGeRGAwOY?S8NRcrX=XNAuz6YH^~sf{eV_OP=c#pe zMP4@N#>qfxN#VxYn~s@m_ok4=Q|jWh^;6*jn+^JY#?--YD=>_8!}n^}vBCoq!Y1_H zeo4R-P8?3egiyB{j8^os(&Vy=zbdh3&o-~?=n=DJ%p=&y{y zSyK&_e#y2X__|n#(Nd?WS@#@Mq%6z+-rmg75n3P5bpy0V1|Gzz0abto^;5W2HW%X$ zQ8|ij(SQV{`w1k}czAf&QQwG((|tyGZ6-qu4@Dnh<85%=-daTRR}!QejLKWSr5_ax zxGl#pp?&WV9Pzi;=hVOmmn5m~qvj;g$gm+D)9FT&XGw{%fs~y8Quh7A~ z{)L4F*tp|hWCLlkW;gA|(s6EBwGp~U&wGlto2x4%5K4c=OgdQ_QLZwhqLEpW@>5yk zA%(TNsge<*`tME39^p<^Cx33p`=iav&);chIs1-}nsuJM+o|f(D=JQlSCB6>oK9ZL6yYbz8s6duae~ z4PSeT6!=p^|H3_KrAwEB*6RE`aVY|sc~k}4+}zx2PQCX- z;=aaR(gp;S$pLwLTOqO_6RnO_!u|>fiTcbHv{C1$&LPsx3vG2LLRU%}pjK)NV&dXK zBsGREv0~+$RjQnuu?KD@<_0~{#6~M*QZM`@|4HRc7D8=vk~|)c<9K6 z@?L4sdhzhbB1C*mxdP zey!G_LwY1FIMsDzq0;qgO^!Opjnza!f&KsjKUPvwa&4$!uomAzTgioAQmBDVg#rS3 zN8eBuyZHH3OFTBq#3rcPXJw?*%rjXqGtUV!5sBb53FdMK@>quNuJGlhfAV(S-5zl=f>M7*%@MfvTELpyJxE!v*zbOqn>u#*FfblLBi&PA+< zJRZ;vr=j$0_XZlefG>Pi&Hn4Bod&IL(o_LM9Uin-(18qHFId>X%w+VXD?0g?Rz;7dliRVhj@}zoP5XCM|}y<-C|^}`aen1YxCpfZo2JD_^X2o^~a90`IwLrM*+bS z!=#G&9Y?p@mb;-Sb0-NK50?D&)JSh$a9Gmrz8I2A&JrEBkJoVxd^x_Rmn#u`mdnJ} z?Gfl%m)eY3qjNvPCgg_4Kx;3uLa{R z&XydI%P@e^Z@r2caRf!&U|}P=CdRxPBDb7G5DYo!??4_bC`<*%Pt?wwR1#3xdEZ1H zEjq|=UAOR4Bh3!pVURGQk<6~q$YUsw^GNhR6;D|l(o?4RpLH`rL&mm-;`Nla$}U#Y z|IzjE*epR4Q;pF3@QlF-O3P8>f z;ZUOFoYCFKEK=vX5ol3}{!(wfQ+nvgX2&_K?ObHE1vD)wg-0NBgsT4aHpJI^@$2{L z?}!t;*G0JvP7Mg377QIdb;HWmo&KDHC;mvSif+-pepyY83ODca{OVhx@Ns?{U+-^w ztExY&UyiDw&qg~|oJJK2a8v5Sk(ZyjsF9lIHQ=2LnUKM&iPIi|@!ZGs} z;DY#?mVsRD4eAQANL9Or>u7YxOrmP(1*6B0jnKvpo-gZH1tSLr1}Mkp5o%r4E`xa` z3hq`79Zmz+YenRh=6jN_O>b%IDpOu^+k{?yH+)4q_3lK4L-(NG4V9=4Jp*&|Kw30D zSJJ19TH3JDu#2fvaxoPMhLNHQnbb>q9u>M7-LdlPP5GU*hLB;Uo(vUgMUj+Fh^1?x zLwAx@D9K^&j5|JWN|)w#L)G(d%4%9xR@No8_X@DdVw{u1uBQ9v3$~Rm?L9mIMTWmv zXgaQVbh?P2*3|c2A6uAPKU4$CAfw%ad=5zetxb0M(QgA$QYBQLjRpoL`Eo2_@-dbFq~eDZg7UKM4lP?S z1OgdvFGAHic1zau5Vb1Tdk@>l@BGR3G|jm`t1Y8pgM##66a=EjDnWSn@hCyC>J+(Q z4%J`=jbjow%h|9|A2e(bT;P1=wTRcr{hCME&lz?s z+{@Piti^dRfZM&S`H0UA$FuEpuT@Yo+Ksml>fTVvKNHbi(Nt#e9qw*bUnm>7Y23t ztQTSDyaDT)TYRIXZCvtY{TGBI^=Tq6`4Nel5afQZul*Oc6=bLqneVF_Rqy`Y<-rD= z)C=Fv{^m;YcXyS^t#)uh>Mk~xMnzAB5Wcn)C^0N zS?%dm{to);D5H_Q+;K)#YHAD2Fm`V%3RD8QYn173=}F%XSX3mC1eY;ByG2si`TGCt!&d@#&;%6^JCydQA+ zPCSq+vGWKM9L?9AQv;MR^_vP8Qx#y=m~G%=pksA9IMGO;OO3ma*O;K7yTqU=Uns#S zFbQC0=yr($s2DQU!!L3i-&*znm2!{SwZY}`va%;pz37jOW=QS#u;^;LAn%QSPync& zO63m-2%xSu!CYJK=*!y8zo~l7&zRgRLeV@d^pFU6eG{av%eMPWn&T(3O`*2!4wV>TQ*c zTg&2|+~ESjrcwf%rW{<-)|Tab+|t%eg=T_y6D{w8TY}!#r35(mH5}G$b<|1K8P9>5 zHD0H6irEQ<2tm6KDBH-O?{x+SbjVq5Zj-bzC6Mg8QC*AK%^t8f;x^X);cI>$6>X;& zKWN>kdI_kp7jiO$2?XZzbdg`Jt!yc1nk6jKN1Co_bJ;^p<#rHutUAXz zm5yZ2dpQh-4Qq_x856A+Y7aXURW>Z?w^;&F>IeK9}XGmz1hF+B)eFl3j~ z2_y^=J-U!tCD0o$!Z4eH9IA2TwATP1RcNaQo%o=&a+CG2bc1efgh{B?xDFS<`mGWBq=btVin{B1f`h zqR0tlac6S8(4i>subZ42<)T~~`q)i)=a&8o9+c(HR-p%5uPU=>j0ZS%wx^_Sz_lo( zYHXeJ?fopFYF{F%6xQHEfbdH)Wu$JAzc#97bk)>07ZTTfyQ9&<8#3bJ;#3j|8@T>z zAxks`sOt(|*rhVF@FA5BtU~ByV}L#<`?)J++6z*N0#G7aSEczXe)sDz_L`oW8?uS) z0(8E}*Cp*~sD&I_Nx8fr{6K#^X{5v=A3E09GJh6{BG!|H3v5cEJe#X2@*(4w5H^;U zjqQfBfGS`~c~kBc^Zp-4eAGwwD!lfwzHEO}efb+#aA5*g9w`=*=X@8x->||haqQB* zgJK5677)h7r5g%AeE6_To7n`~_{Q5epwszxks41&4CZbkGXp+4wcbzS_NtsCk^t%zy`& zYxkxlbRG4C%yozOZUVp)4EB{rc~((7?a7LWkfc8(ge3hz!e0ZPzv5@4L{;{i{$eA={|^*KW* z!w7_B=q7rqw49U5JeweyEz>wZ@w&~n{NsFVsmhw5o3a2I!*KMv%l2u!b!Jl^JrO#6 zSp-m-d|ypxLe1L79b$5Wn=ueDgFpeJgHhf4pnh_1=@+9_WpcUZksU$P`Yi9yFJqAb z>&c>#ir$M)+Hy_utUgJ^4!qz{%+ZMAnj;AMFFpgyESma5`F_Y}hkSuOclP;aA|oUB zch=*HHip$n5>^jAT)%_h*4Ea>k9EIz)q5NpgK=Nfw>Ox{u)J(5uCTCj<6>!TPH^&+ zrXU{`#cgx_5##)!efGtnas#lK6KWm088>Z)#0AcjCyCq6!6hHr}Ust zdK~W+q02}3AYVZzA~PGHDCjk~!0H5SAx{&6g5nfu#no$!-U-+p%g{~}n~=nsCOG4l znJGRsAm|w(-LWC$BJ^P-?`>s)*e>Hca*ZOkT@#CC{r%BL??|TJ*~OevA$yQuT8O(l zqgCaSB5Z7=4`B3u#L(R`16|9Coc3$kDe}<3UH;u!@5^t8Ufl>sDm5+-zsLYMyLGu$ zpOdsiT=={#eJ@D$9>`k;dZ^HIEtsH<)culJRr(dm^y)R7R_UDA_W*9)1N&*_$_7C? ztKGQ7+-QjmRN&IeQv{HhKo*>jBLfm(~SuTP$Ck|Ig_aAIGo5nCWvI6mm z*SuN?hzLFuU)|tIr8#dyeNHQ%w&6LnFnvDE#w3_-TbK%KoU6;vfRh;+L9?0V`N+UK zo-^68(IMZ%9n!Ky1LxF=1UZ7fG>7L&ehk|AY8MyVzPDV2a%T`f0*DCOT2ezX_-qeV zcen@1?)+Kdf(o?p%FihA%B+rI^4*e)@Sx8gA|pG|%oWHQi#sK2>tkWng~eM1{G|Ej zwU{?asNzuUsySv0V;$~*p{`raL{tO{+K+Wba@haMCW8hgg^dqom}fnB>~;5wlSA)1 zu|9V1@$g5N!F-~}E`LO|^!YL19zft7_Z_UUYVcN}B@A|poQ{R>rq4!Q(oRyQ^(=R^ ztk+R9TwohbRvY0R2O(eR>Rs@Ud-hu*7p1U50YQ>REB#F!dho5mFaZr;PEO8qva=tS zcaJB(wkjI0bte3`X90jz`F(+%G1vs34EWZUygCK4H%JHbBku(CD~|GbO@+t6_4QNjIG8*391Y1CAL992}R zviu`^8ESZx{l?;_LnrTJLYJ2qLCfLCO3Wp=#IY}x;LXb-_Zn5`YaseG^s9hjVC599 zvs1%heb&Z?n(CAhOy)MRA~4BjG>7WJO@8s><#AY zO?^&qn8;dALQZCGob-#ScVkNKO|+4Qjc7RI#qOZ*;@8X;;D#GO`FKVJCw!PtRl zo>K3Sx=tvDE`WK+U$ZpONg4WZL|o1b5oO-!Yd2JknO{UC=o0L1M^Bc2KN8?4z$-}i z)`Gm)-$N&hTGSb>oDHdQ)~A)S-SlC?ZEuQP!!oxCsIZL>+^wxANm$Hzs7j7yRGTfg z^^^Wqtuss-FB<7yw>HmQA+E7B&=AzwbDqwL=)|Wh`siZ(*C|f%(qRV=+6vmS3K*b` zrYri6=a7WM&w1Yk+$~HX$dFS5*}GQ^BxL@^L8#RraF?Ks{gwdk3=2!kiLZ7AO=n^S z8&#t%dl=GWR38k4xE{zl{Q_lm`cw%Kv;bhGz}1%?UR-)-#`Pxl7t#~50Z#c6WuH!^Cj~FJh6}>|+sE=n6nqJV1i=l8!Isk( zAkc`8LlML*(S33Q%m9Ctht`4J0l-=`X2Y+#QzjZ|Ugf+wq=uYy&W?VlmvUD~SJ7t_ z6c%KH9~KjWmWEjGfrV1x1py8L**!lrF?rC&GX*RYcrEmm)HVSYR$y{_K16M!VFOcC zYmpz5{!m)R!4K`Kvu{68*Mc*vud-g4bLcMbIOn%{m|I~-boqr~x|?GQyTU{<%@Ks% zT8$A}5zZZh$B{f-;ubYm z%Cm&Hw~=Rx?sX?g*Lx%8q>+OUn}5CO%gh zjQC*Mk`r<=6u*`@d5*fDio$|*pSi;Xz~Y#(F#E#VCS+}Rwq5o@y zvnF{8#^7x#YW7(lqQnqF(HWeO*?SV~&Mr$^ZmJ=azOiBDw33g)+w9PCP2Rk}?qUnp zQ=;oh{WtTU+u4Kun1G7tqy`} z$pS1_a%x0HaqFckI)G<7P!~;{8+@0>!Q&O8k<*+0Xm^W^T3QUVa#80fw2m-kV>8VU z`O$yWDZ}dy&|$%%**4;6VN>(4PMNIx1uizWr;qkt9%24?4bEkIe%|&M@JLkH>%#zk z|N8m)zaRW-l7F4y-}v|!8UDq@f78Uj3G!cR@Go2XmnZ(OWXN|y)j0rJf7BFz7d*oL zdnRk+Lfs{^%Dc?H3--t-y{DMl7vA!Jt`=aj_os>l8Vy}U^E1qS4Alvbqm0W_Q%Wu~ z&v|eyIl(EHYDl~Dk41^8gfKJ7%NRkO^48w&J5b!p&D|ny-(p_XPb?jl8$Ox~_nK+cmah5KnM!cA8DnEQX27E@<-^U!7g4JE#5#0x+4mBHxo_j9 z+;+J5yjz8pUAd{XwY9Re+jm!=>Bxan$0%^0M=q|_@Q8{COwJBg^qZ14{PB-4vTB4;0HC~;;9PuNS zxRJC(>!&(>f~8BD6*2-3jrPw!XAWzG+lX^@Ik-1g1W7l~o*4>cGlY^3MJtPdy3KUT zQ0dimuGmZXCxuHMt{$$-tZ9n296oFTp7q4VF3c?qPhTG!PZkq89WfMD&MfAfdkX80 z@LiI*JlYdw*f5{My2-_*!>P@@x;(xG!6kyMv#P{OXAQHTC!$vVX8MS%uABJi?5)-S zNI(q}dfJ}9Y}RVT4NwQm=WZgwsjB7QPQS5#x-;%S~w^#A!tqOj29~IKvh4%?(c91tB zl4z=mxSk=1>&A5-L?^@1Qc4ELS=TsG=>I`iLZB!dbe6>0xf87eo|X~i8g{=V!u<%Z z!#wME>)bOD@r>eW`4S-TX8n|L%HZmZ`FF+ch5lzhy+aJ)JUnELAI|3x8zc9&oy^ zf92>3>4L{F-``F9e%aZSb*qQNXClO{a0OE6&tjuKFPVdSj_~D?=ZZB7CIpHfVeC81Jh9DS^E*DqG=Xn&c%kx?}lvqMEU0vpg^Ba`$r)k4<22G{Ah+DV<{1 zWjfj~R1Yo>&Py9%Rs_{#7;d&f_GjaqNR5bW(XQ_99hu_i>g4i4?Ohzg?EIiAOvZ z52?^S3o9l!fF6v?o$34%+c5+7MGSWt-B3X+wE~lU47E(y3y&$J{t_<@WC{8a3J3$+ za#LmLjKRwjtWl`D^5$BFm3UiC-!l-4$3%9_@K_J!X4x|qe(cpL$%2chL}>Wn`UIt0 z#765omn2*1M9|lN3InA)N~Bxn=bZN63KYI=;P{mp?0-HjTsZBtB2#Siy7H1AHlB40 zy=4cmoH*eAx`gB~8mTby(Cx;4FDG+KM{PGv+eBJN?k-o&Lf*UN#Alh}7D zrVIIJYLn^daxpy5lcs&&^q?ES;Pa|LXuc_@ zk%HT>!)W_$R^(Sz6aP$2Ad7PAk1sM~@0_kSMnKhB(efz)rJHtF zsL*Oyt3Y0c*>O`pqs^D2q7bLa+N_JPllA#jo9-2n*Cc~CeILmrD zrV{h_Rs&i2<8h?Xwe-JDw^z)%@@cu)T`+M=iYg^MKB+nVKf39YJux({~^XBP=X5wL< za~{7rDlU{3GNO200~HNT@IBtUe)|}kC+UTOeK$C=@ol8!h2NgOwbX4?W?3N5oNwe1 z@)j$Jz5GeTSrLD}PQ*8Wl>%8upS~?_mD2lZi~shf;Jv>=pC@ZJfB%m*Y5xDI4cpJ7 zfBw|He(wGIseb+30r;4izy225h_K3F?FeN3&i0wLFYrHi<^TTz|8;{m6SjK5x1aLQ zMY1EL$(-^LZRk6rktI>u8+pYVM#30Ov&+DpUz;m<1*N|jng@#aFDl~G8vI^ z<0vx`vT@l=-NvDULN_~_r}Q{Q#7?j*EODyMr^Sy}zpy}@Np<97+1vEik?linRQ!(K zPVZh3>vk?Y;%_Xcc2l1PGj@X^8o3x@IZQjr`!)PG^7X5*^Do5`RchTuX2 zUh zQ}a{&eH=Ogvjg@zWAn0FQEk&t9y@RC+Px~!<0~DoYGH^lBmKP*!+%3>oza{ijjY-l zEv-MR6=zAHbvH*m8zYDGxl7+2u&=!$OZ&Z=r-wuNiZ7#Z-%5G(571q`6lz=!_PMn)3@Er z7l4UA#ceP4T{IplNu!6T=apA^7~=cea;~q?UE+ka4Du*04a#2ov1)aUqt(5I4|-TL zndjOgEAM0>cEY(!9vARdR!3aW9wXyo%#7YE!*?Isi>h6xQQPku2=@wU$;_Y}{*y73 z`os|PEVCLAN4E()ST$e7j725%m2KwMrDojN+F`Af6Wn307*GE@(aCo>e8Dw8nAgc7 zggS3~1nc)rrns^E#_*EPHIj>ZoX|`ZXE}82Br|Q?G^$@VPH=zC-v`4fSuI?BHgW9d zVdLSAhvR=0?-}Ov3n4~I3a2!fU44*fwd^Mj^^S#^?^UAQM^&^=Gf)3CVLXH~*T>3e z#oa3ZfqsXTI{1z3I;wDr>0^d7Z)?;Cg>>R(f$z_}DnG0moKbBJM;Ng0B2R7({*%kj>c%Aww~*G*UdDrQOwb;V;|&r0>5Ow{&HCWZ+W}wq zXE=5+0#26{N(Z@x3>`=9Y(6We!qynH&w4XoM_RfFOssjzQ#C&>IK26Oz^GL#Zs(03 zYON0QphxNEp51(vN62vFDNki4H_)f8_;H3|?(|~PMv*zB#V?Fekv2m@o zZo|*+Rln`S#-PR0m3ny7kHdrn=#562N3P}tgjoa_&}gx#M4pS{ZtYxV5M*XNL$0?j zDJYDtJQaf9u}sZ#!Ccqh9$UEzgc#AISToHE5w^|uf3%9p$s^&ZcNjI23ne&N z)l%9Yl4B!FYD|cI+Ix(0OL!))TVo^*8Ui7_n>4tP+8Z zX}B_t&etvQqi@g3A`uM zPoI|LxTGMz)N`5OJ@#TSfihzjZ32wjE17Nfo{c_W^3aj7;nGZg~3X#wskSRlYhK2%R zit|2wvLzeD-+vFp|JMlpU*v@ULmQkw8`aj9@oUsgR^I0h?q$riKSAR1>Fe$CSzyBTh)89XK1WfX+%qx^s zS)G-Y6+S**K3-nmgWtGWO!$@>lLD7W2JkR+S}XZePH8%blEV?eE!vXd9W(hW3V0k|5haZ z{rk~B6j{(M@iAC+ia6LLdbRF#{-iZ4z@9I!tq}i-^(bs_ZM_Y%*|1FyA^c=X?~5W- znpDo5ITNK6US3{aixcN!GTytVP!aqB0s?$|7OQ4LT5%^%o|Jl*+=F1^qv`K$wjPh3 zJSul8*I?Xa*y?3+u?BN_;@;}Fua8JxeRG~JDI-skETv55z67hPDJxsHT;?*VW(0!i zA1ZzzdV-zZ=$cGwuWyy#tY;lC00D17)4;N`v-7X!Wb2De?2$6b<+su8~Fc3Pr`sFJ>EQ zKr$b^Uz_?^QVng7fx5f9yFpVu5X+1wVVW1L^d*=c?fU_EqN=L(+_y>0x(JJbdP+?ZzISa$)4S9h3C@X(Y$-ExokH1V04v_O9A*wzIQ4J6&0wTiqx?0MGjk zOvn(v1gMN$N8&Wi26dUU{Ad6CpV1GjXU+^uwIscXi7~d0g}S=BLS0HM%eKW9>@#wk zYFX#qNy&@H>#G+Ffq`AAc#p{!_~-=bvqqF7s}uEVdH{vuy&$g@2jUMy z$57UdESiP2WZrRXKec6=^*00SHlf!uB&R0y9^z@S$ zAlN?+rTM;GR;mH9(1q^rb6%2mMzH*^P*z8Mf~!HYaA_1OG0Mt%kcMO01s0{EQWB)s z#6P%RB3PyAZ&xgiaYePI2VJcJ)7@0kwDq1`Lk2PNDjAo>q!Kr;EWL;my37@s+cp{? z=`S_A>?~{$UK`Pllf#X$e0zD37~e5VGJ);|3-AZs-(US0=r$27>w%6eD% z^^jKpNPxc(?8r#DPhCA_y~31f=`wF4>wA)@R$%9~pxHH1M5;}zvD7F4jb_#hycugB z`dYr7K6`;xft@&8Q5oi>B>8@Se}7rT*v7`D?ooJH*gb-}x;g-u%IH<+jgKf4Y73;q zk>Q`o{px_rF^U;V)cTl%MTnkpEr+jXbJ7V84inSZ5_-~jir~>|QP#AN&WlI71zM~= zCqeDhjij-i_A-?!mulf3;P*fScJ|(p^5pw@UGQeHeDrOW7t}Dlz&6x&65S^CUJRjl z{MF|-3cF;|E;|PYt_BampIz9dxPDgE8C>R$MEuJ12?>{Y#F=~v$t1NTlxT*>n#W~J z{fUVQ%igk#$&AY!7VB#({2&M$@jre%v4Ky`!a$Vj!Sv*uATI6&j-vxC6Z>~bM@SxZ zEjKOxZl!d51TEPsIh-br#KD#)WmQ!(ggW>3{PkeC#YJbi4nZECC4j1eg3?@37cX7} zaA~yNI)7i-z`;tI|FJ+e0OBjz56^KO1JtzE9=|jo3nEkCTpEd1>hS7TWy>SJtvymdO-M^KNK*>^g+rteh2p3`k;y>_E z^`&*qdBe0d)y}KVQZuOI|Hbl}EnA3I=ml&mw_W8J#7T1@>%K6+SRY@>cWU9|tP5ov zi{`bxDv#(cu`CDpD>cfaEn)@W(z{uh3E{7^Zq?>l6jAy{U!7>YFI<`BreS48{G3(_ z0zpLdXLu^bd$t+_ey4aIk>>)C^w-AX>fGE*J0WH9xv#!Y+u{JqeGmf~qCGY@din*J z-Z)_&cAw%W6(I`ra@()1Z4eC5e80BAT@zT$$}ztt zTfVQL5~x?lvf1hB@b}X=2jtNpv$&&d4^~IN`C0Vtys3JgHYPR;q;&rl?V1AX{;6 zT}pcST&zoqa9hsK_-GfkFW^bi@66_{26d8yCBP*jHX~e(DXx5|jsC8t>gWjoH| zXG#$_q{Vb2J6rc|zltfD=X~hv!9wD)8^|9CJwxSkYQ_H6Eu*Jcqu+jy`AezE4y1y; z#XZPMxuS0b3u_?;fu4OaVBm=;@zSl7#|SQIR*m-3gx26yV;;-Thtr!~2rh#@nigK-$g36CMa{qOTT|h&Xe&NX09jz3tmE{$gv1C}& zMA8MLO0UBCU#xz17Gl>S>=M`O;N?>{mf}kAGW^=dlDoQx8WrWo>Rr0ED{>p`og|9* z^)tI0A>ztsSgM&47PnW=C*a_B&2VJq-X)hoUZ^U&3Srdqy!{yasS2~nW zhdoKVqSNxS#rPNdYq{NTv>9obTjI_O4*P;ESt042n38;fzmG?S&sSZ_<*~q5zFxhK z1NYlis5D$aDCLi z^wOApQi6_S7e4ug?|?#X0w}wivxtpWbfg`v-5y703(nZEFV(ggX%MDJo`Iw z=^mW*Sly#gF;s)Dp!~v@E~-p2(*_^)6Xk%{wIox_uEf%$~T7($pRq`I@|qSd`TUBl_SHT_mnkd%cRk}^g`3T z309dRm!F`v-n2WZRy*BQQ&SV5Q$4$jKKO2wpEg0jrwVm06OG|B1Ks4YAS7>0Wo>B_ zz23&!ONU*lbTTB?1R1>Li{xO_2dcH{h`f97xAB!ytM^{~@QKaiURi4n_V%+$YLgFp zzgW7*FfwA^ya`@x_7MrLsF}7aAXx zo!ykZ^%P|l$o!HX^YPGuGswLn8-}7*+;P=SMux}4=1~FvZ^3$q?zz4jE30ZW9CF&B9LUz`kFT(O~oB}J!GC8p)m??w2n=DtM)(-rXays9S8;X;1- z%WS`b^6W}w2zfI9b5q`#GZeqZ?I~@-+S*zrJKwo;inN|VO-;>sp)og9)8tkjx&~d1 z^w{Ug9qx8RHITh*YJadZrm(|Tnl#mx%PJ>#ksFFMVs7k0T2P-lhvH(Vrl7&T|4zRq z*bk^)c%$zyvi5`F=b(+I-Q#+Jk6*pBvbrYG=;Sq)FA%hvAPs9+tHDA?-wJ72SP)Ky z3#!iHt$fWAg*yMh`OkxYj&j%T$Jw_`DV(Fc>_F6*l$z?#S+lJs+?MzxBX|9}tfIW) zR1?sog<-JejNQXU>?C$c$=+?E+bPoS?k<@utTpg;^a|zH2!<{R=LEtXcy?G-h z2C5rGbwSwp1}xnpo;+Ec@4iKb$sX6z3P6S&K)-<_?g86q4CNYu= zR*$CYrW^8+lu02iYf_|1=r@{EA{IHZy;gEf&3>vT#*zjFIQ+)z|OW?_w5qh`vN<`{Pu3s07T<*9VF!`1Q|s zuMa*oO1E&t{n*8--m*|I(UvFF~-MTPq?{|RX&y6On;BnVK6c-h3C+orQ%uy01 zfuz(KSwbjiJWUuH8X6dv3F#1rKQSr@jTgEBz)}~EUvf!Ff?L&j&QS!x_Zc*;UTSG+ z;ZuO_Bj6#lHtrA~R1>*SIeBS(d|cIcQd2K*^Z2#o9%`TRb^tDPJvg?ENF#?$C81;e zdxqR1@=dX!G(9-Ea)3PM6!NI%F}RW#%+Dth#4!_U{Gd=M!@H}f=-dGw_~(Jelmrxe za7mizfN({g3F>q}5d9b-!*32o{4hpy1Y11aeQkWIq~yxC5dtg-A2ez7_|sKA#lZE~ zYh&lit;CJ{_Gqd>8!C0W+M#LDC zTleD{_sEa^+VZLI-!HCgAlLAveSJK9*`^Y{yF2$8n4FU8>eABE8VdNnsP7%h zd&R`g()#7X0ZBx->hxEqbMS+mU$C|F+__Gd`Tf5=!@<|L^EhhB^($Q)ZpnjrNAYY* zN;QG0c)<^2MeuLfn1-xXxgQ8@IM?WHB(&5XP-nf2vh8~T4^3)&IWmrRvQ zUvIFpA5SPey!jjYzg~d7OOmo{YQ8j%-oqOl!sT!3&m(5ASS(4v;hr)SVz_Nl^fn7J z@0u8s)elcW7yGR0pnt{8VOXz4IQ+thc+&<48P5zk$!!moNBfOVh_`c)m+CY))g z`aX%#JRKl{32o|X4jzTQgA(the6H)HSz)(6C;<#no)^V+Z>ibNy~FF*mQvjMLRaN zaBeN~nt?39k!kxaekjDy<)I@~RP@QvSs=f@{=0IvbQ&;u^0w?SISUb7(y@ zYSl#z!M3?UJ*&N&P6u7=99$X!sF=vw{kfSnJ~@j{A(GQa`}9r;NTI)5sEK1!VAp~S zq1fpHInS;@=*hXj&{_VB{Ezn|`cSP|$fA2@V=gPwXbG!lXR#EB3|!Sz|L%U#@dC0S z0}IPICDQ=v_U?h9{;a9QRD2HJ^maH19y_iI^uEX-2(w}w&}c`+KrZ%k^(?W8hq=wz zBPG{l;6O=KjI%u5dCg;YdE*9bzqa<5>20Hyl&Y#KVa2$q7NqAA`oKHxk?+Xr_SC39uo%ug1&` zzI4Fnl%QwJ1UY085I_0}JOU(Hh#%mH6;r6Ss*_E?5s_InfOJ)MwA({);9Vpcj(!g;3eH5Bl>F%Qq0BK zITHvNQ|WGfU&*9IW%b^bb4X(gwK^u3iKqj&NAdNM?7K|U^hsCgQ6G2KJ%)ex9!a7o z1dYg&*{Kkg_OQ3~_}M3MSK6nn88yGtumx-=*m9CZ9?bHMti_{R?^5H6oa*Z{qoY@; zvAVA+VXvXTEHA2CcB5kH&k0@Qe#36UwZ{F*-DFu@=W(~(BDy;!U@sRT*%|G=HYgUj z>A%Dm#4C4d9}x&Z_HnnW(M!iEM|=S&j8idgXeRX9ZxtYxi1u3w30v=^bMMvg#Y{0U zFz`W3^J=dFKTFkwPGTRNKJ{4o2aws1J%7Xczj|k#1T0WDFMk&BYbA1!g=hNj310S3 z)=u_{wO9+!q{hhQdhQ;`qMmOKA$NDpaOkq3lpB?x3^^XlDqZ`$$1`qs&ZnT* zdCTbk9ZeFs^%d`VHzSx}1_OgY(DsIr%-rm3{G)AK_;>g6KWH>YiSAz1yFx_3ej+pEqVQWA0sQSHj1gQ7qn$aTa;79IDKo$KkekJrX^W)Oz7C$t4ENi*f zYoJE{=VAiTm9C|XiwOOU<6;_9PsC+One^E^d^mIovR!K&(tPiYkrA=v+ew^>H4zpe za8`a=)zs{zMk4(_$Vn>ciOAql5G9_M62OQOlDJO@8zX&VygcvT@g@wayrJ?$2uST$ z%V=!TZO1Eh>Mq(3Q%pZIKA-SNvBIEfCsfV=F()E-c|Kg$u!;emCD^t0cGl#8%gRTJ z&P_*M+hqQz22U3s1YP_i-<}qX>G6azayk&Tj}Umwg!9>A6*%vk+NkNTnKHrTMe=hy z$(>GH1fi?41|3kK<}3*C^h^8_`UM);xq&-%X#7m~VGBIT*iumWHrr%s&H{tgW~Tc= z!c?8JS-BsKM?C-=PI)^W6^nqpKP8FB59U@KQ|516*N0*~;~qgT_wRMfIQ2)Gl1Qw7 z8|@N-qG7-W#$PuP^a+41Cp*^o-qJJ6cp)+kXe%n zs<%<@5Cw=121HO^1$FcLGKfP7-*=>fErsk>=b`Uu&l_IXWu6)*j+L=UKOq-?DAZQ{OO%W8=f0 z7|TMQXmxGIo=IMZqYCW+pm(&Uk zhw<^5a(VN?Y}HTzuGoZXwO)^v)yOpF$!6l_|5Pz(@(lWl8#jXGu-hBpC}+=cO%WA~igmY{pdgG?%VmZO6DGl;1RCUH zbXPsX00l-*{T;T9`a@^UL8fOOo^sr}gowzYnq78KcC}`UoI5Cn{m)uMA1RJ5j9r2n z;<4``EAA*ZFDk9h8J_0cV&~%nKuI(*x}EX7kU?g1fA_b7?9Kx2sO*-M$u>!GhZ67K zV@o!w55>kHW%y#YIArY_nQ#gE8A6Z6AJ3KVPL<=1_4&Djq)+(@M8)(y<<_SJa9ubo z9G4`A?U#c(C!2Vu$O2D?r)<0`Sbj#SM(*`{fB$Ysh>1Q)5FLFYgFUmE2ZfAc+y#0H zDhVozK7R%fz$@li;jnwTmUzmf#pnUb4v>>{$gu7JWq&I9I0KBPRCrcA1@Swp;6pq7!xeW3$j81#j7% zG;+Dz1Ui2oDbzUJBY+{`c>yf@1S`+27jQ!VNE) zbiYijamABszkB!j>ttpE?)&CBpCY0b8fpva${oDDz45)4Qyn%_8wsy-vvaa>#>I__ z9ARCLgoqz^{w0ONnJ^Nlq54fm4I8-ou*9%0cJ*_qe!b_`-?xw55RdN@;c3jV0Cl)< zVpMpv+_;f@SNDWiOvr9hCo{bA`p36xNvbFRU|X@dT`>$CgP&(+B&s%s!o$A)Bo4hx zD{cGt={B5>icz%7!q{BP+>lZyr8wkUb+yjUH$Dmt2@%)Pu?b~NCKVYC4K39xlD|R^ z?&?$P?@%*RQK{XkSjm#r%&@F5Xlt)^TSlDIi8}ohJ+@mayX;wE?Hha3**h>mFIJI| z;nsklpPERaNduyhf|Lo5~EL zPOH^^FmCpEuFF7APtVR5ze7lqxFh>vR#sNpp(h^Z@&svv2Q#_&y2zj-103{63#tv*g^%)^%CCzvgJ&gfCT<`%gJP%(Aw$uJ&@` z@lI|E4A3hxRAg%LIXCZ0PuZXIw4JET3$&2Z)t%5PS5i~UlnENr2F%F6r)EJ@(I%eN zyFDHbHv(@Ehq5+ZAM2WJ@ExyZZUx6oK zT#W#D1G2+XQ{VI!ejuixx%;X}@WxvAssXsQILc$9}^re%0=Lr zE;Fc=SJocu=;)a4neO?kp=|WzT>II(BXtfT?&(TjqT<5=6ixF*BB}XYkJqPA1#$%r ze0+TQp5#K#9R=2qYIoPfn)vGY0yQkkqQKC}X`dCJWNgHZ@@GK-st=b}st?Z0lz+V# zBNHV~uV&~X2rOjQ&q;w9N>`t}n_ZPYO$EF3^UvAY2mNd6%~@D?oT;@nJIffYRO#Op)A?9KQT5(9V|peeYM(Qj4_k$Q&RX%PrTXF+U`MMA|jZg z0z8=KWrIWfgy#3|-ldpg1ttwOQt%X>ifBv?I6j49Z=g@j8tn(uyj=nV16`Jy8P3na z=9ae_Z?iRyEtQhhGQ>*fz_*sJ`mxb>BpGK(c=Y_{&yZ@Y_9TlRi5OCzFHsOMgsZ_1 zo`XHe_$dE|TF=-TuFrEV?u|)$M}Iwyjni}93=MI;2`SZ9P|$P&AAR}>EHb=ea^ldj zq0X9&$lY|qs^I6Jyboqx4)XJFYg=~AxZBLt+RZf?3WH&f*!p_L3?5L(%_i5Qqm#A; z;{CaPKa_s?^$-$6-pSU$%nYd{?|8<~e_VI1Z`G)T9(ZzZ3{!wlkiB`eb_Ojit#97C z)$DV=x{)!LB^$_H^2WpC1WZyS<8-%mRipR*#>QlYDvu2?=Y83enos(iI;}$RuEM~r zboggHhxhL6#CV5JzQfY37P%GA2w4zNGW|*Zc*8T3latfaRkElv-O}UJ0Dfo9AN=&` z`Vl1oOMbpJZ_-`GOv(d9%!>Da^Zw0$^Zxpg&&9ErmWBo?135Vv*^%Jc^S`_L5G>Z1 zzs|DeM{wxL&Pb&CnK~8&2Y2fcl9H7bggMBV^M;ek(~8)S_cziQaWECqj4w64 z=;;E2e}}*ZGoVZEi&C@DmRqx0rk1ZK;ekF*Sw&xh^NQ(39nS)h0MPVY-{=owx&y;Tk0V{aLTEVhge`~$^XMr^ERFCvvT^?o_! zn$^?47$!v5;D99&1}xvMr&lwblJi1a+(b_|@j{M)KN)rD|HfQP3#?5K$APJGO%@iG z^2H{q%s)IiDcWPL!M7W|chxpI4`7S#=cBN4Qz+#4q<3(x?tTj!1&Tu&TDe{X8cTYgma5hhBN{Gep{U-J zC3^(nc5~CfeKh}MV8Ob^ni<-qdJ=|4pDxR)gB1e%JiiqLdWI&65nw8osMpll_{6QTBp@<{1GQ!C9|j@Aw(VOZD=BZ(oJ1 z(Bq*oOyS}BcDz(2?geTYQeMt;`Kq~JqLjX5gBrn^LGq91*6;V&Pj&D`nNx_{+T@^s zrl!Yd&?C^u+j*(MeQu=ns4H=IwV>x

9flkJO>=KHa+Bb$53}ZfNwYz^I+kB6rwQ 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 排队等待 -> 排队超时 -> 验证码安全停止 +- 真机自动化:阶段 04 用例 3/3 通过;证据用例 1/1 通过 +- 安全结论:排队结果由本地 fixture 确定,不连接网络;验证码页只提供重置,不提供绕过或继续动作 +- 设备环境:截图右侧可见 vivo 系统悬浮控件,仅覆盖空白区域,未修改设备设置 + +文件与 SHA-256: + +- `01-queue-waiting.png`:`82d0be35e6f17181077e413ee2d55a0ad00f71fea6d44c4ba7132951c168bce4` +- `02-queue-timeout.png`:`a3289e3739bca3c3365c953839eabcb70d13dd613c790e9173ed49929ca20142` +- `03-captcha-stop.png`:`f1847508cfe354a779b94899013857de1d7ced830a2c25d9d82e55f6371b2c3d` diff --git "a/docs/stages/v2/04_FakeTicket\345\274\200\345\224\256\346\216\222\351\230\237\344\270\216\345\274\202\345\270\270\345\234\272\346\231\257.md" "b/docs/stages/v2/04_FakeTicket\345\274\200\345\224\256\346\216\222\351\230\237\344\270\216\345\274\202\345\270\270\345\234\272\346\231\257.md" index 2a2fb76..1bdb12b 100644 --- "a/docs/stages/v2/04_FakeTicket\345\274\200\345\224\256\346\216\222\351\230\237\344\270\216\345\274\202\345\270\270\345\234\272\346\231\257.md" +++ "b/docs/stages/v2/04_FakeTicket\345\274\200\345\224\256\346\216\222\351\230\237\344\270\216\345\274\202\345\270\270\345\234\272\346\231\257.md" @@ -1,6 +1,9 @@ # 阶段 04:FakeTicket 开售排队与异常场景 -- 状态:`REVALIDATION_REQUIRED` +- 状态:`VERIFIED` +- 负责人:Codex +- 开始时间:2026-08-13 +- 完成时间:2026-08-13 - 前置:阶段 03 `VERIFIED` ## 目标 @@ -14,3 +17,37 @@ ## 门禁 模型和 Compose 测试覆盖每个转换与重置;release 不暴露场景注入;排队 fixture 不依赖固定不可控网络。所有测试、Lint、assemble 和真机人工注入通过。 + +## 实现结果 + +- `FakeSaleClock`、七票档库存与场景控制器提供未开售、已开售、售罄及统一固定初态重置。 +- 排队 fixture 覆盖等待到成功、失败、超时三个确定性结果;失败/超时暴露 `page_queue_failed`,所有状态暴露 `text_queue_status`。 +- 独立页面覆盖网络错误、登录失效、风控、验证码和未知页;阻断场景使用带 `dialog_blocking` 与 `action_dismiss_dialog` 的真实 Compose 弹窗。 +- Debug 构建允许从测试 Intent 注入已知枚举;Release 构建策略拒绝全部场景注入,未知值在所有构建中均拒绝。 +- 全部 fixture 使用本地内存状态,不连接网络;每个场景均可经 `action_reset_scenario` 回到首页固定初态。 + +## 验证结果 + +工作目录均为仓库根目录。 + +- `./gradlew :fake-ticket-app:testDebugUnitTest :fake-ticket-app:testReleaseUnitTest :fake-ticket-app:lintDebug :fake-ticket-app:lintRelease :fake-ticket-app:assembleDebug :fake-ticket-app:assembleRelease`:退出码 0;Debug/Release 各 93 条单元测试通过,两种构建的 Lint 与 APK assemble 通过。 +- `ANDROID_SERIAL=emulator-5554 ./gradlew :fake-ticket-app:connectedDebugAndroidTest`:退出码 0;Pixel 6 AVD、Android 14,12/12 条 instrumented test 通过,包含横竖屏恢复与阶段 04 三条 Compose fixture 测试。 +- `ANDROID_SERIAL=10AF5C1FCL001TZ ./gradlew :fake-ticket-app:connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.yanbo.faketicket.FakeTicketScenarioFixtureTest`:退出码 0;vivo V2453A、Android 16/API 36,3/3 条阶段 04 真机测试通过。 +- 显式安装 app/test APK 后执行 `adb ... shell am instrument ... FakeTicketScenarioFixtureTest#capturesSelectedStage04Evidence`:退出码 0,`OK (1 test)`;验证 Debug 手工场景注入并保留选定截图。 +- Release 负向验证由 `ScenarioBuildPolicyTest` 在 `testReleaseUnitTest` 中执行:`BuildConfig.DEBUG=false` 时 `CAPTCHA` 等已知值仍返回 `null`。 + +## 失败修复 + +- vivo 首次安装在熄屏锁定状态返回 `INSTALL_FAILED_ABORTED: User rejected permissions`;解锁设备并由用户允许 USB 安装后,相同 APK 安装成功,随后真机用例通过。未绕过 Android 安全确认。 +- 初版阻断场景只是普通页面,Compose 契约测试因 `dialog_blocking` 不存在失败;改为真实 `AlertDialog` 后关闭与重置用例通过。 +- 首次全量模拟器回归有两条历史横屏用例触发 `performMeasureAndLayout called during measure layout`;日志确认恢复竖屏时系统 rotation 已变化但 Compose 仍在布局,在测试恢复 helper 加入 UI 空闲等待后 discovery 7/7、全量 12/12 通过。 + +## 证据与限制 + +- 脱敏截图与哈希见 [阶段证据](../../images/test-results/stage-v2-04/evidence.md)。 +- 本阶段只验收 FakeTicketApp fixture,不包含 AndroidAgent 自动化链路,也没有执行真实大麦识别或动作。 +- 真机结果仅代表 vivo V2453A、Android 16/API 36、1260x2800;Android 10 至 15 的兼容性仍待后续矩阵阶段验证。 + +## 下一阶段门禁 + +阶段 04 已 `VERIFIED`。阶段 05 可标为唯一 `READY`,但本任务在此停止,不自动开始阶段 05。 diff --git a/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/FakeTicketDiscoveryFlowTest.kt b/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/FakeTicketDiscoveryFlowTest.kt index 6c4886a..8d1f445 100644 --- a/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/FakeTicketDiscoveryFlowTest.kt +++ b/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/FakeTicketDiscoveryFlowTest.kt @@ -174,5 +174,6 @@ class FakeTicketDiscoveryFlowTest { ShellTestDevice.run("settings put system accelerometer_rotation $originalAuto") ShellTestDevice.run("settings put system user_rotation $originalRotation") ShellTestDevice.waitForRotation(originalRotation.toInt()) + ShellTestDevice.waitForUiStable() } } diff --git a/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/FakeTicketScenarioFixtureTest.kt b/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/FakeTicketScenarioFixtureTest.kt new file mode 100644 index 0000000..3db4f1a --- /dev/null +++ b/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/FakeTicketScenarioFixtureTest.kt @@ -0,0 +1,110 @@ +package com.yanbo.faketicket + +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.junit4.createEmptyComposeRule +import androidx.compose.ui.test.onAllNodesWithTag +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.performClick +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.yanbo.faketicket.support.ShellTestDevice +import com.yanbo.faketicket.ui.components.FakeTicketTestTags +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class FakeTicketScenarioFixtureTest { + @get:Rule + val composeRule = createEmptyComposeRule() + + @Test + fun saleAndQueueFixturesTransitionAndResetDeterministically() { + launchScenario("WAIT_SALE", FakeTicketTestTags.PAGE_WAIT_SALE, "等待开售") + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_ADVANCE_SALE).performClick() + composeRule.onNodeWithTag(FakeTicketTestTags.PAGE_BUY_READY).assertIsDisplayed() + resetToHome() + + launchScenario("BUY_READY", FakeTicketTestTags.PAGE_BUY_READY, "可购买") + resetToHome() + + listOf( + Triple("QUEUE_SUCCESS", "排队成功", FakeTicketTestTags.PAGE_QUEUE), + Triple("QUEUE_FAILURE", "排队失败", FakeTicketTestTags.PAGE_QUEUE_FAILED), + Triple("QUEUE_TIMEOUT", "排队超时", FakeTicketTestTags.PAGE_QUEUE_FAILED), + ).forEach { (scenario, finalText, finalPageTag) -> + launchScenario(scenario, FakeTicketTestTags.PAGE_QUEUE, "排队中") + composeRule.onNodeWithTag(FakeTicketTestTags.TEXT_QUEUE_STATUS).assertIsDisplayed() + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_RESOLVE_QUEUE).performClick() + composeRule.onNodeWithTag(finalPageTag).assertIsDisplayed() + composeRule.onNodeWithText(finalText).assertIsDisplayed() + resetToHome() + } + } + + @Test + fun everyStopFixtureHasUniquePageAndControlledReset() { + listOf( + Triple("SOLD_OUT", FakeTicketTestTags.PAGE_SOLD_OUT, "已售罄"), + Triple("NETWORK_ERROR", FakeTicketTestTags.PAGE_NETWORK_ERROR, "网络异常"), + Triple("LOGIN_REQUIRED", FakeTicketTestTags.PAGE_LOGIN_REQUIRED, "登录已失效"), + Triple("RISK_CONTROL", FakeTicketTestTags.PAGE_RISK_CONTROL, "触发风控"), + Triple("CAPTCHA", FakeTicketTestTags.PAGE_CAPTCHA, "需要验证码"), + Triple("UNKNOWN_PAGE", FakeTicketTestTags.PAGE_UNKNOWN, "未知页面"), + ).forEach { (scenario, pageTag, text) -> + launchScenario(scenario, pageTag, text) + resetToHome() + } + + launchScenario("BLOCKING_DIALOG", FakeTicketTestTags.PAGE_BLOCKING_DIALOG, "阻断弹窗场景") + composeRule.onNodeWithTag(FakeTicketTestTags.DIALOG_BLOCKING).assertIsDisplayed() + composeRule.onNodeWithText("存在阻断弹窗").assertIsDisplayed() + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_DISMISS_DIALOG).performClick() + check( + composeRule.onAllNodesWithTag(FakeTicketTestTags.DIALOG_BLOCKING) + .fetchSemanticsNodes().isEmpty(), + ) { "Blocking dialog should be dismissed" } + resetToHome() + } + + @Test + fun capturesSelectedStage04Evidence() { + val screenshots = mutableListOf( + run { + launchScenario("QUEUE_TIMEOUT", FakeTicketTestTags.PAGE_QUEUE, "排队中") + ShellTestDevice.capturePrivatePng( + fileName = "01-queue-waiting.png", + privateDirectoryName = "stage-v2-04", + ) + }, + ) + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_RESOLVE_QUEUE).performClick() + composeRule.onNodeWithText("排队超时").assertIsDisplayed() + screenshots += ShellTestDevice.capturePrivatePng( + fileName = "02-queue-timeout.png", + privateDirectoryName = "stage-v2-04", + ) + resetToHome() + + launchScenario("CAPTCHA", FakeTicketTestTags.PAGE_CAPTCHA, "需要验证码") + screenshots += ShellTestDevice.capturePrivatePng( + fileName = "03-captcha-stop.png", + privateDirectoryName = "stage-v2-04", + ) + ShellTestDevice.exportEvidence( + privateScreenshots = screenshots, + directoryName = "stage-v2-04-selected", + ) + } + + private fun launchScenario(scenario: String, pageTag: String, text: String) { + ShellTestDevice.launchFakeTicket(scenario) + composeRule.onNodeWithTag(pageTag).assertIsDisplayed() + composeRule.onNodeWithText(text).assertIsDisplayed() + } + + private fun resetToHome() { + composeRule.onNodeWithTag(FakeTicketTestTags.ACTION_RESET_SCENARIO).performClick() + composeRule.onNodeWithTag(FakeTicketTestTags.PAGE_HOME).assertIsDisplayed() + } +} diff --git a/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/support/ShellTestDevice.kt b/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/support/ShellTestDevice.kt index 6bd2c39..1d94499 100644 --- a/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/support/ShellTestDevice.kt +++ b/fake-ticket-app/src/androidTest/java/com/yanbo/faketicket/support/ShellTestDevice.kt @@ -16,12 +16,13 @@ object ShellTestDevice { } } - fun launchFakeTicket() { + fun launchFakeTicket(scenario: String? = null) { + val scenarioArgument = scenario?.let { " --es scenario $it" }.orEmpty() val output = run( "am start -W -a android.intent.action.MAIN " + "-c android.intent.category.LAUNCHER -f 0x10008000 " + "--windowingMode 1 " + - "-n com.yanbo.faketicket/.MainActivity", + "-n com.yanbo.faketicket/.MainActivity" + scenarioArgument, ) check("Status: ok" in output) { "FakeTicket launch failed: $output" } waitForFakeTicketForeground() diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/MainActivity.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/MainActivity.kt index f86ae4f..e333d0b 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/MainActivity.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/MainActivity.kt @@ -8,7 +8,7 @@ import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.Scaffold -import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue @@ -20,6 +20,8 @@ import androidx.compose.ui.semantics.testTagsAsResourceId import androidx.lifecycle.viewmodel.compose.viewModel import com.yanbo.faketicket.navigation.FakeTicketNavHost import com.yanbo.faketicket.scenario.FakeTicketScenario +import com.yanbo.faketicket.scenario.ScenarioBuildPolicy +import com.yanbo.faketicket.scenario.ScenarioInjectionPolicy import com.yanbo.faketicket.ui.FakeTicketViewModel import com.yanbo.faketicket.ui.components.FakeTicketTestTags @@ -36,11 +38,12 @@ class MainActivity : ComponentActivity() { setContent { val viewModel: FakeTicketViewModel = viewModel() - val scenarioState by viewModel.scenarioState.collectAsState() - pendingScenario?.let { scenario -> - viewModel.setScenario(scenario) - pendingScenario = null + LaunchedEffect(pendingScenario) { + pendingScenario?.let { scenario -> + viewModel.setScenario(scenario) + pendingScenario = null + } } Scaffold( @@ -62,9 +65,6 @@ class MainActivity : ComponentActivity() { private fun handleIntent(intent: Intent?) { intent ?: return val scenarioName = intent.getStringExtra("scenario") ?: return - try { - pendingScenario = FakeTicketScenario.valueOf(scenarioName.uppercase()) - } catch (_: IllegalArgumentException) { - } + pendingScenario = ScenarioInjectionPolicy(ScenarioBuildPolicy.allowInjection).parse(scenarioName) } -} \ No newline at end of file +} diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/data/InventoryStore.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/data/InventoryStore.kt index 2531491..5b230a9 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/data/InventoryStore.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/data/InventoryStore.kt @@ -5,10 +5,9 @@ import kotlinx.coroutines.sync.withLock class InventoryStore { private val mutex = Mutex() - private val inventory = mutableMapOf( - "tier-580" to 2, - "tier-880" to 2 - ) + private val initialInventory = listOf(580, 780, 980, 1280, 1680, 1980, 2380) + .associate { price -> "tier-$price" to 2 } + private val inventory = initialInventory.toMutableMap() suspend fun getStock(tierId: String): Int = mutex.withLock { inventory[tierId] ?: 0 @@ -29,8 +28,12 @@ class InventoryStore { } suspend fun reset() = mutex.withLock { - inventory["tier-580"] = 2 - inventory["tier-880"] = 2 + inventory.clear() + inventory.putAll(initialInventory) + } + + suspend fun clear() = mutex.withLock { + inventory.keys.forEach { tierId -> inventory[tierId] = 0 } } fun getAll(): Map = inventory.toMap() diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketNavHost.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketNavHost.kt index 6b4c943..1944a39 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketNavHost.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketNavHost.kt @@ -13,13 +13,16 @@ import androidx.navigation.compose.rememberNavController import androidx.navigation.navArgument import androidx.lifecycle.viewmodel.compose.viewModel as composeViewModel import com.yanbo.faketicket.scenario.FakeTicketScenario +import com.yanbo.faketicket.scenario.ScenarioState import com.yanbo.faketicket.ui.FakeTicketViewModel +import com.yanbo.faketicket.ui.components.FakeTicketTestTags import com.yanbo.faketicket.ui.discovery.HomeDiscoveryScreen import com.yanbo.faketicket.ui.discovery.PerformanceDetailDiscoveryScreen import com.yanbo.faketicket.ui.discovery.ReservationSelectDiscoveryScreen import com.yanbo.faketicket.ui.discovery.SearchResultsDiscoveryScreen import com.yanbo.faketicket.ui.reservation.ReservationFlowViewModel import com.yanbo.faketicket.ui.screens.BuyReadyScreen +import com.yanbo.faketicket.ui.screens.BlockingDialogFixtureScreen import com.yanbo.faketicket.ui.screens.LoginRequiredScreen import com.yanbo.faketicket.ui.screens.NetworkErrorScreen import com.yanbo.faketicket.ui.screens.OrderConfirmScreen @@ -28,6 +31,8 @@ import com.yanbo.faketicket.ui.screens.SoldOutScreen import com.yanbo.faketicket.ui.screens.SuccessScreen import com.yanbo.faketicket.ui.screens.TicketSelectScreen import com.yanbo.faketicket.ui.screens.WaitSaleScreen +import com.yanbo.faketicket.ui.screens.QueueFixtureScreen +import com.yanbo.faketicket.ui.screens.StopFixtureScreen @Composable fun FakeTicketNavHost( @@ -37,13 +42,27 @@ fun FakeTicketNavHost( ) { val reservationViewModel: ReservationFlowViewModel = composeViewModel() val reservationState by reservationViewModel.uiState.collectAsState() - val currentRoute = viewModel?.let { vm -> + val scenarioState = viewModel?.let { vm -> val state by vm.scenarioState.collectAsState() - state.scenario - } ?: FakeTicketScenario.NORMAL + state + } ?: ScenarioState() + val currentScenario = scenarioState.scenario + val resetScenarioAndReturnHome = { + viewModel?.resetScenario() + navController.navigate(FakeTicketRoute.HOME) { + popUpTo(FakeTicketRoute.HOME) { inclusive = true } + launchSingleTop = true + } + } - LaunchedEffect(currentRoute) { - when (currentRoute) { + LaunchedEffect(currentScenario) { + when (currentScenario) { + FakeTicketScenario.WAIT_SALE -> navController.navigate(FakeTicketRoute.WAIT_SALE) + FakeTicketScenario.BUY_READY -> navController.navigate(FakeTicketRoute.BUY_READY) + FakeTicketScenario.QUEUE_SUCCESS, + FakeTicketScenario.QUEUE_FAILURE, + FakeTicketScenario.QUEUE_TIMEOUT, + -> navController.navigate(FakeTicketRoute.QUEUE) FakeTicketScenario.SOLD_OUT -> { navController.navigate(FakeTicketRoute.SOLD_OUT) { popUpTo(FakeTicketRoute.HOME) { inclusive = true } @@ -59,12 +78,13 @@ fun FakeTicketNavHost( popUpTo(FakeTicketRoute.HOME) { inclusive = true } } } + FakeTicketScenario.BLOCKING_DIALOG -> navController.navigate(FakeTicketRoute.BLOCKING_DIALOG) + FakeTicketScenario.RISK_CONTROL -> navController.navigate(FakeTicketRoute.RISK_CONTROL) + FakeTicketScenario.CAPTCHA -> navController.navigate(FakeTicketRoute.CAPTCHA) FakeTicketScenario.UNKNOWN_PAGE -> { - navController.navigate(FakeTicketRoute.SOLD_OUT) { - popUpTo(FakeTicketRoute.HOME) { inclusive = true } - } + navController.navigate(FakeTicketRoute.UNKNOWN) } - FakeTicketScenario.NORMAL -> {} + FakeTicketScenario.NORMAL -> Unit } } @@ -113,14 +133,14 @@ fun FakeTicketNavHost( } composable(FakeTicketRoute.WAIT_SALE) { WaitSaleScreen( - onBuyReady = { navController.navigate(FakeTicketRoute.BUY_READY) }, - onBack = { navController.popBackStack() } + onAdvanceSale = { viewModel?.advanceSaleFixture() }, + onReset = resetScenarioAndReturnHome, ) } composable(FakeTicketRoute.BUY_READY) { BuyReadyScreen( onBuy = { navController.navigate(FakeTicketRoute.TICKET_SELECT) }, - onBack = { navController.popBackStack() } + onReset = resetScenarioAndReturnHome, ) } composable(FakeTicketRoute.TICKET_SELECT) { @@ -150,13 +170,52 @@ fun FakeTicketNavHost( ) } composable(FakeTicketRoute.SOLD_OUT) { - SoldOutScreen() + SoldOutScreen(onReset = resetScenarioAndReturnHome) } composable(FakeTicketRoute.NETWORK_ERROR) { - NetworkErrorScreen() + NetworkErrorScreen(onReset = resetScenarioAndReturnHome) } composable(FakeTicketRoute.LOGIN_REQUIRED) { - LoginRequiredScreen() + LoginRequiredScreen(onReset = resetScenarioAndReturnHome) + } + composable(FakeTicketRoute.QUEUE) { + QueueFixtureScreen( + queueState = scenarioState.queueState, + onResolve = { viewModel?.resolveQueueFixture() }, + onReset = resetScenarioAndReturnHome, + ) + } + composable(FakeTicketRoute.BLOCKING_DIALOG) { + BlockingDialogFixtureScreen( + dialogVisible = scenarioState.dialogVisible, + message = scenarioState.dialogMessage.orEmpty(), + onDismiss = { viewModel?.dismissBlockingDialogFixture() }, + onReset = resetScenarioAndReturnHome, + ) + } + composable(FakeTicketRoute.RISK_CONTROL) { + StopFixtureScreen( + pageTag = FakeTicketTestTags.PAGE_RISK_CONTROL, + title = "触发风控", + detail = "停止所有自动操作", + onReset = resetScenarioAndReturnHome, + ) + } + composable(FakeTicketRoute.CAPTCHA) { + StopFixtureScreen( + pageTag = FakeTicketTestTags.PAGE_CAPTCHA, + title = "需要验证码", + detail = "验证码只能由用户本人处理", + onReset = resetScenarioAndReturnHome, + ) + } + composable(FakeTicketRoute.UNKNOWN) { + StopFixtureScreen( + pageTag = FakeTicketTestTags.PAGE_UNKNOWN, + title = "未知页面", + detail = "无法确定页面状态,停止操作", + onReset = resetScenarioAndReturnHome, + ) } } } diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketPage.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketPage.kt index 22c6b26..5539eea 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketPage.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketPage.kt @@ -13,5 +13,10 @@ enum class FakeTicketPage(val route: String, val tag: String) { SUCCESS("success", "page_success"), SOLD_OUT("sold_out", "page_sold_out"), NETWORK_ERROR("network_error", "page_network_error"), - LOGIN_REQUIRED("login_required", "page_login_required"); + LOGIN_REQUIRED("login_required", "page_login_required"), + QUEUE("queue", "page_queue"), + BLOCKING_DIALOG("blocking_dialog", "page_blocking_dialog"), + RISK_CONTROL("risk_control", "page_risk_control"), + CAPTCHA("captcha", "page_captcha"), + UNKNOWN("unknown", "page_unknown"); } diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketRoute.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketRoute.kt index 01e6886..97735c0 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketRoute.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/navigation/FakeTicketRoute.kt @@ -16,6 +16,11 @@ object FakeTicketRoute { const val SOLD_OUT = "sold_out" const val NETWORK_ERROR = "network_error" const val LOGIN_REQUIRED = "login_required" + const val QUEUE = "queue" + const val BLOCKING_DIALOG = "blocking_dialog" + const val RISK_CONTROL = "risk_control" + const val CAPTCHA = "captcha" + const val UNKNOWN = "unknown" const val SEARCH_QUERY = "query" const val SEARCH_RESULTS_PATTERN = "$SEARCH_RESULTS?$SEARCH_QUERY={$SEARCH_QUERY}" diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/scenario/FakeTicketScenario.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/scenario/FakeTicketScenario.kt index ef23b3f..637f23a 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/scenario/FakeTicketScenario.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/scenario/FakeTicketScenario.kt @@ -1,14 +1,55 @@ package com.yanbo.faketicket.scenario +import com.yanbo.faketicket.BuildConfig + enum class FakeTicketScenario { NORMAL, + WAIT_SALE, + BUY_READY, + QUEUE_SUCCESS, + QUEUE_FAILURE, + QUEUE_TIMEOUT, SOLD_OUT, NETWORK_ERROR, + BLOCKING_DIALOG, LOGIN_REQUIRED, + RISK_CONTROL, + CAPTCHA, UNKNOWN_PAGE } +enum class QueueState { + IDLE, + WAITING, + SUCCESS, + FAILURE, + TIMEOUT, +} + +enum class QueueFixtureResult(val finalState: QueueState) { + SUCCESS(QueueState.SUCCESS), + FAILURE(QueueState.FAILURE), + TIMEOUT(QueueState.TIMEOUT), +} + data class ScenarioState( val scenario: FakeTicketScenario = FakeTicketScenario.NORMAL, - val dialogVisible: Boolean = false + val dialogVisible: Boolean = false, + val dialogMessage: String? = null, + val queueState: QueueState = QueueState.IDLE, + val pendingQueueResult: QueueFixtureResult? = null, ) + +class ScenarioInjectionPolicy(private val allowInjection: Boolean) { + fun parse(rawScenario: String?): FakeTicketScenario? { + if (!allowInjection || rawScenario == null) return null + return FakeTicketScenario.entries.singleOrNull { + it.name.equals(rawScenario.trim(), ignoreCase = true) + } + } +} + +object ScenarioBuildPolicy { + val allowInjection: Boolean + get() = BuildConfig.DEBUG +} diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/scenario/ScenarioController.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/scenario/ScenarioController.kt index 419f459..4169a45 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/scenario/ScenarioController.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/scenario/ScenarioController.kt @@ -19,25 +19,77 @@ class ScenarioController( val scenarioState: StateFlow = _scenarioState.asStateFlow() fun setScenario(scenario: FakeTicketScenario) { + when (scenario) { + FakeTicketScenario.WAIT_SALE -> saleClock.reset() + FakeTicketScenario.BUY_READY -> advanceClockToSaleTime() + FakeTicketScenario.SOLD_OUT -> kotlinx.coroutines.runBlocking { inventoryStore.clear() } + FakeTicketScenario.QUEUE_SUCCESS -> { + startQueue(QueueFixtureResult.SUCCESS) + return + } + FakeTicketScenario.QUEUE_FAILURE -> { + startQueue(QueueFixtureResult.FAILURE) + return + } + FakeTicketScenario.QUEUE_TIMEOUT -> { + startQueue(QueueFixtureResult.TIMEOUT) + return + } + else -> Unit + } _scenarioState.update { - it.copy(scenario = scenario, dialogVisible = false) + it.copy( + scenario = scenario, + dialogVisible = scenario == FakeTicketScenario.BLOCKING_DIALOG, + dialogMessage = if (scenario == FakeTicketScenario.BLOCKING_DIALOG) { + "存在阻断弹窗" + } else { + null + }, + queueState = QueueState.IDLE, + pendingQueueResult = null, + ) } } fun showDialog(message: String = "加载中...") { _scenarioState.update { - it.copy(dialogVisible = true) + it.copy(dialogVisible = true, dialogMessage = message) } } fun dismissDialog() { _scenarioState.update { - it.copy(dialogVisible = false) + it.copy(dialogVisible = false, dialogMessage = null) + } + } + + fun startQueue(result: QueueFixtureResult) { + _scenarioState.update { + it.copy( + scenario = when (result) { + QueueFixtureResult.SUCCESS -> FakeTicketScenario.QUEUE_SUCCESS + QueueFixtureResult.FAILURE -> FakeTicketScenario.QUEUE_FAILURE + QueueFixtureResult.TIMEOUT -> FakeTicketScenario.QUEUE_TIMEOUT + }, + queueState = QueueState.WAITING, + pendingQueueResult = result, + dialogVisible = false, + dialogMessage = null, + ) + } + } + + fun resolveQueue() { + _scenarioState.update { state -> + state.pendingQueueResult?.let { result -> + state.copy(queueState = result.finalState) + } ?: state } } fun getCurrentSaleState(): SaleState { - val hasInventory = true + val hasInventory = inventoryStore.getAll().values.any { it > 0 } return saleStateResolver.resolve(saleClock.currentTimeMillis, hasInventory) } diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/FakeTicketViewModel.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/FakeTicketViewModel.kt index 0917bf2..84fe37b 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/FakeTicketViewModel.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/FakeTicketViewModel.kt @@ -212,4 +212,17 @@ class FakeTicketViewModel( fun resetScenario() { scenarioController.reset() } + + fun advanceSaleFixture() { + scenarioController.advanceClockToSaleTime() + scenarioController.setScenario(FakeTicketScenario.BUY_READY) + } + + fun resolveQueueFixture() { + scenarioController.resolveQueue() + } + + fun dismissBlockingDialogFixture() { + scenarioController.dismissDialog() + } } diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/components/FakeTicketTestTags.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/components/FakeTicketTestTags.kt index 9c77c04..3e1c85e 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/components/FakeTicketTestTags.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/components/FakeTicketTestTags.kt @@ -40,6 +40,12 @@ object FakeTicketTestTags { const val PAGE_SOLD_OUT = "page_sold_out" const val PAGE_NETWORK_ERROR = "page_network_error" const val PAGE_LOGIN_REQUIRED = "page_login_required" + const val PAGE_QUEUE = "page_queue" + const val PAGE_QUEUE_FAILED = "page_queue_failed" + const val PAGE_BLOCKING_DIALOG = "page_blocking_dialog" + const val PAGE_RISK_CONTROL = "page_risk_control" + const val PAGE_CAPTCHA = "page_captcha" + const val PAGE_UNKNOWN = "page_unknown" const val ACTION_OPEN_SEARCH = "action_open_search" const val INPUT_SEARCH = "input_search" @@ -67,6 +73,9 @@ object FakeTicketTestTags { const val ACTION_DISMISS_DIALOG = "action_dismiss_dialog" const val SCENARIO_CONTROL = "scenario_control" const val ACTION_RESET_SCENARIO = "action_reset_scenario" + const val ACTION_ADVANCE_SALE = "action_advance_sale" + const val ACTION_RESOLVE_QUEUE = "action_resolve_queue" + const val TEXT_QUEUE_STATUS = "text_queue_status" const val ACTION_BACK = "action_back" fun session(sessionId: String): String = sessionId.replace('-', '_') diff --git a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/screens/Screens.kt b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/screens/Screens.kt index 07e81ba..4de5ac5 100644 --- a/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/screens/Screens.kt +++ b/fake-ticket-app/src/main/java/com/yanbo/faketicket/ui/screens/Screens.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.Button +import androidx.compose.material3.AlertDialog import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -13,9 +14,10 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.unit.dp import com.yanbo.faketicket.ui.components.FakeTicketTestTags import com.yanbo.faketicket.domain.reservation.ReservationOrderDraft +import com.yanbo.faketicket.scenario.QueueState @Composable -fun WaitSaleScreen(onBuyReady: () -> Unit, onBack: () -> Unit) { +fun WaitSaleScreen(onAdvanceSale: () -> Unit, onReset: () -> Unit) { Column( modifier = Modifier .fillMaxSize() @@ -26,19 +28,17 @@ fun WaitSaleScreen(onBuyReady: () -> Unit, onBack: () -> Unit) { ) { Text("等待开售") Button( - onClick = onBuyReady, - modifier = Modifier.testTag(FakeTicketTestTags.ACTION_BUY) + onClick = onAdvanceSale, + modifier = Modifier.testTag(FakeTicketTestTags.ACTION_ADVANCE_SALE) ) { - Text("已开售") - } - Button(onClick = onBack) { - Text("返回") + Text("推进到开售时间") } + ResetScenarioButton(onReset) } } @Composable -fun BuyReadyScreen(onBuy: () -> Unit, onBack: () -> Unit) { +fun BuyReadyScreen(onBuy: () -> Unit, onReset: () -> Unit) { Column( modifier = Modifier .fillMaxSize() @@ -54,9 +54,7 @@ fun BuyReadyScreen(onBuy: () -> Unit, onBack: () -> Unit) { ) { Text("立即购买") } - Button(onClick = onBack) { - Text("返回") - } + ResetScenarioButton(onReset) } } @@ -172,55 +170,147 @@ fun SuccessScreen(onBackHome: () -> Unit) { } @Composable -fun SoldOutScreen() { +fun SoldOutScreen(onReset: () -> Unit) { + StopFixtureScreen( + pageTag = FakeTicketTestTags.PAGE_SOLD_OUT, + title = "已售罄", + detail = "当前票档库存为 0", + onReset = onReset, + ) +} + +@Composable +fun NetworkErrorScreen(onReset: () -> Unit) { Column( modifier = Modifier .fillMaxSize() .padding(16.dp) - .testTag(FakeTicketTestTags.PAGE_SOLD_OUT), + .testTag(FakeTicketTestTags.PAGE_NETWORK_ERROR), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { - Text("已售罄") + Text("网络异常") + Text("使用确定性本地 fixture,不连接网络") + ResetScenarioButton(onReset) } } @Composable -fun NetworkErrorScreen() { +fun LoginRequiredScreen(onReset: () -> Unit) { Column( modifier = Modifier .fillMaxSize() .padding(16.dp) - .testTag(FakeTicketTestTags.PAGE_NETWORK_ERROR), + .testTag(FakeTicketTestTags.PAGE_LOGIN_REQUIRED), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { - Text("网络异常") - Button( - onClick = { }, - modifier = Modifier.testTag(FakeTicketTestTags.ACTION_RETRY_NETWORK) - ) { - Text("重试") - } + Text("登录已失效") + Text("停止操作,由用户本人重新登录") + ResetScenarioButton(onReset) } } @Composable -fun LoginRequiredScreen() { +fun QueueFixtureScreen( + queueState: QueueState, + onResolve: () -> Unit, + onReset: () -> Unit, +) { Column( modifier = Modifier .fillMaxSize() .padding(16.dp) - .testTag(FakeTicketTestTags.PAGE_LOGIN_REQUIRED), + .testTag( + if (queueState == QueueState.FAILURE || queueState == QueueState.TIMEOUT) { + FakeTicketTestTags.PAGE_QUEUE_FAILED + } else { + FakeTicketTestTags.PAGE_QUEUE + }, + ), verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally + horizontalAlignment = Alignment.CenterHorizontally, ) { - Text("需要登录") - Button( - onClick = { }, - modifier = Modifier.testTag(FakeTicketTestTags.ACTION_RELOGIN) - ) { - Text("重新登录") + Text( + when (queueState) { + QueueState.IDLE -> "尚未排队" + QueueState.WAITING -> "排队中" + QueueState.SUCCESS -> "排队成功" + QueueState.FAILURE -> "排队失败" + QueueState.TIMEOUT -> "排队超时" + }, + modifier = Modifier.testTag(FakeTicketTestTags.TEXT_QUEUE_STATUS), + ) + if (queueState == QueueState.WAITING) { + Button( + onClick = onResolve, + modifier = Modifier.testTag(FakeTicketTestTags.ACTION_RESOLVE_QUEUE), + ) { + Text("推进确定结果") + } } + ResetScenarioButton(onReset) + } +} + +@Composable +fun BlockingDialogFixtureScreen( + dialogVisible: Boolean, + message: String, + onDismiss: () -> Unit, + onReset: () -> Unit, +) { + StopFixtureScreen( + pageTag = FakeTicketTestTags.PAGE_BLOCKING_DIALOG, + title = "阻断弹窗场景", + detail = "弹窗关闭后仍保持当前 fixture", + onReset = onReset, + ) + if (dialogVisible) { + AlertDialog( + modifier = Modifier.testTag(FakeTicketTestTags.DIALOG_BLOCKING), + onDismissRequest = { }, + title = { Text(message) }, + text = { Text("停止操作,等待用户处理") }, + confirmButton = { + Button( + onClick = onDismiss, + modifier = Modifier.testTag(FakeTicketTestTags.ACTION_DISMISS_DIALOG), + ) { + Text("关闭") + } + }, + ) + } +} + +@Composable +fun StopFixtureScreen( + pageTag: String, + title: String, + detail: String, + onReset: () -> Unit, +) { + Column( + modifier = Modifier + .fillMaxSize() + .padding(16.dp) + .testTag(pageTag), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Text(title) + Text(detail) + ResetScenarioButton(onReset) + } +} + +@Composable +private fun ResetScenarioButton(onReset: () -> Unit) { + Button( + onClick = onReset, + modifier = Modifier.testTag(FakeTicketTestTags.ACTION_RESET_SCENARIO), + ) { + Text("重置场景") } } diff --git a/fake-ticket-app/src/test/java/com/yanbo/faketicket/FakeTicketPageContractTest.kt b/fake-ticket-app/src/test/java/com/yanbo/faketicket/FakeTicketPageContractTest.kt index 212b926..51b681a 100644 --- a/fake-ticket-app/src/test/java/com/yanbo/faketicket/FakeTicketPageContractTest.kt +++ b/fake-ticket-app/src/test/java/com/yanbo/faketicket/FakeTicketPageContractTest.kt @@ -8,8 +8,8 @@ import org.junit.Test class FakeTicketPageContractTest { @Test - fun `FakeTicketPage has exactly 13 values`() { - assertEquals(13, FakeTicketPage.entries.size) + fun `FakeTicketPage has exactly 18 values`() { + assertEquals(18, FakeTicketPage.entries.size) } @Test @@ -102,6 +102,20 @@ class FakeTicketPageContractTest { assertEquals("page_login_required", FakeTicketPage.LOGIN_REQUIRED.tag) } + @Test + fun `stage 04 fixture pages have stable routes and tags`() { + assertEquals("queue", FakeTicketPage.QUEUE.route) + assertEquals("page_queue", FakeTicketPage.QUEUE.tag) + assertEquals("blocking_dialog", FakeTicketPage.BLOCKING_DIALOG.route) + assertEquals("page_blocking_dialog", FakeTicketPage.BLOCKING_DIALOG.tag) + assertEquals("risk_control", FakeTicketPage.RISK_CONTROL.route) + assertEquals("page_risk_control", FakeTicketPage.RISK_CONTROL.tag) + assertEquals("captcha", FakeTicketPage.CAPTCHA.route) + assertEquals("page_captcha", FakeTicketPage.CAPTCHA.tag) + assertEquals("unknown", FakeTicketPage.UNKNOWN.route) + assertEquals("page_unknown", FakeTicketPage.UNKNOWN.tag) + } + @Test fun `FakeTicketRoute constants match page routes`() { assertEquals(FakeTicketPage.HOME.route, FakeTicketRoute.HOME) @@ -117,6 +131,11 @@ class FakeTicketPageContractTest { assertEquals(FakeTicketPage.SOLD_OUT.route, FakeTicketRoute.SOLD_OUT) assertEquals(FakeTicketPage.NETWORK_ERROR.route, FakeTicketRoute.NETWORK_ERROR) assertEquals(FakeTicketPage.LOGIN_REQUIRED.route, FakeTicketRoute.LOGIN_REQUIRED) + assertEquals(FakeTicketPage.QUEUE.route, FakeTicketRoute.QUEUE) + assertEquals(FakeTicketPage.BLOCKING_DIALOG.route, FakeTicketRoute.BLOCKING_DIALOG) + assertEquals(FakeTicketPage.RISK_CONTROL.route, FakeTicketRoute.RISK_CONTROL) + assertEquals(FakeTicketPage.CAPTCHA.route, FakeTicketRoute.CAPTCHA) + assertEquals(FakeTicketPage.UNKNOWN.route, FakeTicketRoute.UNKNOWN) } @Test diff --git a/fake-ticket-app/src/test/java/com/yanbo/faketicket/data/InventoryStoreTest.kt b/fake-ticket-app/src/test/java/com/yanbo/faketicket/data/InventoryStoreTest.kt index 99faed2..0f35f39 100644 --- a/fake-ticket-app/src/test/java/com/yanbo/faketicket/data/InventoryStoreTest.kt +++ b/fake-ticket-app/src/test/java/com/yanbo/faketicket/data/InventoryStoreTest.kt @@ -10,10 +10,13 @@ import org.junit.Test class InventoryStoreTest { @Test - fun `initial stock is 2 for both tiers`() = runBlocking { + fun `initial stock covers all seven reservation tiers`() = runBlocking { val store = InventoryStore() - assertEquals(2, store.getStock("tier-580")) - assertEquals(2, store.getStock("tier-880")) + assertEquals( + setOf("tier-580", "tier-780", "tier-980", "tier-1280", "tier-1680", "tier-1980", "tier-2380"), + store.getAll().keys, + ) + assertTrue(store.getAll().values.all { it == 2 }) } @Test @@ -47,7 +50,7 @@ class InventoryStoreTest { store.tryDeduct("tier-580", 2) store.reset() assertEquals(2, store.getStock("tier-580")) - assertEquals(2, store.getStock("tier-880")) + assertTrue(store.getAll().values.all { it == 2 }) } @Test diff --git a/fake-ticket-app/src/test/java/com/yanbo/faketicket/scenario/QueueScenarioControllerTest.kt b/fake-ticket-app/src/test/java/com/yanbo/faketicket/scenario/QueueScenarioControllerTest.kt new file mode 100644 index 0000000..c9a625b --- /dev/null +++ b/fake-ticket-app/src/test/java/com/yanbo/faketicket/scenario/QueueScenarioControllerTest.kt @@ -0,0 +1,70 @@ +package com.yanbo.faketicket.scenario + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Test + +class QueueScenarioControllerTest { + @Test + fun `queue result transitions deterministically through waiting`() { + QueueFixtureResult.entries.forEach { result -> + val controller = ScenarioController() + + controller.startQueue(result) + assertEquals(QueueState.WAITING, controller.scenarioState.value.queueState) + assertEquals(result, controller.scenarioState.value.pendingQueueResult) + + controller.resolveQueue() + assertEquals(result.finalState, controller.scenarioState.value.queueState) + } + } + + @Test + fun `all stop fixtures can be selected without network time or randomness`() { + val fixtures = listOf( + FakeTicketScenario.SOLD_OUT, + FakeTicketScenario.NETWORK_ERROR, + FakeTicketScenario.BLOCKING_DIALOG, + FakeTicketScenario.LOGIN_REQUIRED, + FakeTicketScenario.RISK_CONTROL, + FakeTicketScenario.CAPTCHA, + FakeTicketScenario.UNKNOWN_PAGE, + ) + + fixtures.forEach { fixture -> + val controller = ScenarioController() + controller.setScenario(fixture) + assertEquals(fixture, controller.scenarioState.value.scenario) + } + } + + @Test + fun `reset clears queue dialog sale clock and inventory`() { + val controller = ScenarioController() + controller.advanceClockToSaleTime() + controller.startQueue(QueueFixtureResult.TIMEOUT) + controller.showDialog("fixture") + controller.resolveQueue() + controller.reset() + + val state = controller.scenarioState.value + assertEquals(FakeTicketScenario.NORMAL, state.scenario) + assertEquals(QueueState.IDLE, state.queueState) + assertEquals(null, state.pendingQueueResult) + assertFalse(state.dialogVisible) + assertEquals(com.yanbo.faketicket.domain.sale.SaleState.WAIT_SALE, controller.getCurrentSaleState()) + assertEquals(2, kotlinx.coroutines.runBlocking { controller.getInventoryStore().getStock("tier-580") }) + } + + @Test + fun `sold out fixture clears every tier and reset restores inventory`() = kotlinx.coroutines.runBlocking { + val controller = ScenarioController() + + controller.setScenario(FakeTicketScenario.SOLD_OUT) + assertEquals(com.yanbo.faketicket.domain.sale.SaleState.SOLD_OUT, controller.getCurrentSaleState()) + assertEquals(setOf(0), controller.getInventoryStore().getAll().values.toSet()) + + controller.reset() + assertEquals(setOf(2), controller.getInventoryStore().getAll().values.toSet()) + } +} diff --git a/fake-ticket-app/src/test/java/com/yanbo/faketicket/scenario/ScenarioBuildPolicyTest.kt b/fake-ticket-app/src/test/java/com/yanbo/faketicket/scenario/ScenarioBuildPolicyTest.kt new file mode 100644 index 0000000..d67d96c --- /dev/null +++ b/fake-ticket-app/src/test/java/com/yanbo/faketicket/scenario/ScenarioBuildPolicyTest.kt @@ -0,0 +1,19 @@ +package com.yanbo.faketicket.scenario + +import com.yanbo.faketicket.BuildConfig +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNull +import org.junit.Test + +class ScenarioBuildPolicyTest { + @Test + fun `scenario injection availability follows build type`() { + assertEquals(BuildConfig.DEBUG, ScenarioBuildPolicy.allowInjection) + val parsed = ScenarioInjectionPolicy(ScenarioBuildPolicy.allowInjection).parse("CAPTCHA") + if (BuildConfig.DEBUG) { + assertEquals(FakeTicketScenario.CAPTCHA, parsed) + } else { + assertNull(parsed) + } + } +} diff --git a/fake-ticket-app/src/test/java/com/yanbo/faketicket/scenario/ScenarioInjectionPolicyTest.kt b/fake-ticket-app/src/test/java/com/yanbo/faketicket/scenario/ScenarioInjectionPolicyTest.kt new file mode 100644 index 0000000..12a4d17 --- /dev/null +++ b/fake-ticket-app/src/test/java/com/yanbo/faketicket/scenario/ScenarioInjectionPolicyTest.kt @@ -0,0 +1,29 @@ +package com.yanbo.faketicket.scenario + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNull +import org.junit.Test + +class ScenarioInjectionPolicyTest { + @Test + fun `debug accepts known scenario case insensitively`() { + val policy = ScenarioInjectionPolicy(allowInjection = true) + + assertEquals(FakeTicketScenario.CAPTCHA, policy.parse("captcha")) + assertEquals(FakeTicketScenario.QUEUE_SUCCESS, policy.parse("QUEUE_SUCCESS")) + } + + @Test + fun `unknown scenario is rejected`() { + assertNull(ScenarioInjectionPolicy(allowInjection = true).parse("not-a-fixture")) + } + + @Test + fun `release rejects every scenario including known values`() { + val policy = ScenarioInjectionPolicy(allowInjection = false) + + FakeTicketScenario.entries.forEach { scenario -> + assertNull(policy.parse(scenario.name)) + } + } +}