de.fhg.iais.commons.stream.AutoFileOutputStreamTest.java Source code

Java tutorial

Introduction

Here is the source code for de.fhg.iais.commons.stream.AutoFileOutputStreamTest.java

Source

package de.fhg.iais.commons.stream;

/******************************************************************************
 * Copyright 2011 (c) Fraunhofer IAIS Netmedia  http://www.iais.fraunhofer.de *
 * ************************************************************************** *
 * Licensed 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.                                             *
 ******************************************************************************/

import java.io.IOException;

import org.apache.commons.io.IOUtils;
import org.junit.Assert;
import org.junit.Test;

public class AutoFileOutputStreamTest extends OutputStreamTestBase {
    @Test
    public void testWriting() throws IOException {
        AutoFileOutputStream os = new AutoFileOutputStream(FILE_STRING, false);
        os.write(CONTENT);
        os.setCompleted();
        os.close();
        IOUtils.closeQuietly(os);

        checkContentAndRemoveFile(CONTENT);
    }

    @Test
    public void testWritingAndCloseAsCompleted() throws IOException {
        AutoFileOutputStream os = new AutoFileOutputStream(FILE_STRING, false);
        os.write(CONTENT);
        os.closeAsCompleted();
        IOUtils.closeQuietly(os);

        checkContentAndRemoveFile(CONTENT);
    }

    @Test
    public void testFailedWriting() throws IOException {
        AutoFileOutputStream os = new AutoFileOutputStream(FILE_STRING, false);
        os.write(CONTENT);
        os.onFinally();

        Assert.assertFalse("Without close() the file must be deleted automatically", FILE.exists());
    }
}