From 7b26f183ca246eac0a49dd92a9623b482c595e39 Mon Sep 17 00:00:00 2001
From: Andrea Burattin <andrea.burattin@gmail.com>
Date: Sat, 26 Mar 2022 10:45:20 +0100
Subject: [PATCH] Missing actual tests

---
 src/test/java/beamline/tests/EventTest.java | 104 ++++++++++++++++++++
 1 file changed, 104 insertions(+)
 create mode 100644 src/test/java/beamline/tests/EventTest.java

diff --git a/src/test/java/beamline/tests/EventTest.java b/src/test/java/beamline/tests/EventTest.java
new file mode 100644
index 0000000..923ae51
--- /dev/null
+++ b/src/test/java/beamline/tests/EventTest.java
@@ -0,0 +1,104 @@
+package beamline.tests;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.Date;
+import java.util.Set;
+import java.util.UUID;
+
+import org.apache.commons.lang3.tuple.Pair;
+import org.deckfour.xes.model.impl.XAttributeBooleanImpl;
+import org.deckfour.xes.model.impl.XAttributeContinuousImpl;
+import org.deckfour.xes.model.impl.XAttributeDiscreteImpl;
+import org.deckfour.xes.model.impl.XAttributeLiteralImpl;
+import org.deckfour.xes.model.impl.XAttributeTimestampImpl;
+import org.junit.jupiter.api.Test;
+
+import beamline.events.BEvent;
+import beamline.exceptions.EventException;
+
+public class EventTest {
+
+	String processName = UUID.randomUUID().toString();
+	String traceName = UUID.randomUUID().toString();
+	String eventName = UUID.randomUUID().toString();
+	Date eventDate = new Date();
+	
+	@Test
+	public void event_creation() throws EventException {
+		assertThrows(EventException.class, () -> BEvent.create("", "", null));
+		assertThrows(EventException.class, () -> BEvent.create("", null, ""));
+		assertThrows(EventException.class, () -> BEvent.create(null, "", ""));
+		
+		BEvent e = BEvent.create(processName, traceName, eventName, eventDate, Set.of(Pair.of("a1", "v1")));
+		assertEquals(e.getEventAttributes().get("a1"), "v1");
+	}
+	
+	@Test
+	public void event_names() throws EventException {
+		BEvent e = BEvent.create(processName, traceName, eventName);
+		assertEquals(processName, e.getProcessName());
+		assertEquals(traceName, e.getTraceName());
+		assertEquals(eventName, e.getEventName());
+		
+		Date eventDate = new Date();
+		BEvent e2 = BEvent.create(processName, traceName, eventName, eventDate);
+		assertEquals(eventDate, e2.getEventTime());
+	}
+	
+	@Test
+	public void test_equals() throws EventException {
+		BEvent e = BEvent.create(processName, traceName, eventName);
+		e.setTimestamp(null);
+		BEvent e2 = BEvent.create(processName, traceName, eventName, eventDate);
+		BEvent e3 = BEvent.create(processName, traceName, eventName, eventDate);
+
+		assertEquals(e2, e3);
+		assertThat(e2).hasSameHashCodeAs(e3);
+		
+		assertEquals(0, e2.compareTo(e3));
+		assertEquals(0, e.compareTo(e3));
+		
+		assertThat(e).isEqualTo(e).isNotEqualTo(null).isNotEqualTo(eventDate);
+	}
+	
+	@Test
+	public void event_attributes() throws EventException {
+		BEvent e = BEvent.create(processName, traceName, eventName);
+		e.setProcessAttribute("pa", "v1");
+		e.setTraceAttribute("ta", "v2");
+		e.setEventAttribute("ea", "v3");
+		
+		assertEquals("v1", e.getProcessAttributes().get("pa"));
+		assertEquals("v2", e.getTraceAttributes().get("ta"));
+		assertEquals("v3", e.getEventAttributes().get("ea"));
+	}
+	
+	@Test
+	public void event_attributes_xattributable() throws EventException {
+		Date date = new Date();
+		BEvent e = BEvent.create(processName, traceName, eventName);
+		e.setProcessAttribute("pa", new XAttributeLiteralImpl("pa", "v1"));
+		e.setTraceAttribute("ta", new XAttributeBooleanImpl("ta", false));
+		e.setEventAttribute("ea", new XAttributeDiscreteImpl("ea", 42));
+		e.setEventAttribute("ea2", new XAttributeContinuousImpl("ea2", 3.14));
+		e.setEventAttribute("ea3", new XAttributeTimestampImpl("ea3", date));
+		
+		assertEquals(e.getProcessAttributes().get("pa"), "v1");
+		assertEquals(e.getTraceAttributes().get("ta"), false);
+		assertEquals(e.getEventAttributes().get("ea"), 42l);
+		assertEquals(e.getEventAttributes().get("ea2"), 3.14);
+		assertEquals(e.getEventAttributes().get("ea3"), date);
+	}
+	
+	@Test
+	public void event_to_string() throws EventException {
+		BEvent e = BEvent.create(processName, traceName, eventName, eventDate);
+		assertEquals(
+			"{concept:name=" + processName +"} - " +
+			"{concept:name=" + traceName + "} - " +
+			"{concept:name=" + eventName + ", time:timestamp=" + eventDate.toString() + "}", e.toString());
+	}
+}
-- 
GitLab