001/* 002 * The contents of this file are subject to the license and copyright 003 * detailed in the LICENSE and NOTICE files at the root of the source 004 * tree. 005 */ 006package org.fcrepo.kernel.impl.models; 007 008import static org.junit.Assert.assertEquals; 009import static org.junit.Assert.assertTrue; 010import static org.mockito.Mockito.mock; 011import static org.mockito.Mockito.when; 012 013import java.util.UUID; 014import java.util.stream.Collectors; 015import java.util.stream.Stream; 016 017import org.fcrepo.kernel.api.Transaction; 018import org.fcrepo.kernel.api.identifiers.FedoraId; 019import org.fcrepo.kernel.api.models.Binary; 020import org.fcrepo.kernel.api.models.Container; 021import org.fcrepo.kernel.api.models.ResourceFactory; 022import org.fcrepo.persistence.api.PersistentStorageSessionManager; 023import org.junit.Before; 024import org.junit.Test; 025import org.junit.runner.RunWith; 026import org.mockito.Mock; 027import org.mockito.MockitoAnnotations; 028import org.springframework.test.context.ContextConfiguration; 029import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 030 031/** 032 * @author bbpennel 033 */ 034@RunWith(SpringJUnit4ClassRunner.class) 035@ContextConfiguration("/containmentIndexTest.xml") 036public class ContainerImplTest { 037 @Mock 038 private PersistentStorageSessionManager sessionManager; 039 @Mock 040 private ResourceFactory resourceFactory; 041 @Mock 042 private Transaction transaction; 043 044 private final static String TX_ID = "transacted"; 045 046 private FedoraId fedoraId; 047 048 @Before 049 public void setup() throws Exception { 050 MockitoAnnotations.openMocks(this); 051 when(transaction.getId()).thenReturn(UUID.randomUUID().toString()); 052 when(transaction.isShortLived()).thenReturn(true); 053 fedoraId = FedoraId.create(UUID.randomUUID().toString()); 054 } 055 056 @Test 057 public void getChildren_WithChildren() { 058 final var child1 = mock(Container.class); 059 final var child2 = mock(Binary.class); 060 final var childrenStream = Stream.of(child1, child2); 061 062 when(resourceFactory.getChildren(transaction, fedoraId)).thenReturn(childrenStream); 063 064 final Container container = new ContainerImpl(fedoraId, transaction, sessionManager, resourceFactory, null); 065 066 final var resultStream = container.getChildren(); 067 final var childrenList = resultStream.collect(Collectors.toList()); 068 assertEquals(2, childrenList.size()); 069 070 assertTrue(childrenList.stream().anyMatch(c -> c instanceof Container)); 071 assertTrue(childrenList.stream().anyMatch(c -> c instanceof Binary)); 072 } 073}