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.http.commons.api.rdf; 007 008import static com.google.common.collect.ImmutableBiMap.of; 009import static org.apache.jena.graph.NodeFactory.createURI; 010import static org.apache.jena.rdf.model.ModelFactory.createDefaultModel; 011import static org.junit.Assert.assertTrue; 012import static org.mockito.ArgumentMatchers.eq; 013import static org.mockito.Mockito.verify; 014import static org.mockito.Mockito.when; 015 016import java.util.Map; 017import javax.ws.rs.core.UriInfo; 018 019import org.fcrepo.kernel.api.RdfStream; 020import org.fcrepo.kernel.api.models.FedoraResource; 021import org.fcrepo.kernel.api.rdf.DefaultRdfStream; 022import org.junit.Before; 023import org.junit.Test; 024import org.junit.runner.RunWith; 025import org.mockito.Mock; 026import org.mockito.junit.MockitoJUnitRunner; 027import org.springframework.context.ApplicationContext; 028 029/** 030 * <p>HttpTripleUtilTest class.</p> 031 * 032 * @author awoods 033 */ 034@RunWith(MockitoJUnitRunner.class) 035public class HttpTripleUtilTest { 036 037 private HttpTripleUtil testObj; 038 039 @Mock 040 private UriInfo mockUriInfo; 041 042 @Mock 043 private UriAwareResourceModelFactory mockBean1; 044 045 @Mock 046 private UriAwareResourceModelFactory mockBean2; 047 048 @Mock 049 private ApplicationContext mockContext; 050 051 @Mock 052 private FedoraResource mockResource; 053 054 @Before 055 public void setUp() { 056 testObj = new HttpTripleUtil(); 057 testObj.setApplicationContext(mockContext); 058 } 059 060 @Test 061 public void shouldAddTriplesFromRegisteredBeans() { 062 final Map<String, UriAwareResourceModelFactory> mockBeans = of("doesnt", mockBean1, "matter", mockBean2); 063 when(mockContext.getBeansOfType(UriAwareResourceModelFactory.class)).thenReturn(mockBeans); 064 when(mockBean1.createModelForResource(eq(mockResource), eq(mockUriInfo))).thenReturn( 065 createDefaultModel()); 066 when(mockBean2.createModelForResource(eq(mockResource), eq(mockUriInfo))).thenReturn( 067 createDefaultModel()); 068 069 try (final RdfStream rdfStream = new DefaultRdfStream(createURI("info:subject"))) { 070 071 assertTrue(testObj.addHttpComponentModelsForResourceToStream(rdfStream, mockResource, mockUriInfo) 072 .count() >= 0); 073 074 verify(mockBean1).createModelForResource(eq(mockResource), eq(mockUriInfo)); 075 verify(mockBean2).createModelForResource(eq(mockResource), eq(mockUriInfo)); 076 } 077 } 078}