init
This commit is contained in:
135
test/org/apache/juli/TestFileHandler.java
Normal file
135
test/org/apache/juli/TestFileHandler.java
Normal file
@@ -0,0 +1,135 @@
|
||||
/*
|
||||
* 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.juli;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.FileSystems;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
public class TestFileHandler {
|
||||
|
||||
private static final String PREFIX_1 = "localhost.";
|
||||
private static final String PREFIX_2 = "test.";
|
||||
private static final String PREFIX_3 = "";
|
||||
private static final String PREFIX_4 = "localhost1";
|
||||
private static final String SUFIX_1 = ".log";
|
||||
private static final String SUFIX_2 = ".txt";
|
||||
|
||||
private File logsDir;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
File logsBase = new File(System.getProperty("tomcat.test.temp", "output/tmp"));
|
||||
if (!logsBase.mkdirs() && !logsBase.isDirectory()) {
|
||||
Assert.fail("Unable to create logs directory.");
|
||||
}
|
||||
Path logsBasePath = FileSystems.getDefault().getPath(logsBase.getAbsolutePath());
|
||||
logsDir = Files.createTempDirectory(logsBasePath, "test").toFile();
|
||||
|
||||
generateLogFiles(logsDir, PREFIX_1, SUFIX_2, 3);
|
||||
generateLogFiles(logsDir, PREFIX_2, SUFIX_1, 3);
|
||||
generateLogFiles(logsDir, PREFIX_3, SUFIX_1, 3);
|
||||
generateLogFiles(logsDir, PREFIX_4, SUFIX_1, 3);
|
||||
|
||||
Calendar date = Calendar.getInstance();
|
||||
date.add(Calendar.DAY_OF_MONTH, -3);
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH-mm-ss.SSS");
|
||||
File file = new File(logsDir, PREFIX_1 + formatter.format(date.getTime()) + SUFIX_1);
|
||||
if (!file.createNewFile()) {
|
||||
Assert.fail("Unable to create " + file.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
File[] files = logsDir.listFiles();
|
||||
if (files != null) {
|
||||
for (File file : files) {
|
||||
Assert.assertTrue("Failed to delete [" + file + "]", file.delete());
|
||||
}
|
||||
Assert.assertTrue("Failed to create [" + logsDir + "]", logsDir.delete());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCleanOnInitOneHandler() throws Exception {
|
||||
generateLogFiles(logsDir, PREFIX_1, SUFIX_1, 3);
|
||||
|
||||
FileHandler fh1 = new FileHandler(logsDir.getAbsolutePath(), PREFIX_1, SUFIX_1, 2);
|
||||
|
||||
Thread.sleep(1000);
|
||||
|
||||
Assert.assertTrue(logsDir.list().length == 16);
|
||||
|
||||
fh1.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCleanOnInitMultipleHandlers() throws Exception {
|
||||
generateLogFiles(logsDir, PREFIX_1, SUFIX_1, 3);
|
||||
|
||||
FileHandler fh1 = new FileHandler(logsDir.getAbsolutePath(), PREFIX_1, SUFIX_1, 2);
|
||||
FileHandler fh2 = new FileHandler(logsDir.getAbsolutePath(), PREFIX_1, SUFIX_2, 2);
|
||||
FileHandler fh3 = new FileHandler(logsDir.getAbsolutePath(), PREFIX_2, SUFIX_1, 2);
|
||||
FileHandler fh4 = new FileHandler(logsDir.getAbsolutePath(), PREFIX_3, SUFIX_1, 2);
|
||||
|
||||
Thread.sleep(1000);
|
||||
|
||||
Assert.assertTrue(logsDir.list().length == 16);
|
||||
|
||||
fh1.close();
|
||||
fh2.close();
|
||||
fh3.close();
|
||||
fh4.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCleanDisabled() throws Exception {
|
||||
generateLogFiles(logsDir, PREFIX_1, SUFIX_1, 3);
|
||||
|
||||
FileHandler fh1 = new FileHandler(logsDir.getAbsolutePath(), PREFIX_1, SUFIX_1, -1);
|
||||
|
||||
Thread.sleep(1000);
|
||||
|
||||
Assert.assertTrue(logsDir.list().length == 17);
|
||||
|
||||
fh1.close();
|
||||
}
|
||||
|
||||
private void generateLogFiles(File dir, String prefix, String sufix, int amount)
|
||||
throws IOException {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
for (int i = 0; i < amount; i++) {
|
||||
cal.add(Calendar.DAY_OF_MONTH, -1);
|
||||
File file = new File(dir, prefix + formatter.format(cal.getTime()) + sufix);
|
||||
if (!file.createNewFile()) {
|
||||
Assert.fail("Unable to create " + file.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user