blob: 3185351713c9e28d71c3c03851eef4afdce2a2cc [file] [log] [blame]
/*
* 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.harmony.logging.tests.java.util.logging;
import dalvik.annotation.TestTargets;
import dalvik.annotation.TestLevel;
import dalvik.annotation.TestTargetNew;
import dalvik.annotation.TestTargetClass;
import junit.framework.TestCase;
import org.apache.harmony.logging.tests.java.util.logging.HandlerTest.NullOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.logging.ErrorManager;
@TestTargetClass(ErrorManager.class)
public class ErrorManagerTest extends TestCase {
private final PrintStream err = System.err;
private final PrintStream out = System.out;
private OutputStream errSubstituteStream = null;
public void setUp() throws Exception{
super.setUp();
errSubstituteStream = new NullOutputStream();
System.setErr(new PrintStream(errSubstituteStream));
}
public void tearDown() throws Exception{
System.setErr(err);
System.setOut(out);
super.tearDown();
}
@TestTargetNew(
level = TestLevel.PARTIAL_COMPLETE,
notes = "Verifies positive case only with ErrorManager.GENERIC_FAILURE, impove MockStream",
method = "error",
args = {java.lang.String.class, java.lang.Exception.class, int.class}
)
public void test_errorCheck() {
ErrorManager em = new ErrorManager();
MockStream aos = new MockStream();
PrintStream st = new PrintStream(aos);
System.setErr(st);
System.setOut(st);
em.error("supertest", null, ErrorManager.GENERIC_FAILURE);
st.flush();
assertTrue("message appears (supertest)", aos.getWrittenData().indexOf("supertest") != -1);
}
@TestTargetNew(
level = TestLevel.PARTIAL_COMPLETE,
notes = "Verifies positive case only with ErrorManager.GENERIC_FAILURE",
method = "error",
args = {java.lang.String.class, java.lang.Exception.class, int.class}
)
public void test_errorStringStringint() {
ErrorManager em = new ErrorManager();
em.error(null, new NullPointerException(),
ErrorManager.GENERIC_FAILURE);
em.error("An error message.", null, ErrorManager.GENERIC_FAILURE);
em.error(null, null, ErrorManager.GENERIC_FAILURE);
}
@TestTargetNew(
level = TestLevel.COMPLETE,
notes = "",
method = "ErrorManager",
args = {}
)
public void test_constants() {
assertEquals(3, ErrorManager.CLOSE_FAILURE);
assertEquals(2, ErrorManager.FLUSH_FAILURE);
assertEquals(5, ErrorManager.FORMAT_FAILURE);
assertEquals(0, ErrorManager.GENERIC_FAILURE);
assertEquals(4, ErrorManager.OPEN_FAILURE);
assertEquals(1, ErrorManager.WRITE_FAILURE);
}
public class MockStream extends ByteArrayOutputStream {
private StringBuffer linesWritten = new StringBuffer();
public void flush() {}
public void close() {}
@Override
public void write(byte[] buffer) {
linesWritten.append(new String(buffer));
}
@Override
public synchronized void write(byte[] buffer, int offset, int len) {
linesWritten.append(new String(buffer, offset, len));
}
public String getWrittenData() {return linesWritten.toString();}
}
}