/* * Licensed to the Apache Software Foundation (ASF) under one or more contributor license * agreements. See the NOTICE file distributed with this work for additional information regarding * copyright ownership. The ASF licenses this file to You 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. */ package org.apache.geode.internal; import static org.junit.Assert.*; import java.io.DataInput; import java.io.DataInputStream; import java.io.DataOutput; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.junit.Test; import org.junit.experimental.categories.Category; import org.apache.geode.test.junit.categories.IntegrationTest; @Category(IntegrationTest.class) public class FileUtilJUnitTest { @Test public void testCopyFile() throws IOException { File source = File.createTempFile("FileUtilJUnitTest", null); File dest = File.createTempFile("FileUtilJUnitTest", null); try { FileOutputStream fos = new FileOutputStream(source); DataOutput daos = new DataOutputStream(fos); try { for (long i = 0; i < FileUtil.MAX_TRANSFER_SIZE * 2.5 / 8; i++) { daos.writeLong(i); } } finally { fos.close(); } FileUtil.copy(source, dest); FileInputStream fis = new FileInputStream(dest); DataInput dis = new DataInputStream(fis); try { for (long i = 0; i < FileUtil.MAX_TRANSFER_SIZE * 2.5 / 8; i++) { assertEquals(i, dis.readLong()); } assertEquals(-1, fis.read()); } finally { fis.close(); } } finally { source.delete(); dest.delete(); } } @Test public void testStripOffExtension() { String fileName = "filename"; assertEquals("filename", FileUtil.stripOffExtension(fileName)); fileName = "filename.txt"; assertEquals("filename", FileUtil.stripOffExtension(fileName)); fileName = "filename.txt.txt"; assertEquals("filename.txt", FileUtil.stripOffExtension(fileName)); fileName = "filename.txt.log"; assertEquals("filename.txt", FileUtil.stripOffExtension(fileName)); fileName = "/dir/dir/dir/dir/filename.txt.log"; assertEquals("/dir/dir/dir/dir/filename.txt", FileUtil.stripOffExtension(fileName)); } @Test public void testDeleteFile() throws IOException { File file = File.createTempFile("FileUtilJUnitTest", null); assertTrue(file.exists()); FileUtil.delete(file); assertFalse(file.exists()); } @Test public void testDeleteDir() throws IOException { File dir = new File("testDirName"); dir.mkdir(); File file = File.createTempFile("testFile", null, dir); assertTrue(dir.exists()); assertTrue(file.exists()); FileUtil.delete(dir); assertFalse(file.exists()); assertFalse(dir.exists()); } }