[WAGON-557] Integer overflow prevents optimal buffer size selection for large artifacts

This closes #54
diff --git a/wagon-provider-api/src/test/java/org/apache/maven/wagon/AbstractWagonTest.java b/wagon-provider-api/src/test/java/org/apache/maven/wagon/AbstractWagonTest.java
index ac2e6f6..81b07db 100644
--- a/wagon-provider-api/src/test/java/org/apache/maven/wagon/AbstractWagonTest.java
+++ b/wagon-provider-api/src/test/java/org/apache/maven/wagon/AbstractWagonTest.java
@@ -117,6 +117,23 @@
 
     }
 
+    public void testCalculationOfTransferBufferSize() {
+        // 1 KiB -> Default buffer size (4 KiB)
+        assertEquals( 4096, wagon.getBufferCapacityForTransfer(1024L ) );
+
+        // 1 MiB -> Twice the default buffer size (8 KiB)
+        assertEquals( 4096 * 2, wagon.getBufferCapacityForTransfer(1024L * 1024 ) );
+
+        // 100 MiB -> Maximum buffer size (512 KiB)
+        assertEquals( 4096 * 128, wagon.getBufferCapacityForTransfer(1024L * 1024  * 100 ) );
+
+        // 1 GiB -> Maximum buffer size (512 KiB)
+        assertEquals( 4096 * 128, wagon.getBufferCapacityForTransfer(1024L * 1024  * 1024 ) );
+
+        // 100 GiB -> Maximum buffer size (512 KiB)
+        assertEquals( 4096 * 128, wagon.getBufferCapacityForTransfer(1024L * 1024  * 1024 * 100 ) );
+    }
+
     public void testSessionListenerRegistration()
     {
         assertTrue( wagon.hasSessionListener( sessionListener ) );