Commit c26d7422 authored by majorb.cadc's avatar majorb.cadc
Browse files

Refactored DAO test structure for reuse

git-svn-id: https://opencadc.googlecode.com/svn/trunk@625 728ff76a-78ac-11de-a72b-d90af8dea425
parent ad61bdd6
Loading
Loading
Loading
Loading
+31 −13
Original line number Diff line number Diff line
package ca.nrc.cadc.vos;

import javax.sql.DataSource;
import static org.junit.Assert.assertEquals;

import org.junit.Before;
import org.junit.Test;

public abstract class VOSpaceFileMetadataSourceTest extends PersistenceTest
import ca.nrc.cadc.util.FileMetadata;

public abstract class VOSpaceFileMetadataSourceTest extends AbstractPersistenceTest
{
    private VOSpaceFileMetadataSource vospaceFileMetadataSource;
    private VOSURI testURI;
    private DataNode testNode;
    
    public VOSpaceFileMetadataSourceTest()
    {
        super();
    }
    
    @Before
    public void before() throws Exception
    {
@@ -18,23 +26,33 @@ public abstract class VOSpaceFileMetadataSourceTest extends PersistenceTest
        vospaceFileMetadataSource.setNodePersistence(nodeDAO);
        
        ContainerNode rootContainer = (ContainerNode) nodeDAO.getFromParent(getRootContainerName(), null);
        testNode = new DataNode(getVOSURIPrefix() + getRootContainerName() + "/" + getNodeName("testNode"));
        testURI = new VOSURI(getVOSURIPrefix() + "/" + getRootContainerName() + "/" + getNodeName("testNode"));
        testNode = new DataNode(testURI);
        testNode.setOwner(getNodeOwner());
        nodeDAO.putInContainer(testNode, rootContainer);
    }
    
    public abstract DataSource getDataSource();
    
    public abstract NodeDAO getNodeDAO(DataSource dataSource);
    
    public abstract String getVOSURIPrefix();
    
    public abstract String getRootContainerName();
    
    public abstract String getNodeOwner();
    
    @Test
    public void testMetadata() throws Exception
    {
        String contentEncoding = "gzip";
        Long contentLength = 256L;
        String contentType = "text/xml";
        String md5Sum = new String(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16});
        
        FileMetadata metadata1 = new FileMetadata();
        metadata1.setContentEncoding(contentEncoding);
        metadata1.setContentLength(contentLength);
        metadata1.setContentType(contentType);
        metadata1.setMd5Sum(md5Sum);
        
        vospaceFileMetadataSource.set(testURI.getURIObject(), metadata1);
        FileMetadata metadata2 = vospaceFileMetadataSource.get(testURI.getURIObject());
        
        assertEquals(contentEncoding, metadata2.getContentEncoding());
        assertEquals(contentLength, metadata2.getContentLength());
        assertEquals(contentType, metadata2.getContentType());
        assertEquals(md5Sum, metadata2.getMd5Sum());

    }