/*
* 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.
* You may obtain a copy of the License at
*
* 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.persistence;
import java.util.ArrayList;
import java.util.List;
import org.ext.uberfire.social.activities.model.SocialActivitiesEvent;
import org.ext.uberfire.social.activities.model.SocialEventType;
import org.ext.uberfire.social.activities.model.SocialUser;
import org.ext.uberfire.social.activities.security.SocialSecurityConstraintsManager;
import org.junit.Before;
import org.junit.Test;
import org.uberfire.io.IOService;
import org.uberfire.java.nio.file.Path;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.*;
public class SocialTimelineCachePersistenceTest {
private SocialTimelineCachePersistence socialTimelineCachePersistence;
private SocialSecurityConstraintsManager socialSecurityConstraintsManager;
private List<SocialActivitiesEvent> oneEventList = new ArrayList<SocialActivitiesEvent>();
@Before
public void setUp() throws Exception {
socialTimelineCachePersistence = createFakeSocialTimelineCachePersistence();
this.socialSecurityConstraintsManager = mock(SocialSecurityConstraintsManager.class);
socialTimelineCachePersistence.socialSecurityConstraintsManager = socialSecurityConstraintsManager;
oneEventList.add(new SocialActivitiesEvent());
}
@Test
public void getLastEventsShouldCallSocialConstraintsManagerTest() throws Exception {
final SocialEventType type = mock(SocialEventType.class);
socialTimelineCachePersistence.typeEventsTimelineCache.put(type,
oneEventList);
socialTimelineCachePersistence.typeEventsFreshEvents.put(type,
oneEventList);
socialTimelineCachePersistence.getLastEvents(type);
verify(socialSecurityConstraintsManager).applyConstraints(any(List.class));
}
@Test
public void getRecentEventsShouldCallSocialConstraintsManagerTest() throws Exception {
socialTimelineCachePersistence.getRecentEvents(mock(SocialEventType.class));
verify(socialSecurityConstraintsManager).applyConstraints(any(List.class));
}
@Test
public void getLastUserEventsShouldCallSocialConstraintsManagerTest() throws Exception {
final SocialUser user = new SocialUser("dora");
socialTimelineCachePersistence.userEventsTimelineCache.put(user.getUserName(),
oneEventList);
socialTimelineCachePersistence.userEventsTimelineFreshEvents.put(user.getUserName(),
oneEventList);
socialTimelineCachePersistence.getLastEvents(user);
verify(socialSecurityConstraintsManager).applyConstraints(any(List.class));
}
@Test
public void getUserRecentEventsShouldCallSocialConstraintsManagerTest() throws Exception {
final SocialUser user = new SocialUser("dora");
socialTimelineCachePersistence.userEventsTimelineCache.put(user.getUserName(),
oneEventList);
socialTimelineCachePersistence.userEventsTimelineFreshEvents.put(user.getUserName(),
oneEventList);
socialTimelineCachePersistence.getRecentEvents(user);
verify(socialSecurityConstraintsManager).applyConstraints(any(List.class));
}
@Test
public void createOrGetTimelineShouldCallSocialConstraintsManagerTest() throws Exception {
socialTimelineCachePersistence.createOrGetTimeline(mock(Path.class));
verify(socialSecurityConstraintsManager).applyConstraints(any(List.class));
}
@Test
public void getTimelineShouldCallSocialConstraintsManagerTest() throws Exception {
socialTimelineCachePersistence.getTimeline(mock(Path.class),
"");
verify(socialSecurityConstraintsManager).applyConstraints(any(List.class));
}
private SocialTimelineCachePersistence createFakeSocialTimelineCachePersistence() {
return new SocialTimelineCachePersistence() {
@Override
public void persist(SocialActivitiesEvent event) {
}
@Override
public void persist(SocialUser user,
SocialActivitiesEvent event) {
}
@Override
public void saveAllEvents() {
}
@Override
IOService getIoService() {
final IOService mock = mock(IOService.class);
when(mock.exists(any(Path.class))).thenReturn(false);
return mock;
}
@Override
void createPersistenceStructure(Path timelineDir) {
}
@Override
String getItemsMetadata(Path timeLineDir,
String originalFilename) {
return "-1";
}
@Override
SocialFile createSocialFile(Path fileTimeline) {
return mock(SocialFile.class);
}
};
}
}