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.operations; 007 008import static org.junit.Assert.assertEquals; 009import static org.mockito.Mockito.when; 010 011import org.apache.commons.io.IOUtils; 012 013import org.fcrepo.kernel.api.Transaction; 014import org.fcrepo.kernel.api.identifiers.FedoraId; 015import org.fcrepo.kernel.api.operations.NonRdfSourceOperationBuilder; 016import org.fcrepo.kernel.api.operations.NonRdfSourceOperationFactory; 017import org.junit.Before; 018import org.junit.Test; 019import org.junit.runner.RunWith; 020import org.mockito.Mock; 021import org.mockito.junit.MockitoJUnitRunner; 022 023import java.io.InputStream; 024import java.net.URI; 025import java.util.UUID; 026 027/** 028 * @author bseeger 029 */ 030@RunWith(MockitoJUnitRunner.Silent.class) 031public class NonRdfSourceOperationFactoryImplTest { 032 033 private NonRdfSourceOperationFactory factory; 034 035 private FedoraId randomId; 036 037 @Mock 038 private Transaction transaction; 039 040 @Before 041 public void setUp() throws Exception { 042 when(transaction.getId()).thenReturn("tx-123"); 043 factory = new NonRdfSourceOperationFactoryImpl(); 044 randomId = FedoraId.create(UUID.randomUUID().toString()); 045 } 046 047 @Test 048 public void testCreateInternalBuilder() throws Exception { 049 final InputStream stream = IOUtils.toInputStream("This is some test data", "UTF-8"); 050 final NonRdfSourceOperationBuilder builder = factory.createInternalBinaryBuilder(transaction, randomId, stream); 051 assertEquals(CreateNonRdfSourceOperationBuilderImpl.class, builder.getClass()); 052 } 053 054 @Test 055 public void testCreateExternalBuilder() { 056 final URI externalURI = URI.create("http://example.com/some/location"); 057 final NonRdfSourceOperationBuilder builder = factory.createExternalBinaryBuilder(transaction, randomId, 058 "PROXY", externalURI); 059 assertEquals(CreateNonRdfSourceOperationBuilderImpl.class, builder.getClass()); 060 } 061}