001/*
002 * Copyright 2020 Global Biodiversity Information Facility (GBIF)
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.gbif.api.model.registry;
017
018import org.junit.jupiter.api.Test;
019
020import static org.junit.jupiter.api.Assertions.assertEquals;
021import static org.junit.jupiter.api.Assertions.assertNotNull;
022import static org.junit.jupiter.api.Assertions.assertTrue;
023
024public class ContactTest {
025
026  @Test
027  public void testUserId() {
028    Contact c = new Contact();
029
030    c.addUserId(null, null);
031    assertNotNull(c.getUserId());
032    assertTrue(c.getUserId().isEmpty());
033
034    c.addUserId(null, "3421423");
035    assertEquals("3421423", c.getUserId().get(0));
036
037    c.addUserId("", "3421423");
038    assertEquals("3421423", c.getUserId().get(1));
039
040    // Directory prefix absent from the id.
041    c.addUserId("gbif", "3421423");
042    assertEquals("gbif:3421423", c.getUserId().get(2));
043
044    c.addUserId("http://orcid.org/", "3421423");
045    assertEquals("http://orcid.org/3421423", c.getUserId().get(3));
046
047    c.addUserId("http://orcid.org", "3421423");
048    assertEquals("http://orcid.org/3421423", c.getUserId().get(4));
049
050    c.addUserId("http://orcid.org", "de/12-3421423");
051    assertEquals("http://orcid.org/de/12-3421423", c.getUserId().get(5));
052
053    c.addUserId("https://scholar.google.com/citations?user=", "jvW0IrIAAAAJ");
054    assertEquals("https://scholar.google.com/citations?user=jvW0IrIAAAAJ", c.getUserId().get(6));
055
056    c.addUserId("https://www.linkedin.com/in/", "john-smith-12345");
057    assertEquals("https://www.linkedin.com/in/john-smith-12345", c.getUserId().get(7));
058
059    c.addUserId("https://www.linkedin.com/profile/view?id=", "AAkAAABiOnwBeoX3a3wKqe4IEqDkJ_ifoVj1234");
060    assertEquals("https://www.linkedin.com/profile/view?id=AAkAAABiOnwBeoX3a3wKqe4IEqDkJ_ifoVj1234", c.getUserId().get(8));
061
062    c.addUserId(", ,", ", ,");
063    assertEquals(", ,", c.getUserId().get(9));
064
065    // Directory prefix included in the id
066    c.addUserId("gbif", "gbif:105539");
067    assertEquals("gbif:105539", c.getUserId().get(10));
068
069    c.addUserId("http://orcid.org/", "http://orcid.org/0000-0003-0623-6682");
070    assertEquals("http://orcid.org/0000-0003-0623-6682", c.getUserId().get(11));
071
072    c.addUserId("http://orcid.org", "http://orcid.org/0000-0003-0623-6682");
073    assertEquals("http://orcid.org/0000-0003-0623-6682", c.getUserId().get(12));
074
075    c.addUserId("https://orcid.org", "http://orcid.org/0000-0003-0623-6682");
076    assertEquals("http://orcid.org/0000-0003-0623-6682", c.getUserId().get(13));
077
078    c.addUserId("http://orcid.org", "https://orcid.org/0000-0003-0623-6682");
079    assertEquals("https://orcid.org/0000-0003-0623-6682", c.getUserId().get(14));
080
081    c.addUserId("http://orcid.org", "orcid.org/0000-0003-0623-6682");
082    assertEquals("http://orcid.org/0000-0003-0623-6682", c.getUserId().get(15));
083
084    c.addUserId("https://orcid.org", "orcid.org/0000-0003-0623-6682");
085    assertEquals("https://orcid.org/0000-0003-0623-6682", c.getUserId().get(16));
086
087    c.addUserId("https://scholar.google.com/citations?user=", "https://scholar.google.com/citations?user=jvW0IrIAAAAJ");
088    assertEquals("https://scholar.google.com/citations?user=jvW0IrIAAAAJ", c.getUserId().get(17));
089
090    // Just to check this test is written correctly.
091    assertEquals(18, c.getUserId().size());
092  }
093
094  @Test
095  public void testGetCompleteName() {
096    Contact c = new Contact();
097    assertEquals("", c.computeCompleteName());
098
099    c.setFirstName("FirstName ");
100    assertEquals("FirstName", c.computeCompleteName());
101
102    c.setLastName("LastName");
103    assertEquals("FirstName LastName", c.computeCompleteName());
104
105    c.setFirstName(" ");
106    assertEquals("LastName", c.computeCompleteName());
107  }
108}