Package org.uberfire.io.attribute

Source Code of org.uberfire.io.attribute.DublinCoreTest

package org.uberfire.io.attribute;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.junit.AfterClass;
import org.junit.Test;
import org.uberfire.io.IOService;
import org.uberfire.io.impl.IOServiceDotFileImpl;
import org.uberfire.java.nio.file.OpenOption;
import org.uberfire.java.nio.file.Path;
import org.uberfire.java.nio.file.attribute.FileAttribute;

import static org.junit.Assert.*;

/**
*
*/
public class DublinCoreTest {

    protected static final List<File> tempFiles = new ArrayList<File>();

    @Test
    public void testDCore() throws IOException {
        final Path dir = ioService().get( createTempDirectory().toURI() );
        final Path file = dir.resolve( "myFile.txt" );

        ioService().write( file, "mycontent", Collections.<OpenOption>emptySet() );

        {
            final DublinCoreView view = ioService().getFileAttributeView( file, DublinCoreView.class );

            assertNotNull( view );

            assertNotNull( view.readAttributes() );

            assertNotNull( view.readAttributes().languages() );

            assertEquals( 0, view.readAttributes().languages().size() );
        }

        ioService().write( file, "mycontent", Collections.<OpenOption>emptySet(), new FileAttribute<Object>() {
                               @Override
                               public String name() {
                                   return "dcore.creator";
                               }

                               @Override
                               public Object value() {
                                   return "some user name here";
                               }
                           }, new FileAttribute<Object>() {
                               @Override
                               public String name() {
                                   return "dcore.language[0]";
                               }

                               @Override
                               public Object value() {
                                   return "en";
                               }
                           }, new FileAttribute<Object>() {
                               @Override
                               public String name() {
                                   return "dcore.language[1]";
                               }

                               @Override
                               public Object value() {
                                   return "pt-BR";
                               }
                           }
                         );

        {
            final DublinCoreView view = ioService().getFileAttributeView( file, DublinCoreView.class );

            assertNotNull( view );

            assertNotNull( view.readAttributes() );

            assertNotNull( view.readAttributes().languages() );

            assertEquals( 2, view.readAttributes().languages().size() );

            assertTrue( view.readAttributes().languages().contains( "pt-BR" ) );

            assertTrue( view.readAttributes().languages().contains( "en" ) );

            assertEquals( 1, view.readAttributes().creators().size() );

            assertTrue( view.readAttributes().creators().contains( "some user name here" ) );
        }

        ioService().setAttributes( file, new FileAttribute<Object>() {
            @Override
            public String name() {
                return "dcore.identifier";
            }

            @Override
            public Object value() {
                return file.toUri().toString();
            }
        } );

        {
            final DublinCoreView view = ioService().getFileAttributeView( file, DublinCoreView.class );

            assertNotNull( view );

            assertNotNull( view.readAttributes() );

            assertNotNull( view.readAttributes().languages() );

            assertEquals( 2, view.readAttributes().languages().size() );

            assertTrue( view.readAttributes().languages().contains( "pt-BR" ) );

            assertTrue( view.readAttributes().languages().contains( "en" ) );

            assertEquals( 1, view.readAttributes().creators().size() );

            assertTrue( view.readAttributes().creators().contains( "some user name here" ) );

            assertEquals( 1, view.readAttributes().identifiers().size() );

            assertTrue( view.readAttributes().identifiers().contains( file.toUri().toString() ) );
        }
    }

    protected static IOService ioService = null;

    public IOService ioService() {
        if ( ioService == null ) {
            ioService = new IOServiceDotFileImpl();
        }
        return ioService;
    }

    @AfterClass
    public static void cleanup() {
        for ( final File tempFile : tempFiles ) {
            FileUtils.deleteQuietly( tempFile );
        }
    }

    public static File createTempDirectory()
            throws IOException {
        final File temp = File.createTempFile( "temp", Long.toString( System.nanoTime() ) );
        if ( !( temp.delete() ) ) {
            throw new IOException( "Could not delete temp file: " + temp.getAbsolutePath() );
        }

        if ( !( temp.mkdir() ) ) {
            throw new IOException( "Could not create temp directory: " + temp.getAbsolutePath() );
        }

        tempFiles.add( temp );

        return temp;
    }

}
TOP

Related Classes of org.uberfire.io.attribute.DublinCoreTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.