<?xml version="1.0" encoding="UTF-8"?>
<test-run id="2" name="Checkout.Tests.dll" fullname="/builds/novus/Checkout.Tests.dll" testcasecount="12" result="Failed" total="12" passed="9" failed="2" inconclusive="0" skipped="1" asserts="34" engine-version="3.17.0" clr-version="8.0.7" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:29Z" duration="7.450">
  <test-suite type="Assembly" id="0-1000" name="Checkout.Tests.dll" fullname="/builds/novus/Checkout.Tests.dll" runstate="Runnable" testcasecount="12" result="Failed" duration="7.450" total="12" passed="9" failed="2" inconclusive="0" skipped="1" asserts="34">
    <environment framework-version="3.17.0" clr-version="8.0.7" os-version="Linux" platform="Linux" cwd="/builds/novus" machine-name="ci-runner-04" user="sample" culture="en-GB" uiculture="en-GB"/>
    <test-suite type="TestFixture" id="0-1001" name="PricingTest" fullname="cart.PricingTest" classname="cart.PricingTest" runstate="Runnable" testcasecount="5" result="Failed" duration="3.744" total="5" passed="4" failed="1" inconclusive="0" skipped="0" asserts="13">
      <test-case id="0-1002" name="appliesUnitPrice" fullname="cart.PricingTest.appliesUnitPrice" methodname="appliesUnitPrice" classname="cart.PricingTest" runstate="Runnable" seed="1088132921" result="Passed" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:23Z" duration="0.643" asserts="3"/>
      <test-case id="0-1003" name="appliesQuantityMultiplier" fullname="cart.PricingTest.appliesQuantityMultiplier" methodname="appliesQuantityMultiplier" classname="cart.PricingTest" runstate="Runnable" seed="1088132921" result="Passed" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:23Z" duration="0.659" asserts="3"/>
      <test-case id="0-1004" name="roundsHalfUpAtTwoDecimals" fullname="cart.PricingTest.roundsHalfUpAtTwoDecimals" methodname="roundsHalfUpAtTwoDecimals" classname="cart.PricingTest" runstate="Runnable" seed="1088132921" result="Passed" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:23Z" duration="1.042" asserts="3"/>
      <test-case id="0-1005" name="rejectsNegativeQuantity" fullname="cart.PricingTest.rejectsNegativeQuantity" methodname="rejectsNegativeQuantity" classname="cart.PricingTest" runstate="Runnable" seed="1088132921" result="Passed" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:23Z" duration="1.048" asserts="3"/>
      <test-case id="0-1006" name="appliesTaxToSubtotal" fullname="cart.PricingTest.appliesTaxToSubtotal" methodname="appliesTaxToSubtotal" classname="cart.PricingTest" runstate="Runnable" seed="1088132921" result="Failed" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:23Z" duration="0.352" asserts="3">
        <failure>
          <message><![CDATA[expected:<12.60> but was:<12.59>]]></message>
          <stack-trace><![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)
]]></stack-trace>
        </failure>
      </test-case>
    </test-suite>
    <test-suite type="TestFixture" id="0-1007" name="DiscountTest" fullname="cart.DiscountTest" classname="cart.DiscountTest" runstate="Runnable" testcasecount="4" result="Passed" duration="2.067" total="4" passed="3" failed="0" inconclusive="0" skipped="1" asserts="10">
      <test-case id="0-1008" name="appliesPercentageDiscount" fullname="cart.DiscountTest.appliesPercentageDiscount" methodname="appliesPercentageDiscount" classname="cart.DiscountTest" runstate="Runnable" seed="1088132921" result="Passed" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:23Z" duration="0.147" asserts="3"/>
      <test-case id="0-1009" name="stacksDiscountsInDeclaredOrder" fullname="cart.DiscountTest.stacksDiscountsInDeclaredOrder" methodname="stacksDiscountsInDeclaredOrder" classname="cart.DiscountTest" runstate="Runnable" seed="1088132921" result="Passed" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:23Z" duration="0.327" asserts="3"/>
      <test-case id="0-1010" name="ignoresExpiredCoupon" fullname="cart.DiscountTest.ignoresExpiredCoupon" methodname="ignoresExpiredCoupon" classname="cart.DiscountTest" runstate="Runnable" seed="1088132921" result="Passed" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:23Z" duration="0.893" asserts="3"/>
      <test-case id="0-1011" name="appliesLoyaltyTier" fullname="cart.DiscountTest.appliesLoyaltyTier" methodname="appliesLoyaltyTier" classname="cart.DiscountTest" runstate="Runnable" seed="1088132921" result="Skipped" label="Ignored" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:23Z" duration="0.700" asserts="3">
        <reason>
          <message><![CDATA[loyalty tiers are disabled in the CI profile]]></message>
        </reason>
      </test-case>
    </test-suite>
    <test-suite type="TestFixture" id="0-1012" name="SessionTest" fullname="checkout.SessionTest" classname="checkout.SessionTest" runstate="Runnable" testcasecount="3" result="Failed" duration="1.639" total="3" passed="2" failed="1" inconclusive="0" skipped="0" asserts="7">
      <test-case id="0-1013" name="createsSessionForNewCart" fullname="checkout.SessionTest.createsSessionForNewCart" methodname="createsSessionForNewCart" classname="checkout.SessionTest" runstate="Runnable" seed="1088132921" result="Passed" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:23Z" duration="0.783" asserts="3"/>
      <test-case id="0-1014" name="expiresSessionAfterTimeout" fullname="checkout.SessionTest.expiresSessionAfterTimeout" methodname="expiresSessionAfterTimeout" classname="checkout.SessionTest" runstate="Runnable" seed="1088132921" result="Failed" label="Error" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:23Z" duration="0.695" asserts="3">
        <failure>
          <message><![CDATA[Connection refused: sessions.example.com:5432]]></message>
          <stack-trace><![CDATA[java.net.ConnectException: Connection refused: sessions.example.com:5432
	at checkout.SessionStore.open(SessionStore.java:41)
	at checkout.SessionTest.expiresSessionAfterTimeout(SessionTest.java:57)
]]></stack-trace>
        </failure>
      </test-case>
      <test-case id="0-1015" name="restoresCartOnResume" fullname="checkout.SessionTest.restoresCartOnResume" methodname="restoresCartOnResume" classname="checkout.SessionTest" runstate="Runnable" seed="1088132921" result="Passed" start-time="2026-08-07 09:14:22Z" end-time="2026-08-07 09:14:23Z" duration="0.161" asserts="3"/>
    </test-suite>
  </test-suite>
</test-run>
