<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
  <testsuite name="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/phpunit.dist.xml" tests="198" assertions="1097" errors="0" failures="0" skipped="0" time="10.901702">
    <testsuite name="App" tests="198" assertions="1097" errors="0" failures="0" skipped="0" time="10.901702">
      <testsuite name="ChatApiPortTest" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" tests="16" assertions="48" errors="0" failures="0" skipped="0" time="0.110885">
        <testcase name="testRoutesAndCrmPageAreRegistered" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="107" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="9" time="0.056763"/>
        <testcase name="testUnauthenticatedRequestsReturnJson401" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="116" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="2" time="0.010406"/>
        <testcase name="testGetCannotSendAndPostRequiresCsrf" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="122" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="3" time="0.005257"/>
        <testcase name="testOriginMustMatchExactly" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="128" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="2" time="0.002228"/>
        <testcase name="testMissingDeviceReturnsEmptyContactsWithoutQueryingMessages" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="134" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="2" time="0.004303"/>
        <testcase name="testMessageQueriesRequireStoreAndDevice" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="141" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="5" time="0.005059"/>
        <testcase name="testForeignCustomerDoesNotFallBackToPostedPhone" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="150" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="2" time="0.002252"/>
        <testcase name="testContactsPreloadOnlyCurrentStoreAndKeepMessageDelimiters" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="155" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="4" time="0.004022"/>
        <testcase name="testWhatsappContactContractRemainsAvailable" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="165" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="2" time="0.002324"/>
        <testcase name="testCrmContactsIncludeCustomerWithoutMessagesAndSearchTags" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="172" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="1" time="0.002378"/>
        <testcase name="testMarkReadRequiresCsrfAndScopesInboundRows" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="178" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="3" time="0.002632"/>
        <testcase name="testSendUsesStoreConfigAndNormalizedPhoneWithMockSender" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="185" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="5" time="0.001330"/>
        <testcase name="testProviderErrorStringIsNotMistakenForSuccess" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="193" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="1" time="0.001210"/>
        <testcase name="testGroupSendIsRejectedWithoutDispatch" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="198" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="1" time="0.000968"/>
        <testcase name="testDatabaseErrorsReturnGenericJson" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="203" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="2" time="0.004019"/>
        <testcase name="testCrmPageRendersBothConfiguredAndMissingDevice" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ChatApiPortTest.php" line="209" class="ChatApiPortTest" classname="ChatApiPortTest" assertions="4" time="0.005733"/>
      </testsuite>
      <testsuite name="CronPortTest" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" tests="21" assertions="80" errors="0" failures="0" skipped="0" time="0.066033">
        <testcase name="testAllFiveCronRoutesHaveAliases" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="120" class="CronPortTest" classname="CronPortTest" assertions="20" time="0.010378"/>
        <testcase name="testHttpRequiresConfiguredCronKey" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="128" class="CronPortTest" classname="CronPortTest" assertions="3" time="0.002489"/>
        <testcase name="testBusyLockDoesNotDispatchAnyWorker" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="134" class="CronPortTest" classname="CronPortTest" assertions="2" time="0.001631"/>
        <testcase name="testQueueClaimsBeforeSendingAndUpdatesCapturedIds" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="139" class="CronPortTest" classname="CronPortTest" assertions="6" time="0.002441"/>
        <testcase name="testQueueRetriesExplicitFailureUntilFifthAttempt" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="151" class="CronPortTest" classname="CronPortTest" assertions="2" time="0.001698"/>
        <testcase name="testQueueFirstFailureReturnsToPending" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="158" class="CronPortTest" classname="CronPortTest" assertions="1" time="0.001700"/>
        <testcase name="testMissingPerMessageResultIsNotMarkedSentFromAggregateSuccess" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="164" class="CronPortTest" classname="CronPortTest" assertions="2" time="0.001752"/>
        <testcase name="testQueueExceptionIsUncertainAndLockReleased" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="170" class="CronPortTest" classname="CronPortTest" assertions="2" time="0.001709"/>
        <testcase name="testScheduledEnqueueDeduplicatesPhonesAndCommitsMarker" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="176" class="CronPortTest" classname="CronPortTest" assertions="6" time="0.002612"/>
        <testcase name="testScheduleAlreadyRunIsSkippedUnderLock" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="183" class="CronPortTest" classname="CronPortTest" assertions="3" time="0.001538"/>
        <testcase name="testEnqueueFailureRollsBackDateMarkerAndLog" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="189" class="CronPortTest" classname="CronPortTest" assertions="3" time="0.001684"/>
        <testcase name="testBillingCatchupChargesDaysFromLockedBalance" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="194" class="CronPortTest" classname="CronPortTest" assertions="5" time="0.003211"/>
        <testcase name="testBillingAlreadyChargedDoesNotDebitAgain" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="201" class="CronPortTest" classname="CronPortTest" assertions="2" time="0.001630"/>
        <testcase name="testInsufficientBalanceDowngradesAndSyncsSubscription" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="206" class="CronPortTest" classname="CronPortTest" assertions="4" time="0.002224"/>
        <testcase name="testSubscriptionFailureRollsBackDowngradeAndDate" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="211" class="CronPortTest" classname="CronPortTest" assertions="3" time="0.002011"/>
        <testcase name="testLedgerFailureRollsBackWholeStoreCatchup" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="216" class="CronPortTest" classname="CronPortTest" assertions="3" time="0.001816"/>
        <testcase name="testStatusReportUsesStoreCredentialsAndTrackingScope" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="221" class="CronPortTest" classname="CronPortTest" assertions="4" time="0.002820"/>
        <testcase name="testLockIsReleasedOnUnexpectedFailure" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="230" class="CronPortTest" classname="CronPortTest" assertions="1" time="0.001486"/>
        <testcase name="testMissingFreePlanDoesNotAdvanceBillingDate" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="235" class="CronPortTest" classname="CronPortTest" assertions="3" time="0.001814"/>
        <testcase name="testQueueBatchSizeIsLimitedToTwoHundred" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="241" class="CronPortTest" classname="CronPortTest" assertions="2" time="0.017877"/>
        <testcase name="testRealtimeReportUsesCorrectPathAndDoesNotLeakRawResponse" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/CronPortTest.php" line="247" class="CronPortTest" classname="CronPortTest" assertions="3" time="0.001512"/>
      </testsuite>
      <testsuite name="FinalPublicPortTest" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" tests="51" assertions="524" errors="0" failures="0" skipped="0" time="10.378941">
        <testcase name="testAllTwelveFilesHaveRoutes" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="122" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="31" time="0.010142"/>
        <testcase name="testDailyQuoteDoesNotChargeHoursForTimestampInputs" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="129" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.001694"/>
        <testcase name="testHourlyQuoteRoundsUpHalfHour" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="134" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.001019"/>
        <testcase name="testInvalidDatesAreRejected" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="139" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.001805"/>
        <testcase name="testPastRentalIsRejected" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="143" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.001004"/>
        <testcase name="testCrossTableOverlapRejectsInsufficientCapacity" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="147" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.001201"/>
        <testcase name="testDisjointExistingRangesDoNotDoubleCountCapacity" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="154" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.001287"/>
        <testcase name="testRentalConfirmationIsAtomicAndDoesNotCreatePosSale" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="161" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="7" time="0.536859"/>
        <testcase name="testRentalInsertFailureRollsBackWithoutNotifications" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="168" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="3" time="0.529009"/>
        <testcase name="testRentalConfirmedRetryDoesNotInsertAgain" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="174" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.570120"/>
        <testcase name="testRentalWrongOtpConsumesAttempt" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="179" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="3" time="0.559320"/>
        <testcase name="testRentalRateChangeRequiresNewOrder" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="184" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.747626"/>
        <testcase name="testBookingReturnsServerPriceAndTracksCapacity" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="188" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="3" time="0.286483"/>
        <testcase name="testBookingRetryOnlyReusesSessionOwnedId" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="194" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.285928"/>
        <testcase name="testBookingApiGetCannotMutate" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="200" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.003260"/>
        <testcase name="testBookingApiPostRequiresCsrf" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="204" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.002344"/>
        <testcase name="testSpecialOrderCannotBeReadByNumericIdAlone" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="208" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.002959"/>
        <testcase name="testIdentityVerificationRejectsWrongSessionProof" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="212" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.290424"/>
        <testcase name="testResetRequestStoresOnlyOtpHashAndSendsAfterCommit" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="216" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="5" time="0.548292"/>
        <testcase name="testUnknownResetIdentityDoesNotSendOrRevealAccount" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="223" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="3" time="0.324113"/>
        <testcase name="testResetRateLimitRollsBack" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="228" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.001759"/>
        <testcase name="testIdentityWrongOtpPersistsAttempts" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="234" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="3" time="0.543793"/>
        <testcase name="testIdentityExpiredOtpCannotVerify" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="239" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.261174"/>
        <testcase name="testResetCannotBypassOtpVerification" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="244" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.258864"/>
        <testcase name="testResetWritesHashAndConsumesChallenge" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="248" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="3" time="0.813907"/>
        <testcase name="testRegistrationCreatesStoreRolesAndHashedOwnerAtomically" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="255" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="7" time="1.039982"/>
        <testcase name="testRegistrationRollbackDoesNotLeavePartialStore" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="264" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.787255"/>
        <testcase name="testTableOrderUsesTokenStoreAndDatabasePrice" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="278" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="6" time="0.004376"/>
        <testcase name="testTableOrderRetryDoesNotDuplicateSale" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="285" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.002221"/>
        <testcase name="testTableOrderDetailFailureRollsBack" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="291" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.002166"/>
        <testcase name="testTableOrderPostRequiresCsrf" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="297" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.002742"/>
        <testcase name="testTrackingAliasUsesExistingAuthenticatedWebhook" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="301" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.009927"/>
        <testcase name="testRentalCheckoutViewRendersFromValidatedSelection" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="305" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="3" time="0.275320"/>
        <testcase name="testAccountAndPricingViewsRender" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="311" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="3" time="0.004214"/>
        <testcase name="testWebOneViewRendersStoreCalendar" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="317" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.004126"/>
        <testcase name="testEveryLegacyEntryPointResolvesToAControllerMethod" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="323" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="376" time="0.069681"/>
        <testcase name="testSpecialBookingRendersWithoutLosingOwnershipFields" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="333" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.003008"/>
        <testcase name="testUpgradeUsesPendingServerAmountAndNeverMarksPaid" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="339" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="4" time="0.003769"/>
        <testcase name="testCalendarMergesBookingsWithTransactionsAndUsesCapacity" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="347" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.001281"/>
        <testcase name="testPaymentProofRejectsExecutableMime" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="354" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.004284"/>
        <testcase name="testPaymentProofRejectsOversizedFiles" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="360" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.001412"/>
        <testcase name="testConsumedResetChallengeCannotChangePasswordAgain" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="366" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.259475"/>
        <testcase name="testFiveOtpFailuresPreventEvenCorrectCode" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="371" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.260850"/>
        <testcase name="testStaffQrConfirmationLocksBeforeStockMovement" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="376" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="5" time="0.004423"/>
        <testcase name="testStaffRentalCreationChecksBothReservationTables" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="386" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="4" time="0.264430"/>
        <testcase name="testUpgradeViewRendersWithoutCreatingSubscriptions" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="394" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.005128"/>
        <testcase name="testTableOrderViewEscapesCartNamesAndIncludesIdempotencyKey" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="398" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.003308"/>
        <testcase name="testRentalSuccessRendersSessionOwnedOrder" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="403" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.517776"/>
        <testcase name="testRentalOtpViewRendersVerificationAndCancelForm" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="408" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="3" time="0.260048"/>
        <testcase name="testTableOrderRejectsUnsupportedHttpMethods" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="413" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="2" time="0.002196"/>
        <testcase name="testRentalDatesAcceptIsoOffsetsAndJavascriptUtc" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/FinalPublicPortTest.php" line="418" class="FinalPublicPortTest" classname="FinalPublicPortTest" assertions="1" time="0.001157"/>
      </testsuite>
      <testsuite name="JaknotWebhookPortTest" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" tests="19" assertions="67" errors="0" failures="0" skipped="0" time="0.056126">
        <testcase name="testAliasesAndMethodRoutesAreRegisteredWithoutBrowserAuth" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="107" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="12" time="0.009669"/>
        <testcase name="testGetReturns405WithoutQueries" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="116" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="3" time="0.002066"/>
        <testcase name="testMissingHeaderCannotUseBrowserSessionOrBodyToken" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="122" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="3" time="0.002226"/>
        <testcase name="testInvalidTokenReturns401" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="128" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="2" time="0.002330"/>
        <testcase name="testTokenComparisonIsCaseSensitiveEvenIfDatabaseIsNot" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="133" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="2" time="0.002302"/>
        <testcase name="testDuplicateTokenMappingIsRejected" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="139" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="2" time="0.002185"/>
        <testcase name="testValidSnapshotSetsAbsoluteStockAndPurchasePrice" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="145" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="5" time="0.003429"/>
        <testcase name="testBodyRoutingCannotSelectAnotherStoreOrOutlet" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="154" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="3" time="0.002653"/>
        <testcase name="testUnknownSkuIsSkippedWhileMatchedItemCommits" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="161" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="4" time="0.002784"/>
        <testcase name="testAmbiguousSkuDoesNotChooseFirstProduct" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="168" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="3" time="0.002544"/>
        <testcase name="testMissingValuesCannotZeroExistingData" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="175" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="3" time="0.002551"/>
        <testcase name="testZeroIsValidForStockAndPrice" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="181" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="2" time="0.002564"/>
        <testcase name="testInvalidItemTypesAndValuesAreReported" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="186" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="3" time="0.002452"/>
        <testcase name="testMalformedJsonAndEmptyItemsReturn400" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="192" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="3" time="0.002450"/>
        <testcase name="testSecondWriteFailureRollsBackTheWholeBatch" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="198" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="4" time="0.003294"/>
        <testcase name="testRevokedTokenUnderLockRollsBackBeforeProductWrite" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="206" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="3" time="0.002394"/>
        <testcase name="testRepeatedSnapshotAssignsValuesWithoutAccumulatingStock" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="213" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="5" time="0.003121"/>
        <testcase name="testTokenValuesAreRedactedAndHeaderIsNotLogged" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="222" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="3" time="0.002559"/>
        <testcase name="testBarcodeAliasAndIntegerRoundingMatchLegacyBehavior" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/JaknotWebhookPortTest.php" line="228" class="JaknotWebhookPortTest" classname="JaknotWebhookPortTest" assertions="2" time="0.002552"/>
      </testsuite>
      <testsuite name="QrisApiPortTest" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" tests="14" assertions="69" errors="0" failures="0" skipped="0" time="0.043679">
        <testcase name="testRouteAliasesAreRegistered" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="104" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="4" time="0.009502"/>
        <testcase name="testUnauthenticatedRequestReturnsJson401" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="109" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="2" time="0.002067"/>
        <testcase name="testInvalidAmountsDoNotQueryDatabase" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="113" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="8" time="0.002491"/>
        <testcase name="testMethodGuard" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="118" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="2" time="0.002041"/>
        <testcase name="testStoreIsTakenFromSessionAndMustBeActive" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="122" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="3" time="0.002165"/>
        <testcase name="testMissingConfigurationReturns422" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="127" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="1" time="0.002100"/>
        <testcase name="testValidGenerationPreservesContractAndDoesNotWrite" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="132" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="9" time="0.002802"/>
        <testcase name="testPostJsonGeneration" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="141" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="2" time="0.002317"/>
        <testcase name="testCrcKnownVectorAndGeneratedChecksum" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="149" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="2" time="0.001171"/>
        <testcase name="testExistingAmountIsReplacedOnceAndMerchantDataPreserved" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="155" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="4" time="0.001240"/>
        <testcase name="testBrokenTlvDuplicateTagsAndBadCrcAreRejected" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="162" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="5" time="0.001159"/>
        <testcase name="testInvalidConfiguredPayloadReturns422" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="166" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="1" time="0.002084"/>
        <testcase name="testDatabaseFailureIsGeneric" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="171" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="2" time="0.002288"/>
        <testcase name="testEveryLegacyApiFileHasACiRoute" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/QrisApiPortTest.php" line="176" class="QrisApiPortTest" classname="QrisApiPortTest" assertions="24" time="0.010251"/>
      </testsuite>
      <testsuite name="ShopeeWebhookPortTest" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" tests="26" assertions="93" errors="0" failures="0" skipped="0" time="0.099457">
        <testcase name="testWebhookRouteAliasesDoNotUseBrowserAuthentication" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="111" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="12" time="0.008962"/>
        <testcase name="testOtherMethodsReturn405WithoutBusinessQueries" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="120" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="2" time="0.002036"/>
        <testcase name="testMalformedPayloadReturns400" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="125" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="2" time="0.002284"/>
        <testcase name="testUnknownShopReturns404" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="131" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="2" time="0.002332"/>
        <testcase name="testSecretIsRequiredEvenWhenConfigurationIsEmpty" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="136" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="3" time="0.002305"/>
        <testcase name="testWrongSecretCannotUseLoggedInStore" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="144" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="2" time="0.002393"/>
        <testcase name="testDuplicateConfiguredShopIsRejected" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="150" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="2" time="0.002343"/>
        <testcase name="testNewOrderWritesImportRowsSaleDetailsAndStock" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="156" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="8" time="0.007375"/>
        <testcase name="testRetryUpdatesStatusWithoutRepeatingItemsOrStock" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="168" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="5" time="0.004302"/>
        <testcase name="testCancellationRestoresTrackedQuantityOnce" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="178" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="4" time="0.006072"/>
        <testcase name="testFirstCancelledEventDoesNotDeductStock" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="190" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="4" time="0.004046"/>
        <testcase name="testLateEventCannotReopenCancelledOrder" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="198" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="4" time="0.003772"/>
        <testcase name="testPausedCreationRecordsZeroStockMovement" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="206" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="3" time="0.004270"/>
        <testcase name="testCancellationDoesNotCreditProductPausedAtCreation" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="213" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="2" time="0.003934"/>
        <testcase name="testPartialSkuMatchDoesNotCreateIncompleteSale" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="220" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="4" time="0.003960"/>
        <testcase name="testDetailFailureRollsBackOrderWritebackToo" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="229" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="3" time="0.004207"/>
        <testcase name="testResellerTierOverridesShopeeTotals" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="237" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="3" time="0.004803"/>
        <testcase name="testForeignResellerRollsBack" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="247" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="2" time="0.002836"/>
        <testcase name="testWebhookSecretIsRedactedInApiLog" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="254" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="3" time="0.004384"/>
        <testcase name="testInvalidQuantityOrNestedStatusReturns400" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="262" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="3" time="0.002474"/>
        <testcase name="testStatusOnlyEventUpdatesAndAuditsEveryExistingItem" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="269" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="5" time="0.003993"/>
        <testcase name="testAmbiguousSkuKeepsWritebackButSkipsSale" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="281" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="3" time="0.003984"/>
        <testcase name="testForeignOutletCannotWriteOrders" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="289" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="2" time="0.002831"/>
        <testcase name="testManualCancellationUsesTrackedQuantityAndConsumesMarker" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="295" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="4" time="0.001760"/>
        <testcase name="testCancellationBeforeItemsArriveRemainsTerminal" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="310" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="3" time="0.004254"/>
        <testcase name="testAuditFailureRollsBackStatusUpdate" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/ShopeeWebhookPortTest.php" line="319" class="ShopeeWebhookPortTest" classname="ShopeeWebhookPortTest" assertions="3" time="0.003544"/>
      </testsuite>
      <testsuite name="StoreApiPortTest" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" tests="28" assertions="121" errors="0" failures="0" skipped="0" time="0.083635">
        <testcase name="testMachineRoutesHaveLegacyAliasesAndOptions" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="105" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="48" time="0.010788"/>
        <testcase name="testPreflightReturns204WithoutAuthenticationOrMutations" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="114" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="4" time="0.002360"/>
        <testcase name="testGetCannotCreateSale" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="122" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="2" time="0.002586"/>
        <testcase name="testInvalidKeyCannotBorrowLoggedInStore" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="127" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="3" time="0.002739"/>
        <testcase name="testMalformedJsonReturns400" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="133" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="2" time="0.002408"/>
        <testcase name="testSalePreservesNegativeStockAndSnapshots" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="139" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="7" time="0.004640"/>
        <testcase name="testPausedProductSavesSaleWithoutMovingStock" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="152" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="3" time="0.003153"/>
        <testcase name="testDuplicateOrderRollsBackBeforeInsert" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="159" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="3" time="0.002690"/>
        <testcase name="testAmbiguousSkuReturns422AndRollsBack" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="166" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="3" time="0.002884"/>
        <testcase name="testForeignCustomerReturns422" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="173" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="3" time="0.002689"/>
        <testcase name="testDetailFailureReturns500AndRollsBack" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="180" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="4" time="0.002927"/>
        <testcase name="testInvalidDateOrQuantityCannotWriteSale" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="189" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="5" time="0.003007"/>
        <testcase name="testDiscountCannotMakeNegativeTotal" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="196" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="2" time="0.002683"/>
        <testcase name="testBundleCannotSilentlyChangeVirtualStock" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="202" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="2" time="0.002652"/>
        <testcase name="testSingleStockResolvesActualSkuAndRemainsStoreScoped" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="208" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="3" time="0.002432"/>
        <testcase name="testMultipleStockResponseListsMissingSku" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="216" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="1" time="0.002295"/>
        <testcase name="testSingleMissingStockReturns404" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="221" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="1" time="0.002292"/>
        <testcase name="testStockRejectsNestedSkuArray" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="225" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="1" time="0.002191"/>
        <testcase name="testInvoiceLookupIsScopedByApiKeyStore" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="229" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="3" time="0.002259"/>
        <testcase name="testMissingInvoiceReturns404AndMissingParameter400" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="237" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="2" time="0.002519"/>
        <testcase name="testApiLogRedactsBodyKey" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="242" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="3" time="0.002292"/>
        <testcase name="testBodyApiKeyAuthenticatesWithoutHeader" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="250" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="2" time="0.002305"/>
        <testcase name="testGetQueryKeyAndSkuWorkWithoutBrowserSession" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="259" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="2" time="0.002335"/>
        <testcase name="testFormInputRemainsSupported" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="268" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="1" time="0.002240"/>
        <testcase name="testShopIdTakesPriorityOverMarketplaceId" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="275" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="3" time="0.003320"/>
        <testcase name="testRepeatedSkuLinesMoveStockForEachLine" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="283" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="3" time="0.003460"/>
        <testcase name="testPostCommitNotificationFailureStillReturns201" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="291" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="2" time="0.003184"/>
        <testcase name="testAllStockUsesBarcodeWhenSkuIsBlank" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/StoreApiPortTest.php" line="297" class="StoreApiPortTest" classname="StoreApiPortTest" assertions="3" time="0.002307"/>
      </testsuite>
      <testsuite name="WablasWebhookPortTest" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" tests="23" assertions="95" errors="0" failures="0" skipped="0" time="0.062946">
        <testcase name="testBothCallbackAliasesHaveRoutesWithoutBrowserAuthentication" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="121" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="24" time="0.009251"/>
        <testcase name="testBothEndpointsRequirePost" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="128" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="3" time="0.002080"/>
        <testcase name="testMissingWrongOrUnconfiguredSecretIsRejected" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="133" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="4" time="0.002477"/>
        <testcase name="testQueryTokenCompatibilityRemainsAvailable" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="141" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="1" time="0.002889"/>
        <testcase name="testInvalidJsonOrMissingIdentityReturns400" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="146" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="3" time="0.002326"/>
        <testcase name="testUnknownDeviceCannotBorrowLoggedInStore" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="152" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="2" time="0.002242"/>
        <testcase name="testAmbiguousDeviceIsRejected" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="157" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="2" time="0.002193"/>
        <testcase name="testInboxPersistsMessageAndCustomerUnderDeviceStore" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="163" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="4" time="0.002679"/>
        <testcase name="testCustomerLookupUsesStoreAndExactPhoneVariants" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="171" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="4" time="0.002671"/>
        <testcase name="testDuplicateInboxDoesNotCreateContactOrMessageAgain" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="179" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="4" time="0.002466"/>
        <testcase name="testEchoAndGroupDoNotCreateContactsOrCheckRules" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="186" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="5" time="0.002969"/>
        <testcase name="testMessageFailureRollsBackCustomerCreation" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="194" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="2" time="0.002817"/>
        <testcase name="testAutoreplyMatchesOnceAndDispatchesAfterCommit" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="200" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="7" time="0.001721"/>
        <testcase name="testAutoreplyFailureDoesNotRollBackAcceptedMessage" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="214" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="2" time="0.001690"/>
        <testcase name="testRuleMatchingSupportsAllLegacyModesAndInvalidRegex" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="220" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="6" time="0.001565"/>
        <testcase name="testTrackingScopesUpdateToOutgoingStoreAndDevice" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="225" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="3" time="0.002472"/>
        <testcase name="testRepeatedTrackingIsSuccessfulNoop" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="232" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="3" time="0.002434"/>
        <testcase name="testLateTrackingCannotRegressReadStatus" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="238" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="4" time="0.003280"/>
        <testcase name="testUnknownAndAmbiguousTrackingIdsAreRejected" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="244" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="2" time="0.002474"/>
        <testcase name="testDeviceMismatchUnderLockCannotUpdateTracking" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="250" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="3" time="0.002363"/>
        <testcase name="testTrackingFailureRollsBack" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="256" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="2" time="0.002513"/>
        <testcase name="testCredentialFieldsAreRedactedInApiLog" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="262" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="3" time="0.002660"/>
        <testcase name="testUnixMillisecondsAreNormalized" file="/Applications/MAMP/htdocs/project_pos/pos_kiosq_id_ci/tests/unit/WablasWebhookPortTest.php" line="267" class="WablasWebhookPortTest" classname="WablasWebhookPortTest" assertions="2" time="0.002715"/>
      </testsuite>
    </testsuite>
  </testsuite>
</testsuites>
