001/* 002 * Licensed under the Apache License, Version 2.0 (the "License"); 003 * you may not use this file except in compliance with the License. 004 * You may obtain a copy of the License at 005 * 006 * http://www.apache.org/licenses/LICENSE-2.0 007 * 008 * Unless required by applicable law or agreed to in writing, software 009 * distributed under the License is distributed on an "AS IS" BASIS, 010 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 011 * See the License for the specific language governing permissions and 012 * limitations under the License. 013 */ 014package org.gbif.api.util.validators.identifierschemes; 015 016import org.junit.jupiter.api.Test; 017 018import static org.junit.jupiter.api.Assertions.assertEquals; 019import static org.junit.jupiter.api.Assertions.assertFalse; 020import static org.junit.jupiter.api.Assertions.assertThrows; 021import static org.junit.jupiter.api.Assertions.assertTrue; 022 023/** Tests the {@link WikidataValidator}. */ 024public class WikidataValidatorTest { 025 026 @Test 027 public void isValidTest() { 028 029 // State 030 WikidataValidator validator = new WikidataValidator(); 031 032 // Should 033 assertTrue(validator.isValid("https://www.wikidata.org/wiki/Q12345")); 034 assertTrue(validator.isValid("https://www.wikidata.org/wiki/Property:P569")); 035 assertTrue(validator.isValid("https://www.wikidata.org/wiki/Lexeme:L1")); 036 assertTrue(validator.isValid("http://www.wikidata.org/wiki/Lexeme:L1")); 037 assertTrue(validator.isValid("http://www.wikidata.org/wiki/Property:P569")); 038 assertTrue(validator.isValid("http://www.wikidata.org/entity/ID")); 039 assertTrue(validator.isValid("wikidata.org/wiki/Property:P569")); 040 assertTrue(validator.isValid("www.wikidata.org/wiki/Lexeme:L1")); 041 assertTrue(validator.isValid("www.wikidata.org/entity/ID")); 042 043 assertFalse(validator.isValid(null)); 044 assertFalse(validator.isValid("")); 045 assertFalse(validator.isValid("http.wikidata.org/entity/ID")); 046 assertFalse(validator.isValid("ftp://www.wikidata.org/entity/ID")); 047 assertFalse(validator.isValid("http://www.wikidata.org/entity/ID/awdawdawd")); 048 assertFalse(validator.isValid("https://www.wikidata.org/wiki/Lexeme:L1/awdawd")); 049 assertFalse(validator.isValid("https://www.wikidata.org/wiki/")); 050 assertFalse(validator.isValid("https://www.ad.com/#q=ad")); 051 assertFalse(validator.isValid("http://www.wikidata.org")); 052 assertFalse(validator.isValid("https://www.wikidata.org")); 053 assertFalse(validator.isValid("awdawdawd")); 054 } 055 056 @Test 057 public void normalizeTest() { 058 059 // State 060 WikidataValidator validator = new WikidataValidator(); 061 062 // Should 063 assertEquals( 064 "https://www.wikidata.org/wiki/Q12345", 065 validator.normalize("https://www.wikidata.org/wiki/Q12345")); 066 assertEquals( 067 "https://www.wikidata.org/wiki/Property:P569", 068 validator.normalize("https://www.wikidata.org/wiki/Property:P569")); 069 assertEquals( 070 "https://www.wikidata.org/wiki/Lexeme:L1", 071 validator.normalize("https://www.wikidata.org/wiki/Lexeme:L1")); 072 assertEquals( 073 "http://www.wikidata.org/wiki/Lexeme:L1", 074 validator.normalize("http://www.wikidata.org/wiki/Lexeme:L1")); 075 assertEquals( 076 "http://www.wikidata.org/wiki/Property:P569", 077 validator.normalize("http://www.wikidata.org/wiki/Property:P569")); 078 assertEquals( 079 "http://www.wikidata.org/entity/ID", 080 validator.normalize("http://www.wikidata.org/entity/ID")); 081 assertEquals( 082 "wikidata.org/wiki/Property:P569", validator.normalize("wikidata.org/wiki/Property:P569")); 083 assertEquals( 084 "www.wikidata.org/wiki/Lexeme:L1", validator.normalize("www.wikidata.org/wiki/Lexeme:L1")); 085 assertEquals("www.wikidata.org/entity/ID", validator.normalize("www.wikidata.org/entity/ID")); 086 } 087 088 @Test 089 public void normalizExeptionTest() { 090 091 // State 092 WikidataValidator validator = new WikidataValidator(); 093 094 // Should 095 assertThrows(IllegalArgumentException.class, () -> validator.normalize("awdawd")); 096 } 097}