--- a
+++ b/recommendation-engine/src/test/java/eu/alfred/recommendation_engine/EventWeightsCalculatorTests.java
@@ -0,0 +1,93 @@
+package eu.alfred.recommendation_engine;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import eu.alfred.event_manager.model.*;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class EventWeightsCalculatorTests {
+
+ private EventWeightsCalculator eWCalc = new EventWeightsCalculator();
+ private Map<Event,Integer> initialEvents;
+ private Set<Event> eventsToBeAdded = new HashSet<Event>();
+ Event eventA = new Event();
+ Event eventB = new Event();
+ Event eventC = new Event();
+ Event eventD = new Event();
+ Event eventE = new Event();
+
+
+ @Before
+ public void setup() {
+ initialEvents = new HashMap<Event,Integer>();
+
+ eventA.setEventID("eventA");
+ eventB.setEventID("eventB");
+ eventC.setEventID("eventC");
+ eventD.setEventID("eventD");
+ eventE.setEventID("eventE");
+
+ eventsToBeAdded.add(eventA);
+ eventsToBeAdded.add(eventB);
+ eventsToBeAdded.add(eventC);
+ }
+
+ @Test
+ public void testAssignWeightsToEventsWithEmptyInitialEvents() {
+ int weightToBeAssigned = 2;
+ eWCalc.assignWeightsToEvents(initialEvents, eventsToBeAdded, weightToBeAssigned);
+
+ assertEquals(new Integer(weightToBeAssigned),initialEvents.get(eventA));
+ assertEquals(new Integer(weightToBeAssigned),initialEvents.get(eventB));
+ assertEquals(new Integer(weightToBeAssigned),initialEvents.get(eventC));
+ }
+
+ @Test
+ public void testAssignWeightsToEventsWithPresentInitialEvents() {
+ // assign initial weight to some events
+ int weightForPreExistingEvents = 3;
+ eWCalc.assignWeightsToEvents(initialEvents, eventsToBeAdded, weightForPreExistingEvents);
+
+ assertEquals(new Integer(weightForPreExistingEvents),initialEvents.get(eventA));
+ assertEquals(new Integer(weightForPreExistingEvents),initialEvents.get(eventB));
+ assertEquals(new Integer(weightForPreExistingEvents),initialEvents.get(eventC));
+
+ eventsToBeAdded.add(eventD);
+ eventsToBeAdded.add(eventE);
+
+ int weightToBeAssigned = 2;
+ eWCalc.assignWeightsToEvents(initialEvents, eventsToBeAdded, weightToBeAssigned);
+
+
+ assertEquals(new Integer(weightToBeAssigned+weightForPreExistingEvents),initialEvents.get(eventA));
+ assertEquals(new Integer(weightToBeAssigned+weightForPreExistingEvents),initialEvents.get(eventB));
+ assertEquals(new Integer(weightToBeAssigned+weightForPreExistingEvents),initialEvents.get(eventC));
+ assertEquals(new Integer(weightToBeAssigned),initialEvents.get(eventD));
+ assertEquals(new Integer(weightToBeAssigned),initialEvents.get(eventE));
+ }
+
+ @Test
+ public void testRankingBasedOnWeights() {
+
+ int weightToBeAssigned = 2;
+ eWCalc.assignWeightsToEvents(initialEvents, eventsToBeAdded, weightToBeAssigned);
+
+ Set<Event> additionalEvents = new HashSet<Event>();
+ additionalEvents.add(eventC);
+ int extraWeight = 5;
+ eWCalc.assignWeightsToEvents(initialEvents, additionalEvents, extraWeight);
+
+ List<Event> sortedEvents = eWCalc.sortByWeight(initialEvents);
+
+ assertEquals(sortedEvents.get(0),eventC);
+ }
+
+}