package shop;

import org.junit.jupiter.api.Test;

import java.math.BigDecimal;

import static org.junit.jupiter.api.Assertions.assertEquals;

/** The tests the agent wrote alongside its own change. */
class PricingAgentTest {

    private final PricingService pricing = new PricingService();

    private static BigDecimal d(String s) { return new BigDecimal(s); }

    @Test
    void orderOver1000GetsTenPercentOff() {
        var q = pricing.quote(d("1200"), d("0"));
        assertEquals(d("120.00"), q.discount());
        assertEquals(d("1080.00"), q.total());
    }

    @Test
    void smallOrderGetsNoDiscount() {
        var q = pricing.quote(d("500"), d("40"));
        assertEquals(d("0.00"), q.discount());
        assertEquals(d("540.00"), q.total());
    }

    @Test
    void ordersAtTheThresholdQualify() {
        assertEquals(d("100.00"), pricing.quote(d("1000"), d("0")).discount());
    }

    @Test
    void shippingCountsTowardTheThreshold() {
        assertEquals(d("105.00"), pricing.quote(d("950"), d("100")).discount());
    }
}
