1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18package libcore.java.util.logging;
19
20import java.io.ByteArrayOutputStream;
21import java.io.PrintStream;
22import java.util.logging.ErrorManager;
23import junit.framework.TestCase;
24
25public class OldErrorManagerTest extends TestCase {
26
27    private final PrintStream err = System.err;
28    private final PrintStream out = System.out;
29
30    public void tearDown() throws Exception{
31        System.setErr(err);
32        System.setOut(out);
33        super.tearDown();
34    }
35
36    public void test_errorCheck() {
37        ErrorManager em = new ErrorManager();
38        MockStream aos = new MockStream();
39        PrintStream st = new PrintStream(aos);
40        System.setErr(st);
41        System.setOut(st);
42        em.error("supertest", null, ErrorManager.GENERIC_FAILURE);
43        st.flush();
44        assertTrue("message appears (supertest)", aos.getWrittenData().indexOf("supertest") != -1);
45    }
46
47    public class MockStream extends ByteArrayOutputStream {
48
49        private StringBuffer linesWritten = new StringBuffer();
50
51        public void flush() {}
52        public  void close() {}
53
54        @Override
55        public void write(byte[] buffer) {
56            linesWritten.append(new String(buffer));
57        }
58
59        @Override
60        public synchronized void write(byte[] buffer, int offset, int len) {
61            linesWritten.append(new String(buffer, offset, len));
62        }
63
64        public String getWrittenData() {return linesWritten.toString();}
65    }
66}
67