Switch to side-by-side view

--- 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);
+	}
+	
+}