package jnpf.elnService.impl; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class ElnFieldCodeGeneratorTest { @Test public void generatesSixCharacterRandomSuffix() { ElnFieldCodeGenerator generator = new ElnFieldCodeGenerator(() -> "A1B2C3D4"); assertEquals("gongshipin_mingcheng_a1b2c3", generator.generate("供试品名称", false)); } @Test public void supportsExplicitSuffixLengthForNonFieldCatalogCodes() { ElnFieldCodeGenerator generator = new ElnFieldCodeGenerator(() -> "A1B2C3D4", 8); assertEquals("jianyan_jieguo_a1b2c3d4", generator.generateSegmented("检验结果", "formula", "f")); } @Test public void suggestsSegmentedLowercaseCodeWithoutRandomSuffix() { assertEquals("jianyan_jieguo", ElnFieldCodeGenerator.suggestSegmentedCode("检验结果")); assertEquals("hplc_hanliang_jisuan", ElnFieldCodeGenerator.suggestSegmentedCode("HPLC含量计算")); } @Test public void limitsSuggestionAtSegmentBoundary() { String suggestion = ElnFieldCodeGenerator.suggestSegmentedCode( "检验结果检验结果检验结果检验结果检验结果检验结果检验结果检验结果"); assertTrue(suggestion.length() <= 80); assertFalse(suggestion.endsWith("_")); } }