TagValidator validatorFor(final String name) { // Step 1: Check standard exact name match validators TagValidator validator = this.validators.get(name); if (validator == null) { final LocalizedTagNameWithOptionalDate localizedName = new LocalizedTagNameWithOptionalDate( name); validator = this.localizedValidators.get(localizedName.getName()); } return validator; } }
@Test public void threePartItemName() { final LocalizedTagNameWithOptionalDate name = new LocalizedTagNameWithOptionalDate( "name:maybe:not"); Assert.assertEquals("name:maybe:not", name.getName()); Assert.assertFalse(name.getLanguage().isPresent()); Assert.assertFalse(name.getDateRange().isPresent()); }
final LocalizedTagNameWithOptionalDate parser = new LocalizedTagNameWithOptionalDate( key); parser.getLanguage().ifPresent(language ->
@Test public void threePartItemNameWithDateRange() { final LocalizedTagNameWithOptionalDate name = new LocalizedTagNameWithOptionalDate( "name:maybe:not:1939-1945"); Assert.assertEquals("name:maybe:not", name.getName()); Assert.assertFalse(name.getLanguage().isPresent()); Assert.assertTrue(name.getDateRange().isPresent()); } }
@Test public void singleItemName() { final LocalizedTagNameWithOptionalDate name = new LocalizedTagNameWithOptionalDate("name"); Assert.assertEquals("name", name.getName()); Assert.assertFalse(name.getLanguage().isPresent()); Assert.assertFalse(name.getDateRange().isPresent()); }
@Test public void threePartItemNameInRussianWithDateRange() { final LocalizedTagNameWithOptionalDate name = new LocalizedTagNameWithOptionalDate( "name:maybe:not:ru:1939-1945"); Assert.assertEquals("name:maybe:not", name.getName()); Assert.assertTrue(name.getLanguage().isPresent()); Assert.assertEquals(IsoLanguage.forLanguageCode("ru").get().getLanguageCode(), name.getLanguage().get().getLanguageCode()); Assert.assertTrue(name.getDateRange().isPresent()); }
@Test public void threePartItemNameInRussian() { final LocalizedTagNameWithOptionalDate name = new LocalizedTagNameWithOptionalDate( "name:maybe:not:ru"); Assert.assertEquals("name:maybe:not", name.getName()); Assert.assertTrue(name.getLanguage().isPresent()); Assert.assertEquals(IsoLanguage.forLanguageCode("ru").get().getLanguageCode(), name.getLanguage().get().getLanguageCode()); Assert.assertFalse(name.getDateRange().isPresent()); }