11/*
2- * Copyright 2005 The Apache Software Foundation.
2+ * Copyright 2005-2006 The Apache Software Foundation.
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
@@ -62,33 +62,50 @@ protected void tearDown() throws Exception {
6262 public void testGetFreeSpace_String () throws Exception {
6363 // test coverage, as we can't check value
6464 if (File .separatorChar == '/' ) {
65- assertEquals (true , FileSystemUtils .freeSpace ("/" ) > 0 );
65+ // test assumes Unix using 1kb blocks
66+ long free = FileSystemUtils .freeSpace ("/" );
67+ long kb = FileSystemUtils .freeSpaceKb ("/" );
68+ assertEquals ((double ) free , (double ) kb , 256d );
6669 } else {
67- assertEquals (true , FileSystemUtils .freeSpace ("" ) > 0 );
70+ long bytes = FileSystemUtils .freeSpace ("" );
71+ long kb = FileSystemUtils .freeSpaceKb ("" );
72+ assertEquals ((double ) bytes / 1024 , (double ) kb , 256d );
6873 }
6974 }
7075
7176 //-----------------------------------------------------------------------
7277 public void testGetFreeSpaceOS_String_NullPath () throws Exception {
7378 FileSystemUtils fsu = new FileSystemUtils ();
7479 try {
75- fsu .freeSpaceOS (null , 1 );
80+ fsu .freeSpaceOS (null , 1 , false );
81+ fail ();
82+ } catch (IllegalArgumentException ex ) {}
83+ try {
84+ fsu .freeSpaceOS (null , 1 , true );
7685 fail ();
7786 } catch (IllegalArgumentException ex ) {}
7887 }
7988
8089 public void testGetFreeSpaceOS_String_InitError () throws Exception {
8190 FileSystemUtils fsu = new FileSystemUtils ();
8291 try {
83- fsu .freeSpaceOS ("" , -1 );
92+ fsu .freeSpaceOS ("" , -1 , false );
93+ fail ();
94+ } catch (IllegalStateException ex ) {}
95+ try {
96+ fsu .freeSpaceOS ("" , -1 , true );
8497 fail ();
8598 } catch (IllegalStateException ex ) {}
8699 }
87100
88101 public void testGetFreeSpaceOS_String_Other () throws Exception {
89102 FileSystemUtils fsu = new FileSystemUtils ();
90103 try {
91- fsu .freeSpaceOS ("" , 0 );
104+ fsu .freeSpaceOS ("" , 0 , false );
105+ fail ();
106+ } catch (IllegalStateException ex ) {}
107+ try {
108+ fsu .freeSpaceOS ("" , 0 , true );
92109 fail ();
93110 } catch (IllegalStateException ex ) {}
94111 }
@@ -99,16 +116,18 @@ protected long freeSpaceWindows(String path) throws IOException {
99116 return 12345L ;
100117 }
101118 };
102- assertEquals (12345L , fsu .freeSpaceOS ("" , 1 ));
119+ assertEquals (12345L , fsu .freeSpaceOS ("" , 1 , false ));
120+ assertEquals (12345L / 1024 , fsu .freeSpaceOS ("" , 1 , true ));
103121 }
104122
105123 public void testGetFreeSpaceOS_String_Unix () throws Exception {
106124 FileSystemUtils fsu = new FileSystemUtils () {
107- protected long freeSpaceUnix (String path ) throws IOException {
108- return 12345L ;
125+ protected long freeSpaceUnix (String path , boolean kb ) throws IOException {
126+ return ( kb ? 12345L : 54321 ) ;
109127 }
110128 };
111- assertEquals (12345L , fsu .freeSpaceOS ("" , 2 ));
129+ assertEquals (54321L , fsu .freeSpaceOS ("" , 2 , false ));
130+ assertEquals (12345L , fsu .freeSpaceOS ("" , 2 , true ));
112131 }
113132
114133 //-----------------------------------------------------------------------
@@ -232,7 +251,11 @@ protected BufferedReader openProcessStream(String[] params) {
232251 }
233252 };
234253 try {
235- fsu .freeSpaceUnix ("" );
254+ fsu .freeSpaceUnix ("" , false );
255+ fail ();
256+ } catch (IllegalArgumentException ex ) {}
257+ try {
258+ fsu .freeSpaceUnix ("" , true );
236259 fail ();
237260 } catch (IllegalArgumentException ex ) {}
238261 }
@@ -247,7 +270,20 @@ protected BufferedReader openProcessStream(String[] params) {
247270 return new BufferedReader (reader );
248271 }
249272 };
250- assertEquals (1472504L , fsu .freeSpaceUnix ("/home/users/s" ));
273+ assertEquals (1472504L , fsu .freeSpaceUnix ("/home/users/s" , false ));
274+ }
275+
276+ public void testGetFreeSpaceUnix_String_NormalResponseKb () throws Exception {
277+ String lines =
278+ "Filesystem 1K-blocks Used Available Use% Mounted on\n " +
279+ "xxx:/home/users/s 14428928 12956424 1472504 90% /home/users/s" ;
280+ final StringReader reader = new StringReader (lines );
281+ FileSystemUtils fsu = new FileSystemUtils () {
282+ protected BufferedReader openProcessStream (String [] params ) {
283+ return new BufferedReader (reader );
284+ }
285+ };
286+ assertEquals (1472504L , fsu .freeSpaceUnix ("/home/users/s" , true ));
251287 }
252288
253289 public void testGetFreeSpaceUnix_String_LongResponse () throws Exception {
@@ -261,7 +297,21 @@ protected BufferedReader openProcessStream(String[] params) {
261297 return new BufferedReader (reader );
262298 }
263299 };
264- assertEquals (1472504L , fsu .freeSpaceUnix ("/home/users/s" ));
300+ assertEquals (1472504L , fsu .freeSpaceUnix ("/home/users/s" , false ));
301+ }
302+
303+ public void testGetFreeSpaceUnix_String_LongResponseKb () throws Exception {
304+ String lines =
305+ "Filesystem 1K-blocks Used Available Use% Mounted on\n " +
306+ "xxx-yyyyyyy-zzz:/home/users/s\n " +
307+ " 14428928 12956424 1472504 90% /home/users/s" ;
308+ final StringReader reader = new StringReader (lines );
309+ FileSystemUtils fsu = new FileSystemUtils () {
310+ protected BufferedReader openProcessStream (String [] params ) {
311+ return new BufferedReader (reader );
312+ }
313+ };
314+ assertEquals (1472504L , fsu .freeSpaceUnix ("/home/users/s" , true ));
265315 }
266316
267317 public void testGetFreeSpaceUnix_String_EmptyResponse () throws Exception {
@@ -273,7 +323,11 @@ protected BufferedReader openProcessStream(String[] params) {
273323 }
274324 };
275325 try {
276- fsu .freeSpaceUnix ("/home/users/s" );
326+ fsu .freeSpaceUnix ("/home/users/s" , false );
327+ fail ();
328+ } catch (IOException ex ) {}
329+ try {
330+ fsu .freeSpaceUnix ("/home/users/s" , true );
277331 fail ();
278332 } catch (IOException ex ) {}
279333 }
@@ -289,7 +343,11 @@ protected BufferedReader openProcessStream(String[] params) {
289343 }
290344 };
291345 try {
292- fsu .freeSpaceUnix ("/home/users/s" );
346+ fsu .freeSpaceUnix ("/home/users/s" , false );
347+ fail ();
348+ } catch (IOException ex ) {}
349+ try {
350+ fsu .freeSpaceUnix ("/home/users/s" , true );
293351 fail ();
294352 } catch (IOException ex ) {}
295353 }
@@ -305,7 +363,11 @@ protected BufferedReader openProcessStream(String[] params) {
305363 }
306364 };
307365 try {
308- fsu .freeSpaceUnix ("/home/users/s" );
366+ fsu .freeSpaceUnix ("/home/users/s" , false );
367+ fail ();
368+ } catch (IOException ex ) {}
369+ try {
370+ fsu .freeSpaceUnix ("/home/users/s" , true );
309371 fail ();
310372 } catch (IOException ex ) {}
311373 }
@@ -321,7 +383,11 @@ protected BufferedReader openProcessStream(String[] params) {
321383 }
322384 };
323385 try {
324- fsu .freeSpaceUnix ("/home/users/s" );
386+ fsu .freeSpaceUnix ("/home/users/s" , false );
387+ fail ();
388+ } catch (IOException ex ) {}
389+ try {
390+ fsu .freeSpaceUnix ("/home/users/s" , true );
325391 fail ();
326392 } catch (IOException ex ) {}
327393 }
@@ -337,7 +403,11 @@ protected BufferedReader openProcessStream(String[] params) {
337403 }
338404 };
339405 try {
340- fsu .freeSpaceUnix ("/home/users/s" );
406+ fsu .freeSpaceUnix ("/home/users/s" , false );
407+ fail ();
408+ } catch (IOException ex ) {}
409+ try {
410+ fsu .freeSpaceUnix ("/home/users/s" , true );
341411 fail ();
342412 } catch (IOException ex ) {}
343413 }
0 commit comments