Switch to side-by-side view

--- a
+++ b/recommendation-engine/src/test/java/eu/alfred/recommendation_engine/FriendsBasedEventsFinderTests.java
@@ -0,0 +1,219 @@
+package eu.alfred.recommendation_engine;
+
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import eu.alfred.personalization_manager.model.*;
+import org.junit.Before;
+import org.junit.Test;
+
+import eu.alfred.event_manager.client.EventManagerClient;
+import eu.alfred.event_manager.model.AnalyticsParameters;
+import eu.alfred.event_manager.model.Event;
+import eu.alfred.event_manager.model.Organizer;
+import eu.alfred.event_manager.model.Tickets;
+import eu.alfred.event_manager.model.Venue;
+import eu.alfred.personalization_manager.client.PersonalProfileClient;
+import eu.alfred.personalization_manager.client.UserContactsClient;
+
+import static org.junit.Assert.*;
+
+public class FriendsBasedEventsFinderTests {
+
+	private Event testEventA = new Event();
+	private EventManagerClient emClient = new EventManagerClient();
+	private String eventAID;
+	private Event event1Created; 
+	private Date d;
+
+	// TestUser
+	private UserProfile testUser = new UserProfile();
+	private UserProfile createdTestUser = new UserProfile();
+	private String testUserId;
+
+	// Contact 1
+	private UserProfile user1 = new UserProfile();
+	private UserProfile createdUser1 = new UserProfile();
+	private String user1Id;
+
+	// Contact 2
+	private UserProfile user2 = new UserProfile();
+	private UserProfile createdUser2 = new UserProfile();
+	private String user2Id;
+
+	// Contact 3
+	private UserProfile user3 = new UserProfile();
+	private UserProfile createdUser3 = new UserProfile();
+	private String user3Id;
+
+	// Contact 4
+	private UserProfile user4 = new UserProfile();
+	private UserProfile createdUser4 = new UserProfile();
+	private String user4Id;
+
+	private PersonalProfileClient ppClient = new PersonalProfileClient();
+	private UserContactsClient usClient = new UserContactsClient();
+	private FriendsBasedEventsFinder friendsBasedFinder = new FriendsBasedEventsFinder();
+	
+	@Before
+	public void setup() {
+		Calendar cal = Calendar.getInstance();
+		cal.add(Calendar.DAY_OF_YEAR, 2);
+		d = cal.getTime(); 
+		
+		// Create a user and another user as a friend contact
+		testUser.setAlfredUserName("swen");
+		testUser.setFirstName("Swen");
+		testUser.setLastName("Papst");
+		Address testUserAddress = new Address();
+		testUserAddress.setCity("Munich");
+		testUser.setResidentialAddress(testUserAddress);
+		testUser.setInterests(new String[] {"music","opera"});
+		testUser.setDateOfBirth(new Date(Long.parseLong("-630374400000")));
+		testUser.setMobilePhone("03591 23 12 27");
+		testUser.setEmail("SwenPapst@cuvox.de");
+		testUser.setMobilityLevel(MobilityLevel.HEALTHY);
+		testUserId = ppClient.createUserProfile(testUser);
+		createdTestUser = (UserProfile)ppClient.retrieveUserProfile(testUserId).get(0);
+
+
+		// Contact 1
+
+		user1.setAlfredUserName("peter");
+		user1.setFirstName("Peter");
+		user1.setLastName("Merz");
+		user1.setMobilePhone("00491727759581");
+		user1.setEmail("Peter.Merz@tiekinetix.com");
+		Address user1Address = new Address();
+		testUserAddress.setCity("Munich");
+		user1.setResidentialAddress(user1Address);
+		user1.setInterests(new String[] {"music","opera"});
+		user1.setDateOfBirth(new Date(Long.parseLong("-535680000000")));
+		user1Id = ppClient.createUserProfile(user1);
+		createdUser1 = (UserProfile)ppClient.retrieveUserProfile(user1Id).get(0);
+
+		Contact userContact = new Contact();
+		userContact.setContactsAlfredId(user1Id);
+		userContact.setAlfredUserName("peter");
+		userContact.setFirstName("Peter");
+		userContact.setLastName("Merz");
+		userContact.setPhone("00491727759581");
+		userContact.setEmail("Peter.Merz@tiekinetix.com");
+		userContact.setResidentialAddress(user1Address);
+		userContact.setRelationToUser(new Relation[] {Relation.FRIEND});
+		usClient.createUserContact(testUserId, userContact);
+
+		// Contact 2
+		user2.setAlfredUserName("deniz");
+		user2.setFirstName("Deniz");
+		user2.setLastName("Coskun");
+		user2.setMobilePhone("00491771708328");
+		user2.setEmail("Deniz.Coskun@tiekinetix.com");
+		Address user2Address = new Address();
+		testUserAddress.setCity("Munich");
+		user2.setResidentialAddress(user2Address);
+		user2.setInterests(new String[] {"music","opera"});
+		user2.setDateOfBirth(new Date(Long.parseLong("-535680000000")));
+		user2Id = ppClient.createUserProfile(user2);
+		createdUser2 = (UserProfile)ppClient.retrieveUserProfile(user2Id).get(0);
+
+		Contact userContact2 = new Contact();
+		userContact2.setContactsAlfredId(user2Id);
+		userContact2.setAlfredUserName("deniz");
+		userContact2.setFirstName("Deniz");
+		userContact2.setLastName("Coskun");
+		userContact2.setPhone("00491726391814");
+		userContact2.setEmail("Deniz.Coskun@tiekinetix.com");
+		userContact2.setResidentialAddress(user2Address);
+		userContact2.setRelationToUser(new Relation[] {Relation.FRIEND});
+		usClient.createUserContact(testUserId, userContact2);
+
+		// Contact 3
+
+		user3.setAlfredUserName("lill");
+		user3.setFirstName("Robert");
+		user3.setLastName("Lill");
+		user3.setMobilePhone("004915209119016");
+		user3.setEmail("Robert.Lill@tiekinetix.com");
+		Address user3Address = new Address();
+		testUserAddress.setCity("Munich");
+		user3.setResidentialAddress(user3Address);
+		user3.setInterests(new String[] {"music","opera"});
+		user3.setDateOfBirth(new Date(Long.parseLong("-535680000000")));
+		user3Id = ppClient.createUserProfile(user3);
+		createdUser3 = (UserProfile)ppClient.retrieveUserProfile(user3Id).get(0);
+
+		Contact userContact3 = new Contact();
+		userContact3.setContactsAlfredId(user3Id);
+		userContact3.setAlfredUserName("lill");
+		userContact3.setFirstName("Robert");
+		userContact3.setLastName("Lill");
+		userContact3.setPhone("004915209119016");
+		userContact3.setEmail("Robert.Lill@tiekinetix.com");
+		userContact3.setResidentialAddress(user3Address);
+		userContact3.setRelationToUser(new Relation[] {Relation.FRIEND});
+		usClient.createUserContact(testUserId, userContact3);
+
+		// Contact 4
+		user4.setAlfredUserName("arian");
+		user4.setFirstName("Arian");
+		user4.setLastName("Kuschki");
+		user4.setMobilePhone("004915222619029");
+		user4.setEmail("Arian.Kuschki@tiekinetix.com");
+		Address user4Address = new Address();
+		testUserAddress.setCity("Munich");
+		user4.setResidentialAddress(user4Address);
+		user4.setInterests(new String[] {"music","opera"});
+		user4.setDateOfBirth(new Date(Long.parseLong("-535680000000")));
+		user4Id = ppClient.createUserProfile(user4);
+		createdUser4 = (UserProfile)ppClient.retrieveUserProfile(user4Id).get(0);
+
+		Contact userContact4 = new Contact();
+		userContact4.setContactsAlfredId(user4Id);
+		userContact4.setAlfredUserName("arian");
+		userContact4.setFirstName("Arian");
+		userContact4.setLastName("Kuschki");
+		userContact4.setPhone("004915222619029");
+		userContact4.setEmail("Arian.Kuschki@tiekinetix.com");
+		userContact4.setResidentialAddress(user4Address);
+		userContact4.setRelationToUser(new Relation[] {Relation.FRIEND});
+		usClient.createUserContact(testUserId, userContact4);
+
+		
+		// create some events
+		eventAID = "1_event-" + UUID.randomUUID().toString();
+		testEventA.setEventID(eventAID); 
+		testEventA.setTags(Arrays.asList(new String[] {"music","opera"}));
+		testEventA.setCategories(Arrays.asList(new String[] {"N.A."}));
+		Venue venueA = new Venue();
+		venueA.setCity("Utrecht");
+		testEventA.setVenue(venueA);
+		testEventA.setStart_date(d);
+		testEventA.setEnd_date(d); 
+		Organizer tasos = new Organizer();
+		tasos.setName("Tasos");
+		testEventA.setOrganizer(tasos);
+		testEventA.setStatus("Live"); 
+		testEventA.setTickets(Arrays.asList(new Tickets[] {}));
+		event1Created = emClient.addEvent(testEventA);
+		
+		// add friends as participants to the events
+		emClient.addParticipant(event1Created.getEventID(), user1Id);
+		emClient.addParticipant(event1Created.getEventID(), user2Id);
+		emClient.addParticipant(event1Created.getEventID(), user3Id);
+		emClient.addParticipant(event1Created.getEventID(), user4Id);
+	}
+	
+	@Test
+	public void testFindingEventsWithFriendsParticipating() {
+		try { 
+			friendsBasedFinder.getEventsMyFriendsAlsoJoin(createdTestUser.getId());
+			assertTrue(friendsBasedFinder.getEventsMyFriendsAlsoJoin(createdTestUser.getId()).contains(event1Created));
+		} catch (Exception e) { 
+			e.printStackTrace();
+		}		
+	}
+}