Author: krosenvold
Date: Fri Jun 19 18:39:41 2015
New Revision: 1686480

URL: http://svn.apache.org/r1686480
Log:
IO-425 Setter method for threshold.

Patch by Craig Swank, testcase by me

Added:
    
commons/proper/io/trunk/src/test/java/org/apache/commons/io/output/ThresholdingOutputStreamTest.java
Modified:
    
commons/proper/io/trunk/src/main/java/org/apache/commons/io/output/ThresholdingOutputStream.java

Modified: 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/output/ThresholdingOutputStream.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/output/ThresholdingOutputStream.java?rev=1686480&r1=1686479&r2=1686480&view=diff
==============================================================================
--- 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/output/ThresholdingOutputStream.java
 (original)
+++ 
commons/proper/io/trunk/src/main/java/org/apache/commons/io/output/ThresholdingOutputStream.java
 Fri Jun 19 18:39:41 2015
@@ -235,6 +235,19 @@ public abstract class ThresholdingOutput
         this.written = 0;
     }
 
+    /**
+     * Sets the byteCount to count.  Usefull for re-opening an output stream
+     * that been previously written to.
+     *
+     * @param count The number of bytes that have already been written to the
+     * output stream
+     *
+     */
+    protected void setByteCount(final long count) {
+        this.written = count;
+    }
+
+
     // ------------------------------------------------------- Abstract methods
 
 

Added: 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/output/ThresholdingOutputStreamTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/output/ThresholdingOutputStreamTest.java?rev=1686480&view=auto
==============================================================================
--- 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/output/ThresholdingOutputStreamTest.java
 (added)
+++ 
commons/proper/io/trunk/src/test/java/org/apache/commons/io/output/ThresholdingOutputStreamTest.java
 Fri Jun 19 18:39:41 2015
@@ -0,0 +1,51 @@
+package org.apache.commons.io.output;
+/*
+ * 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.
+ */
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import org.junit.Test;
+
+public class ThresholdingOutputStreamTest {
+
+    @Test
+    public void testSetByteCount() throws Exception {
+        final AtomicBoolean reached = new AtomicBoolean(false);
+        ThresholdingOutputStream tos = new ThresholdingOutputStream(3) {
+            {
+                setByteCount(2);
+            }
+            @Override
+            protected OutputStream getStream() throws IOException {
+                return new ByteArrayOutputStream(4);
+            }
+
+            @Override
+            protected void thresholdReached() throws IOException {
+                reached.set( true);
+            }
+        };
+
+        tos.write(12);
+        assertFalse( reached.get());
+        tos.write(12);
+        assertTrue(reached.get());
+    }
+}
\ No newline at end of file


Reply via email to