<?xml version="1.0" encoding="UTF-8"?>
<testng-results ignored="0" total="12" passed="9" failed="2" skipped="1">
  <reporter-output/>
  <suite name="Checkout Suite" duration-ms="7450" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:29Z">
    <test name="cart" duration-ms="2400" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:24Z">
      <class name="cart.PricingTest">
        <test-method status="PASS" signature="appliesUnitPrice()[pri:0, instance:cart.PricingTest@1a2b]" name="appliesUnitPrice" duration-ms="643" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:23Z"/>
        <test-method status="PASS" signature="appliesQuantityMultiplier()[pri:0, instance:cart.PricingTest@1a2b]" name="appliesQuantityMultiplier" duration-ms="659" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:23Z"/>
        <test-method status="PASS" signature="roundsHalfUpAtTwoDecimals()[pri:0, instance:cart.PricingTest@1a2b]" name="roundsHalfUpAtTwoDecimals" duration-ms="1042" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:23Z"/>
        <test-method status="PASS" signature="rejectsNegativeQuantity()[pri:0, instance:cart.PricingTest@1a2b]" name="rejectsNegativeQuantity" duration-ms="1048" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:23Z"/>
        <test-method status="FAIL" signature="appliesTaxToSubtotal()[pri:0, instance:cart.PricingTest@1a2b]" name="appliesTaxToSubtotal" duration-ms="352" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:23Z">
          <exception class="java.lang.AssertionError">
            <message><![CDATA[expected:<12.60> but was:<12.59>]]></message>
            <full-stacktrace><![CDATA[java.lang.AssertionError: expected:<12.60> but was:<12.59>
	at cart.PricingTest.appliesTaxToSubtotal(PricingTest.java:88)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
]]></full-stacktrace>
          </exception>
        </test-method>
      </class>
    </test>
    <test name="cart" duration-ms="2400" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:24Z">
      <class name="cart.DiscountTest">
        <test-method status="PASS" signature="appliesPercentageDiscount()[pri:0, instance:cart.DiscountTest@1a2b]" name="appliesPercentageDiscount" duration-ms="147" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:23Z"/>
        <test-method status="PASS" signature="stacksDiscountsInDeclaredOrder()[pri:0, instance:cart.DiscountTest@1a2b]" name="stacksDiscountsInDeclaredOrder" duration-ms="327" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:23Z"/>
        <test-method status="PASS" signature="ignoresExpiredCoupon()[pri:0, instance:cart.DiscountTest@1a2b]" name="ignoresExpiredCoupon" duration-ms="893" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:23Z"/>
        <test-method status="SKIP" signature="appliesLoyaltyTier()[pri:0, instance:cart.DiscountTest@1a2b]" name="appliesLoyaltyTier" duration-ms="700" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:23Z">
          <reporter-output>loyalty tiers are disabled in the CI profile</reporter-output>
        </test-method>
      </class>
    </test>
    <test name="checkout" duration-ms="2400" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:24Z">
      <class name="checkout.SessionTest">
        <test-method status="PASS" signature="createsSessionForNewCart()[pri:0, instance:checkout.SessionTest@1a2b]" name="createsSessionForNewCart" duration-ms="783" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:23Z"/>
        <test-method status="FAIL" signature="expiresSessionAfterTimeout()[pri:0, instance:checkout.SessionTest@1a2b]" name="expiresSessionAfterTimeout" duration-ms="695" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:23Z">
          <exception class="java.net.ConnectException">
            <message><![CDATA[Connection refused: sessions.example.com:5432]]></message>
            <full-stacktrace><![CDATA[java.net.ConnectException: Connection refused: sessions.example.com:5432
	at checkout.SessionStore.open(SessionStore.java:41)
	at checkout.SessionTest.expiresSessionAfterTimeout(SessionTest.java:57)
]]></full-stacktrace>
          </exception>
        </test-method>
        <test-method status="PASS" signature="restoresCartOnResume()[pri:0, instance:checkout.SessionTest@1a2b]" name="restoresCartOnResume" duration-ms="161" started-at="2026-08-07T09:14:22Z" finished-at="2026-08-07T09:14:23Z"/>
      </class>
    </test>
  </suite>
</testng-results>
