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}