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.common; 017 018import org.gbif.api.SerdeTestUtils; 019import org.gbif.api.vocabulary.UserRole; 020 021import java.io.IOException; 022import java.util.HashMap; 023import java.util.Map; 024import java.util.Set; 025 026import jakarta.validation.ConstraintViolation; 027import jakarta.validation.Validation; 028import jakarta.validation.Validator; 029 030import org.junit.jupiter.api.Test; 031 032import static org.junit.jupiter.api.Assertions.assertEquals; 033import static org.junit.jupiter.api.Assertions.assertFalse; 034import static org.junit.jupiter.api.Assertions.assertTrue; 035 036@Deprecated 037public class UserTest { 038 039 private final Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); 040 041 @Test 042 public void testHasRole() { 043 User u = new User(); 044 u.setUserName("betty"); 045 u.setEmail("betty@gbif.org"); 046 u.setFirstName("Betty Ford"); 047 048 assertFalse(u.hasRole(UserRole.USER)); 049 assertFalse(u.hasRole(UserRole.REGISTRY_EDITOR)); 050 assertFalse(u.hasRole(UserRole.REGISTRY_ADMIN)); 051 assertFalse(u.hasRole(null)); 052 053 u.addRole(UserRole.USER); 054 assertTrue(u.hasRole(UserRole.USER)); 055 assertFalse(u.hasRole(UserRole.REGISTRY_EDITOR)); 056 assertFalse(u.hasRole(UserRole.REGISTRY_ADMIN)); 057 assertFalse(u.hasRole(null)); 058 059 u.addRole(UserRole.REGISTRY_ADMIN); 060 assertTrue(u.hasRole(UserRole.USER)); 061 assertFalse(u.hasRole(UserRole.REGISTRY_EDITOR)); 062 assertTrue(u.hasRole(UserRole.REGISTRY_ADMIN)); 063 assertFalse(u.hasRole(null)); 064 } 065 066 @Test 067 public void testIsAdmin() { 068 User u = new User(); 069 u.setUserName("betty"); 070 u.setEmail("betty@gbif.org"); 071 u.setFirstName("Betty Ford"); 072 073 assertFalse(u.isAdmin()); 074 075 u.addRole(UserRole.ADMIN); 076 assertTrue(u.isAdmin()); 077 } 078 079 @Test 080 public void testValidation() { 081 User u = new User(); 082 u.setKey(100); 083 u.setUserName("be"); 084 u.setEmail("betty@gbif.org"); 085 u.setFirstName("Betty"); 086 u.setLastName("Ford"); 087 assertValidation("userName", u); 088 089 u.setUserName("betty"); 090 u.setFirstName(null); 091 assertValidation("firstName", u); 092 093 u.setFirstName("Betty"); 094 assertValidation(null, u); 095 096 u.setEmail("betty at gbif.org"); 097 assertValidation("email", u); 098 } 099 100 private void assertValidation(String property, User u) { 101 Set<ConstraintViolation<User>> err = validator.validate(u); 102 System.out.print(err); 103 if (property == null) { 104 assertEquals(0, err.size()); 105 } else { 106 assertEquals(1, err.size()); 107 assertEquals(property, err.iterator().next().getPropertyPath().toString()); 108 } 109 } 110 111 @Test 112 public void testSerDe() throws IOException { 113 User u = new User(); 114 u.setKey(100); 115 u.setUserName("be"); 116 u.setEmail("betty@gbif.org"); 117 u.setFirstName("Betty"); 118 u.setLastName("Ford"); 119 SerdeTestUtils.testSerDe(u, User.class); 120 } 121 122 @Test 123 public void testSerDeSettings() throws IOException { 124 User u = new User(); 125 u.setKey(100); 126 u.setUserName("be"); 127 u.setEmail("betty@gbif.org"); 128 u.setFirstName("Betty"); 129 u.setLastName("Ford"); 130 Map<String, String> settings = new HashMap<>(); 131 settings.put("name", "tim"); 132 u.setSettings(settings); 133 SerdeTestUtils.testSerDe(u, User.class); 134 } 135 136 @Test 137 public void testName() { 138 User u = new User(); 139 u.setKey(100); 140 u.setUserName("be"); 141 u.setEmail("betty@gbif.org"); 142 u.setFirstName("Betty"); 143 u.setLastName("Ford"); 144 assertEquals("Betty Ford", u.getName()); 145 } 146}