From 5869f77b4166e3a5aa9b1a59e13abaa7081e786f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Galland?= Date: Fri, 13 Feb 2015 22:23:01 +0100 Subject: [PATCH] [lang][core] Add utility functions for the Event element. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit see #168 Signed-off-by: Stéphane Galland --- .../src/io/sarl/lang/core/Event.java | 25 ++++++++++ .../sarl/lang/core/tests/core/EventTest.java | 49 +++++++++++++++---- 2 files changed, 64 insertions(+), 10 deletions(-) diff --git a/plugins/io.sarl.lang.core/src/io/sarl/lang/core/Event.java b/plugins/io.sarl.lang.core/src/io/sarl/lang/core/Event.java index 7169548b86..707091890e 100644 --- a/plugins/io.sarl.lang.core/src/io/sarl/lang/core/Event.java +++ b/plugins/io.sarl.lang.core/src/io/sarl/lang/core/Event.java @@ -21,6 +21,7 @@ package io.sarl.lang.core; import java.io.Serializable; +import java.util.UUID; /** * Elementary interaction unit inside an {@link EventSpace} An event is the @@ -114,4 +115,28 @@ public String toString() { + "]"; //$NON-NLS-1$ } + /** Replies if the event was emitted by an entity with the given address. + * + * @param address - the address of the emitter to test. + * @return true if the given event was emitted by + * an entity with the given address; otherwise false. + * @since 0.2 + */ + public boolean isFrom(Address address) { + return (address != null) && address.equals(getSource()); + } + + /** Replies if the event was emitted by an entity with the given identifier. + * + * @param entityId - the identifier of the emitter to test. + * @return true if the given event was emitted by + * an entity with the given identifier; otherwise false. + * @since 0.2 + */ + public boolean isFrom(UUID entityId) { + Address source = getSource(); + return (entityId != null) && (source != null) + && entityId.equals(source.getUUID()); + } + } diff --git a/tests/io.sarl.lang.core.tests/src/io/sarl/lang/core/tests/core/EventTest.java b/tests/io.sarl.lang.core.tests/src/io/sarl/lang/core/tests/core/EventTest.java index 549ec41c1d..e1f52fee06 100644 --- a/tests/io.sarl.lang.core.tests/src/io/sarl/lang/core/tests/core/EventTest.java +++ b/tests/io.sarl.lang.core.tests/src/io/sarl/lang/core/tests/core/EventTest.java @@ -20,8 +20,11 @@ */ package io.sarl.lang.core.tests.core; +import java.util.UUID; + import io.sarl.lang.core.Address; import io.sarl.lang.core.Event; +import io.sarl.lang.core.SpaceID; import io.sarl.tests.api.AbstractSarlTest; import io.sarl.tests.api.Nullable; @@ -38,6 +41,7 @@ * @mavengroupid $GroupId$ * @mavenartifactid $ArtifactId$ */ +@SuppressWarnings("all") public class EventTest extends AbstractSarlTest { @Nullable @@ -50,15 +54,17 @@ private static Event mockEvent() { }; } - /** - */ @Before public void setUp() { this.event = mockEvent(); } + + private static Address mockAddress(UUID contextId, UUID spaceId, UUID agentID) { + SpaceID sid = new SpaceID(contextId, spaceId, null); + Address adr = new Address(Mockito.spy(sid), agentID); + return Mockito.spy(adr); + } - /** - */ @Test public void getSource() { assertNull(this.event.getSource()); @@ -67,8 +73,6 @@ public void getSource() { assertSame(adr, this.event.getSource()); } - /** - */ @Test public void setSource() { assertNull(this.event.getSource()); @@ -77,8 +81,6 @@ public void setSource() { assertSame(adr, this.event.getSource()); } - /** - */ @Test public void equals() { Event e; @@ -101,8 +103,6 @@ public void equals() { assertFalse(this.event.equals(e)); } - /** - */ @Test public void testHashCode() { Event e; @@ -120,5 +120,34 @@ public void testHashCode() { e.setSource(adr2); assertNotEquals(this.event.hashCode(), e.hashCode()); } + + @Test + public void isFromAddress() { + Address adr = mockAddress(UUID.randomUUID(), UUID.randomUUID(), UUID.randomUUID()); + this.event.setSource(adr); + + Address adr0 = Mockito.mock(Address.class); + Address adr1 = Mockito.mock(Address.class); + + assertFalse(this.event.isFrom((Address) null)); + assertTrue(this.event.isFrom(adr)); + assertFalse(this.event.isFrom(adr0)); + assertFalse(this.event.isFrom(adr1)); + } + + @Test + public void isFromUUID() { + UUID id = UUID.randomUUID(); + Address adr = mockAddress(UUID.randomUUID(), UUID.randomUUID(), id); + this.event.setSource(adr); + + UUID id0 = UUID.randomUUID(); + UUID id1 = UUID.randomUUID(); + + assertFalse(this.event.isFrom((UUID) null)); + assertTrue(this.event.isFrom(id)); + assertFalse(this.event.isFrom(id0)); + assertFalse(this.event.isFrom(id1)); + } }