/** * This Source Code Form is subject to the terms of the Mozilla Public License, * v. 2.0. If a copy of the MPL was not distributed with this file, You can * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. * * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ package org.openmrs.layout.name; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.openmrs.PersonName; public class NameTemplateTest { private NameSupport nameSupport; @Before public void setup() { nameSupport = new NameSupport(); nameSupport.setSpecialTokens(Arrays.asList("prefix", "givenName", "middleName", "familyNamePrefix", "familyNameSuffix", "familyName2", "familyName", "degree")); } @Test public void shouldProperlyFormatName() { NameTemplate nameTemplate = new NameTemplate(); List<String> lineByLineFormat = new ArrayList<String>(); lineByLineFormat.add("givenName"); lineByLineFormat.add("familyName"); nameTemplate.setLineByLineFormat(lineByLineFormat); Map<String, String> nameMappings = new HashMap<String, String>(); nameMappings.put("givenName", "givenName"); nameMappings.put("familyName", "familyName"); nameTemplate.setNameMappings(nameMappings); Map<String, String> sizeMappings = new HashMap<String, String>(); sizeMappings.put("givenName", "30"); sizeMappings.put("familyName", "30"); nameTemplate.setSizeMappings(sizeMappings); nameSupport.setLayoutTemplates(Collections.singletonList(nameTemplate)); PersonName personName = new PersonName(); personName.setGivenName("Mark"); personName.setFamilyName("Goodrich"); Assert.assertEquals("Mark Goodrich", nameTemplate.format(personName)); } @Test public void shouldProperlyFormatNameWithNonTokens() { NameTemplate nameTemplate = new NameTemplate(); List<String> lineByLineFormat = new ArrayList<String>(); lineByLineFormat.add("familyName,"); lineByLineFormat.add("givenName"); lineByLineFormat.add("\"middleName\""); nameTemplate.setLineByLineFormat(lineByLineFormat); Map<String, String> nameMappings = new HashMap<String, String>(); nameMappings.put("familyName", "familyName"); nameMappings.put("givenName", "givenName"); nameMappings.put("middleName", "middleName"); nameTemplate.setNameMappings(nameMappings); Map<String, String> sizeMappings = new HashMap<String, String>(); sizeMappings.put("familyName", "30"); sizeMappings.put("givenName", "30"); sizeMappings.put("middleName", "30"); nameTemplate.setSizeMappings(sizeMappings); nameSupport.setLayoutTemplates(Collections.singletonList(nameTemplate)); PersonName personName = new PersonName(); personName.setGivenName("Mark"); personName.setFamilyName("Goodrich"); personName.setMiddleName("Blue State"); Assert.assertEquals("Goodrich, Mark \"Blue State\"", nameTemplate.format(personName)); } }