package eu.dnetlib.data.utils;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

public class XsltFunctionsTest {

	@Test
	public void testCleanDoi() {
		assertEquals("10.3233/faia200182", XsltFunctions.cleanDoi("  10.3233/FAIA200182  "));
		assertEquals("", XsltFunctions.cleanDoi(""));
		assertEquals("", XsltFunctions.cleanDoi(null));
	}

	@Test
	public void testCapitalizeName() {
		assertEquals("Michele Artini", XsltFunctions.capitalize("MICHELE ARTINI"));
		assertEquals("Michele Artini", XsltFunctions.capitalize("michele artini"));
		assertEquals("Michele-Francesco Artini", XsltFunctions.capitalize("MICHELE-FRANCESCO ARTINI"));
		assertEquals("Michele Artini-Smith", XsltFunctions.capitalize("MICHELE ARTINI-SMITH"));
		assertEquals("Michele Francesco Artini", XsltFunctions.capitalize("MICHELE FRANCESCO ARTINI"));
		assertEquals("Andrea Dell'Amico", XsltFunctions.capitalize("andrea dell'amico"));
		assertEquals("Andrea Dell'Amico", XsltFunctions.capitalize("andrea dell'amico"));
	}

	@Test
	public void testExtractYear() {
		assertEquals("2022", XsltFunctions.extractYear("2022"));
		assertEquals("2022", XsltFunctions.extractYear("  2022  "));
		assertEquals("2022", XsltFunctions.extractYear("12/02/2022"));
		assertEquals("2022", XsltFunctions.extractYear("2022-12-12"));
	}
}
