/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.ext.uberfire.social.activities.client.widgets.timeline.regular.model; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import org.ext.uberfire.social.activities.model.DefaultTypes; import org.ext.uberfire.social.activities.model.SocialActivitiesEvent; import org.ext.uberfire.social.activities.model.SocialUser; import org.junit.Test; import static org.junit.Assert.*; public class RecentUpdatesModelTest { @Test public void simpleModelGeneration() { List<SocialActivitiesEvent> events = new ArrayList<SocialActivitiesEvent>(); SocialUser user = new SocialUser("user"); events.add(new SocialActivitiesEvent(user, DefaultTypes.DUMMY_EVENT, createDate(1, 1)).withLink("alias1", "file1")); events.add(new SocialActivitiesEvent(user, DefaultTypes.DUMMY_EVENT, createDate(1, 2)).withLink("alias2", "file2")); events.add(new SocialActivitiesEvent(user, DefaultTypes.DUMMY_EVENT, createDate(1, 3)).withLink("alias3", "file3")); RecentUpdatesModel model = RecentUpdatesModel.generate(events); Map<String, List<UpdateItem>> updateItems = model.getUpdateItems(); Set<String> keys = updateItems.keySet(); Iterator<String> iterator = keys.iterator(); assertEquals("alias3", iterator.next()); assertEquals("alias2", iterator.next()); assertEquals("alias1", iterator.next()); assertTrue(true); } @Test public void modelGenerationWithMoreChanges() { List<SocialActivitiesEvent> events = new ArrayList<SocialActivitiesEvent>(); SocialUser user = new SocialUser("user"); events.add(new SocialActivitiesEvent(user, DefaultTypes.DUMMY_EVENT, createDate(1, 1)).withLink("alias1", "file1")); events.add(new SocialActivitiesEvent(user, DefaultTypes.DUMMY_EVENT, createDate(1, 2)).withLink("alias2", "file2")); events.add(new SocialActivitiesEvent(user, DefaultTypes.DUMMY_EVENT, createDate(1, 3)).withLink("alias3", "file3")); events.add(new SocialActivitiesEvent(user, DefaultTypes.DUMMY_EVENT, createDate(1, 4)).withLink("alias1", "file1")); RecentUpdatesModel model = RecentUpdatesModel.generate(events); Map<String, List<UpdateItem>> updateItems = model.getUpdateItems(); Set<String> keys = updateItems.keySet(); Iterator<String> iterator = keys.iterator(); assertEquals("alias1", iterator.next()); List<UpdateItem> items = model.getUpdateItems("alias1"); assertTrue(items.size() == 2); assertEquals("alias1", items.get(0).getEvent().getLinkLabel()); assertEquals("alias1", items.get(1).getEvent().getLinkLabel()); assertEquals("alias3", iterator.next()); assertEquals("alias2", iterator.next()); assertTrue(true); } private Date createDate(int minute, int second) { Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(0); cal.set(2014, 06, 1, 1, minute, second); Date date = cal.getTime(); return date; } }