com.adobe.acs.commons.mcp.impl.processes.asset.FileAssetIngestorUtilitiesTest.java Source code

Java tutorial

Introduction

Here is the source code for com.adobe.acs.commons.mcp.impl.processes.asset.FileAssetIngestorUtilitiesTest.java

Source

/*
 * #%L
 * ACS AEM Commons Bundle
 * %%
 * Copyright (C) 2017 Adobe
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */
package com.adobe.acs.commons.mcp.impl.processes.asset;

import com.google.common.io.Files;
import org.apache.commons.io.FileUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.File;

import static org.junit.Assert.*;

/**
 * Test of utility methods in FileAssetIngestor. Separated out from FileAssetIngestorTest for minimal bootstrapping
 */
public class FileAssetIngestorUtilitiesTest {

    private FileAssetIngestor ingestor;

    private File tempDirectory;

    @Before
    public void setup() throws Exception {
        ingestor = new FileAssetIngestor(null);
        ingestor.jcrBasePath = "/content/dam";
        tempDirectory = Files.createTempDir();
        ingestor.fileBasePath = tempDirectory.getAbsolutePath();
        ingestor.init();
    }

    @After
    public void teardown() throws Exception {
        FileUtils.deleteDirectory(tempDirectory);
    }

    @Test
    public void testHierarchialElementForFolder() {
        File folder1 = new File(tempDirectory, "folder1");
        folder1.mkdir();
        File folder2 = new File(folder1, "folder2");
        folder2.mkdir();

        AssetIngestor.HierarchialElement el = ingestor.new FileHierarchialElement(folder2);
        assertEquals(folder2.getAbsolutePath(), el.getItemName());
        assertTrue(el.isFolder());
        assertFalse(el.isFile());
        assertEquals("/content/dam/folder1/folder2", el.getNodePath());
        assertEquals("folder2", el.getName());

        AssetIngestor.HierarchialElement parent = el.getParent();
        assertEquals(folder1.getAbsolutePath(), parent.getItemName());
        assertNotNull(parent);
        assertTrue(parent.isFolder());
        assertFalse(parent.isFile());
        assertEquals("folder1", parent.getName());

        assertNull(parent.getParent());
    }

    @Test
    public void testHierarchialElementForFile() throws Exception {
        File folder1 = new File(tempDirectory, "folder1");
        folder1.mkdir();
        File folder2 = new File(folder1, "folder2");
        folder2.mkdir();
        File image = new File(folder2, "image.png");
        FileUtils.writeByteArrayToFile(image, new byte[0]);

        AssetIngestor.HierarchialElement el = ingestor.new FileHierarchialElement(image);
        assertEquals(image.getAbsolutePath(), el.getItemName());
        assertFalse(el.isFolder());
        assertTrue(el.isFile());
        assertEquals("image.png", el.getName());

        AssetIngestor.HierarchialElement parent = el.getParent();
        assertEquals(folder2.getAbsolutePath(), parent.getItemName());
        assertNotNull(parent);
        assertTrue(parent.isFolder());
        assertFalse(parent.isFile());
        assertEquals("folder2", parent.getName());

        parent = parent.getParent();
        assertEquals(folder1.getAbsolutePath(), parent.getItemName());
        assertNotNull(parent);
        assertTrue(parent.isFolder());
        assertFalse(parent.isFile());
        assertEquals("folder1", parent.getName());

        assertNull(parent.getParent());
    }

    @Test
    public void testHierarchialElementForFileInRoot() throws Exception {
        File image = new File(tempDirectory, "image.png");
        FileUtils.writeByteArrayToFile(image, new byte[0]);
        AssetIngestor.HierarchialElement el = ingestor.new FileHierarchialElement(image);
        assertEquals(image.getAbsolutePath(), el.getItemName());
        assertFalse(el.isFolder());
        assertTrue(el.isFile());
        assertEquals("image.png", el.getName());

        assertNull(el.getParent());
    }

    @Test
    public void testHierarchialElementForFolderInRoot() {
        File folder1 = new File(tempDirectory, "folder1");
        folder1.mkdir();
        AssetIngestor.HierarchialElement el = ingestor.new FileHierarchialElement(folder1);
        assertEquals(folder1.getAbsolutePath(), el.getItemName());
        assertTrue(el.isFolder());
        assertFalse(el.isFile());
        assertEquals("folder1", el.getName());

        assertNull(el.getParent());
    }

}