Skip to content

Commit

Permalink
Ort.hashcode repariert
Browse files Browse the repository at this point in the history
  • Loading branch information
oboehm committed Feb 18, 2019
1 parent 834341e commit 01697b7
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
12 changes: 11 additions & 1 deletion src/main/java/de/jfachwert/post/Ort.java
Expand Up @@ -196,9 +196,19 @@ public boolean equalsExact(Ort other) {
return Objects.equals(this.plz, other.plz) && this.name.equals(other.name);
}

/**
* Da die PLZ optional ist, kann die PLZ nicht fuer den Hashcode
* herangezogen werden. Und auch beim Ort wird es schwierig, da er
* unterschiedlich geschrieben werden kann (mit Umlaute oder ohne
* Umlaute). Fuer den Hashcode wird daher ausgegangen, dass der
* erste Buchstabe auch bei unterschiedlicher Schreibweise immer
* gleich ist.
*
* @return hashcode
*/
@Override
public int hashCode() {
return Objects.hashCode(plz);
return Character.toUpperCase(normalize(this.name).charAt(0));
}

/**
Expand Down
9 changes: 4 additions & 5 deletions src/test/java/de/jfachwert/post/OrtTest.java
Expand Up @@ -17,15 +17,13 @@
*/
package de.jfachwert.post;

import de.jfachwert.FachwertTest;
import de.jfachwert.Fachwert;
import de.jfachwert.FachwertTest;
import org.junit.Test;
import patterntesting.runtime.junit.ObjectTester;

import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.not;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.*;

/**
* Unit-Tests fuer die Ort-Klasse.
Expand Down Expand Up @@ -92,7 +90,8 @@ public void testEqualsPLZ() {
public void testEqualsOrt() {
Ort neustadtHarz = new Ort(new PLZ("99762"), "Neustadt");
Ort neustadt = new Ort("Neustadt");
assertThat(neustadt, equalTo(neustadtHarz));
ObjectTester.assertEquals(neustadt, neustadtHarz);
assertFalse(neustadt.equalsExact(neustadtHarz));
}

/**
Expand Down

0 comments on commit 01697b7

Please sign in to comment.