Project

General

Profile

« Previous | Next » 

Revision 12411f3e

Added by Andreas Müller over 3 years ago

ref #9225 fix ValidationTest / 3rd Level duplicate validation for taxon names

View differences:

cdmlib-services/src/main/java/eu/etaxonomy/cdm/validation/constraint/NoDuplicateNamesValidator.java
10 10

  
11 11
import java.util.HashSet;
12 12
import java.util.List;
13
import java.util.Objects;
13 14
import java.util.Set;
15
import java.util.stream.Collectors;
14 16

  
15 17
import javax.validation.ConstraintValidator;
16 18
import javax.validation.ConstraintValidatorContext;
......
33 35
		includeProperties.add("specificEpithet");
34 36
		includeProperties.add("infraSpecificEpithet");
35 37
		includeProperties.add("rank");
36
        includeProperties.add("nomenclaturalSource");   //TODO still correct after #6851?
37
//		includeProperties.add("nomenclaturalSource.citation");   //TODO still correct after #6851?
38
//		includeProperties.add("nomenclaturalSource.citationMicroReference"); //TODO still correct after #6851?
38
//		includeProperties.add("nomenclaturalSource.citation");   //handled in method now since #6581
39
//		includeProperties.add("nomenclaturalSource.citationMicroReference"); //handled in method now since #6581
39 40
		includeProperties.add("basionymAuthorship");
40 41
		includeProperties.add("exBasionymAuthorship");
41 42
		includeProperties.add("combinationAuthorship");
......
57 58
		if(name == null) {
58 59
			return true;
59 60
		} else {
60
			List<TaxonName> matchingNonViralNames = nameService.list(name, includeProperties, null, null, null, null);
61
			if(matchingNonViralNames.size() > 0) {
62
				if(matchingNonViralNames.size() == 1 && matchingNonViralNames.get(0).equals(name)) {
61
			List<TaxonName> matchingNames = nameService.list(name, includeProperties, null, null, null, null);
62
			matchingNames = matchingNames.stream().filter(existing->
63
			           Objects.equals(existing.getNomenclaturalReference(),name.getNomenclaturalReference())
64
			        && Objects.equals(existing.getNomenclaturalMicroReference(), name.getNomenclaturalMicroReference())
65
			        && !existing.equals(name)
66
			    ).collect(Collectors.toList());
67

  
68
			if(matchingNames.size() > 0) {
69
			    if(matchingNames.size() == 1 && matchingNames.get(0).equals(name)) {
63 70
					return true;
64 71
				} else {
65 72
			        return false;
cdmlib-services/src/test/java/eu/etaxonomy/cdm/validation/ValidationTest.java
22 22

  
23 23
import org.apache.log4j.Logger;
24 24
import org.junit.Before;
25
import org.junit.Ignore;
26 25
import org.junit.Test;
27 26
import org.unitils.dbunit.annotation.DataSet;
28 27
import org.unitils.spring.annotation.SpringBeanByType;
......
150 149
	 */
151 150
	@Test
152 151
	@DataSet
153
	@Ignore  //preliminary
154 152
	public final void testLevel3ValidationWithInValidName() {
155 153
		name.setGenusOrUninomial("Abies");
156 154
		name.setSpecificEpithet("alba");

Also available in: Unified diff