/** * This file is part of muCommander, http://www.mucommander.com * Copyright (C) 2002-2016 Maxence Bernard * * muCommander is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * muCommander is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.mucommander.commons.file; import org.testng.annotations.Test; import java.io.IOException; /** * A test case for {@link FileFactory}. * * @author Maxence Bernard */ public class FileFactoryTest { /** * Tests {@link com.mucommander.commons.file.FileFactory#getTemporaryFolder()}. * * @throws IOException should not happen */ @Test public void testTemporaryFolder() throws IOException { // Assert that the returned file is a folder that exists AbstractFile temporaryFolder = FileFactory.getTemporaryFolder(); assert temporaryFolder != null; assert temporaryFolder.isDirectory(); assert temporaryFolder.exists(); // Assert that the temporary folder is the parent folder of temporary files AbstractFile temporaryFile = FileFactory.getTemporaryFile(false); assert temporaryFile.getParent().equals(temporaryFolder); } /** * Tests {@link com.mucommander.commons.file.FileFactory#getTemporaryFile(String, boolean)}. * * @throws IOException should not happen */ @Test public void testTemporaryFiles() throws IOException { String desiredName = System.currentTimeMillis()+".ext"; // Assert that #getTemporaryFile returns a non-existing file with the desired name AbstractFile temporaryFile1 = FileFactory.getTemporaryFile(desiredName, true); assert temporaryFile1 != null; assert !temporaryFile1.exists(); assert desiredName.equals(temporaryFile1.getName()); // Assert that #getTemporaryFile returns a new temporary file if the requested file already exists, and that the // extension matches the desired one. temporaryFile1.mkfile(); AbstractFile temporaryFile2 = FileFactory.getTemporaryFile(desiredName, true); assert temporaryFile2 != null; assert !temporaryFile2.exists(); assert !temporaryFile2.getName().equals(desiredName); assert temporaryFile1.getExtension().equals(temporaryFile2.getExtension()); // Note: the temporary file should normally be deleted on VM shutdown, but we have no (easy) way to assert that // Perform some basic tests on #getTemporaryFile when called without a desired name temporaryFile1 = FileFactory.getTemporaryFile(true); assert temporaryFile1 != null; assert !temporaryFile1.exists(); } }