mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-11 23:00:59 +00:00
fixing bug 2780 by adding flag URI change handling to listener interface and CompetitorImpl setter implementation; leaderboard cache handling updated
This commit is contained in:
1 parent
6a1f3c0e17
commit
c78fc9d4e8
4 files changed
+56
-2
No files matched your search
+4
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
import com.sap.sse.common.Color;
|
||||
|
||||
public interface CompetitorChangeListener extends BoatChangeListener, NationalityChangeListener {
|
||||
@@ -8,4 +10,6 @@ public interface CompetitorChangeListener extends BoatChangeListener, Nationalit
|
||||
void nameChanged(String oldName, String newName);
|
||||
|
||||
void emailChanged(String oldEmail, String newEmail);
|
||||
|
||||
void flagImageChanged(URI oldFlagImageURI, URI newFlagImageURI);
|
||||
}
|
||||
+6
@@ -145,6 +145,12 @@ public class CompetitorImpl implements DynamicCompetitor {
|
||||
|
||||
@Override
|
||||
public void setFlagImage(URI flagImage) {
|
||||
final URI oldFlagImage = this.flagImage;
|
||||
this.flagImage = flagImage;
|
||||
if (!Util.equalsWithNull(oldFlagImage, flagImage)) {
|
||||
for (CompetitorChangeListener listener : getListeners()) {
|
||||
listener.flagImageChanged(oldFlagImage, flagImage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+40
-1
@@ -7,6 +7,8 @@ import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -45,6 +47,12 @@ public class CompetitorListenerTest extends AbstractSerializationTest {
|
||||
private Color newColor;
|
||||
private DynamicCompetitor competitor;
|
||||
private DomainFactoryImpl baseDomainFactory;
|
||||
private boolean emailChanged;
|
||||
private String oldEmail;
|
||||
private String newEmail;
|
||||
private boolean flagImageChanged;
|
||||
private URI oldFlagImageURL;
|
||||
private URI newFlagImageURL;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -63,6 +71,12 @@ public class CompetitorListenerTest extends AbstractSerializationTest {
|
||||
colorChanged = false;
|
||||
oldColor = null;
|
||||
newColor = null;
|
||||
emailChanged = false;
|
||||
oldEmail = null;
|
||||
newEmail = null;
|
||||
flagImageChanged = false;
|
||||
oldFlagImageURL = null;
|
||||
newFlagImageURL = null;
|
||||
listener = new CompetitorChangeListener() {
|
||||
private static final long serialVersionUID = 4581029778988240209L;
|
||||
|
||||
@@ -97,7 +111,16 @@ public class CompetitorListenerTest extends AbstractSerializationTest {
|
||||
|
||||
@Override
|
||||
public void emailChanged(String oldEmail, String newEmail) {
|
||||
//TODO
|
||||
emailChanged = true;
|
||||
CompetitorListenerTest.this.oldEmail = oldEmail;
|
||||
CompetitorListenerTest.this.newEmail = newEmail;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void flagImageChanged(URI oldFlagImageURL, URI newFlagImageURL) {
|
||||
flagImageChanged = true;
|
||||
CompetitorListenerTest.this.oldFlagImageURL = oldFlagImageURL;
|
||||
CompetitorListenerTest.this.newFlagImageURL = newFlagImageURL;
|
||||
}
|
||||
};
|
||||
competitor.addCompetitorChangeListener(listener);
|
||||
@@ -126,6 +149,22 @@ public class CompetitorListenerTest extends AbstractSerializationTest {
|
||||
assertFalse(nationalityChanged);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFlagChange() throws URISyntaxException {
|
||||
competitor.setFlagImage(new URI("http://www.something.de/pic.png"));
|
||||
assertTrue(flagImageChanged);
|
||||
assertNull(oldFlagImageURL);
|
||||
assertEquals(new URI("http://www.something.de/pic.png"), newFlagImageURL);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmailChange() throws URISyntaxException {
|
||||
competitor.setEmail("hasso.plattner@sap.com");
|
||||
assertTrue(emailChanged);
|
||||
assertNull(oldEmail);
|
||||
assertEquals("hasso.plattner@sap.com", newEmail);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleCompetitorListenerPatternForSailId() {
|
||||
final String myOldSailId = competitor.getBoat().getSailID();
|
||||
|
||||
+6
-1
@@ -1,5 +1,6 @@
|
||||
package com.sap.sailing.domain.leaderboard;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
@@ -121,7 +122,11 @@ public class LeaderboardCacheManager {
|
||||
public void emailChanged(String oldEmail, String newEmail) {
|
||||
//ignore (email not shown in leaderboard)
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void flagImageChanged(URI oldFlagImageURL, URI newFlagImageURL) {
|
||||
removeFromCache(leaderboard);
|
||||
}
|
||||
}
|
||||
|
||||
private class CacheInvalidationUponScoreCorrectionListener implements ScoreCorrectionListener {
|
||||
|
||||
Reference in new issue
Block a user