package com.baiyue.common.event; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; class ContainerNumbersTest { @Test void normalizesWhitespaceAndCaseButCanonicalFactsRequireExactIso6346Value() { assertThat(ContainerNumbers.normalizeRequired(" zcsu 7881970 ")).isEqualTo("ZCSU7881970"); assertThat(ContainerNumbers.requireCanonical("ZCSU7881970")).isEqualTo("ZCSU7881970"); assertThatThrownBy(() -> ContainerNumbers.requireCanonical("zcsu7881970")) .hasMessageContaining("normalized"); assertThatThrownBy(() -> ContainerNumbers.normalizeRequired("ZCSU7881971")) .hasMessageContaining("check digit"); assertThatThrownBy(() -> ContainerNumbers.normalizeRequired("CAB-260831-0001")) .hasMessageContaining("ISO 6346"); } }