チェンジセット 336

差分発生行の前後
無視リスト:
コミット日時:
2008/10/06 17:09:37 (14 年前)
コミッタ:
shinomiya
ログメッセージ:

#550 テストケースを追加しました。

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • trunk/im-jssp/src/test/java/org/intra_mart/jssp/script/api/ArchiverObjectTest.java

    r329 r336  
    1111import junit.framework.TestCase; 
    1212 
     13import org.intra_mart.common.platform.log.Logger; 
    1314import org.intra_mart.jssp.util.ValueObject; 
    1415import org.intra_mart.jssp.util.config.HomeDirectory; 
     16import org.mozilla.javascript.Context; 
     17import org.mozilla.javascript.Function; 
     18import org.mozilla.javascript.Scriptable; 
    1519import org.mozilla.javascript.Undefined; 
    1620 
     21//TODO ファイルの書き込み権限チェックに引っかかるテストが今のところありません 
     22 
    1723public class ArchiverObjectTest extends TestCase { 
     24         
     25        private static Logger logger = Logger.getLogger(); 
    1826 
    1927        private static String tempDir = System.getProperty("java.io.tmpdir"); 
     
    5765        public void test_zip_srcがUndefined() { 
    5866                ValueObject voIn = new ValueObject(); 
    59                 voIn.put("srcs", voIn, Undefined.instance); 
     67                voIn.put("src", voIn, Undefined.instance); 
    6068                Object[] args = { voIn }; 
    6169 
     
    7381         *  
    7482         */ 
    75         public void test_zip_srcがない() { 
     83        public void test_zip_srcプロパティがない() { 
    7684                ValueObject voIn = new ValueObject(); 
    7785                voIn.put("srcs", voIn, null); 
     
    123131        } 
    124132 
     133        // TODO 未実装 
    125134        /** 
    126135         * @throws Exception 
     
    190199        } 
    191200         
     201        // TODO 未実装 
    192202        /** 
    193203         * @throws Exception 
     
    227237        public void test_zip_srcがFileAccessObject_空のディレクトリ() throws Exception { 
    228238                URL url = this.getClass().getResource("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/000_empty_dir/"); 
    229                 // TODO ヌルポで落ちます。。。空のディレクトリのパスを環境に依存せずに取得する方法は? 
     239                // TODO ヌルポで落ちます。。。空のディレクトリのパスを環境に依存せずに取得する方法は?(Mac環境だけか?) 
    230240                Object[] args4src = {url.getPath()}; 
    231241                FileAccessObject src = (FileAccessObject)FileAccessObject.jsConstructor(null, args4src, null, true); 
     
    360370        } 
    361371         
     372        // TODO 未実装 
    362373        /** 
    363374         * @throws Exception 
     
    401412        public void test_zip_srcとdestがFileAccessObject_空のディレクトリ() throws Exception { 
    402413                URL url = this.getClass().getResource("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/000_empty_dir/"); 
    403                 // TODO ヌルポで落ちます。。。空のディレクトリのパスを環境に依存せずに取得する方法は? 
     414                // TODO ヌルポで落ちます。。。空のディレクトリのパスを環境に依存せずに取得する方法は?(Mac環境だけか?) 
    404415                Object[] args4src = {url.getPath()}; 
    405416                FileAccessObject src = (FileAccessObject)FileAccessObject.jsConstructor(null, args4src, null, true); 
     
    488499 
    489500         
    490         public void test_unzip() { 
     501        /** 
     502         * @throws Exception 
     503         */ 
     504        public void test_zip_filterの動作() throws Exception { 
     505                String varName4filter = "filter"; 
     506                String jsSourceName = "SampleFilterFunction"; 
     507 
     508                StringBuilder jsSource = new StringBuilder(); 
     509                jsSource.append("var " + varName4filter + " = function(path){ "); 
     510                jsSource.append("       if(path.indexOf('.txt') != -1){"); 
     511                jsSource.append("           return true;"); 
     512                jsSource.append("       }"); 
     513                jsSource.append("       else{"); 
     514                jsSource.append("           return false;"); 
     515                jsSource.append("       }"); 
     516                jsSource.append("}"); 
     517                 
     518                logger.debug(jsSource.toString()); 
     519 
     520                Function filterFunction = null; 
     521                Context cx = Context.enter(); 
     522                try { 
     523                        Scriptable scope = cx.initStandardObjects(); 
     524 
     525                        cx.evaluateString(scope, jsSource.toString(), jsSourceName, 1, null); 
     526 
     527                        Object x = scope.get(varName4filter, scope); 
     528                        if (x instanceof Function) { 
     529                                filterFunction = (Function) x; 
     530                        } 
     531                        else { 
     532                                fail("filter用関数生成失敗"); 
     533                        } 
     534                } 
     535                finally { 
     536                        Context.exit(); 
     537                } 
     538                 
     539                URL url = this.getClass().getResource("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/002_3_hierarchy/"); 
     540                Object[] args4src = {url.getPath()}; 
     541                FileAccessObject src = (FileAccessObject)FileAccessObject.jsConstructor(null, args4src, null, true); 
     542 
     543                Object[] args4dest = { "target/test_zip_filterの動作/001_3_hierarchy_without_txt.zip" }; 
     544                FileAccessObject dest = (FileAccessObject)FileAccessObject.jsConstructor(null, args4dest, null, true); 
     545 
     546                ValueObject voIn = new ValueObject(); 
     547                voIn.put("src", voIn, src); 
     548                voIn.put("dest", voIn, dest); 
     549                voIn.put("filter", voIn, filterFunction); 
     550                Object[] args = { voIn }; 
     551 
     552                Object actual = ArchiverObject.jsStaticFunction_zip(null, null, args, null); 
     553 
     554                assertTrue("返却値がFileAccessObjectであること", actual instanceof FileAccessObject); 
     555                 
     556                String expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/filter_test/001_3_hierarchy_without_txt.zip"); 
     557                assertEquals("ZIP圧縮の内容が正しい事", expected, ((FileAccessObject)actual).jsFunction_load()); 
     558 
     559                assertEquals("ZIP圧縮後のファイルパスが正しい事", dest.jsFunction_path(), ((FileAccessObject)actual).jsFunction_path()); 
     560                assertNotSame("返却値が引数オブジェクトのdestと同じインスタンスではない事", dest, actual); 
     561        } 
     562 
     563         
     564        // TODO 未実装 
     565        /** 
     566         * @throws Exception 
     567         */ 
     568        public void test_zip_encoding() throws Exception { 
    491569                fail("未実装"); 
    492         } 
    493  
     570        }        
     571 
     572         
     573        /** 
     574         * @throws Exception 
     575         */ 
     576        public void test_unzip_srcがnull() { 
     577                ValueObject voIn = new ValueObject(); 
     578                voIn.put("src", voIn, null); 
     579                Object[] args = { voIn }; 
     580 
     581                try{ 
     582                        ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     583                        fail("例外が発生する必要があります"); 
     584                } 
     585                catch(Exception e){ 
     586                        // TODO 例外はJSのエラーオブジェクトを検討 
     587                        assertTrue("IllegalArgumentExceptionが発生する事", e instanceof IllegalArgumentException); 
     588                } 
     589        }        
     590 
     591         
     592        /** 
     593         * @throws Exception 
     594         */ 
     595        public void test_unzip_srcがUndefined() { 
     596                ValueObject voIn = new ValueObject(); 
     597                voIn.put("src", voIn, Undefined.instance); 
     598                Object[] args = { voIn }; 
     599 
     600                try{ 
     601                        ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     602                        fail("例外が発生する必要があります"); 
     603                } 
     604                catch(Exception e){ 
     605                        // TODO 例外はJSのエラーオブジェクトを検討 
     606                        assertTrue("IllegalArgumentExceptionが発生する事", e instanceof IllegalArgumentException); 
     607                } 
     608        }        
     609 
     610         
     611        /** 
     612         * @throws Exception 
     613         */ 
     614        public void test_unzip_srcプロパティがない() { 
     615                ValueObject voIn = new ValueObject(); 
     616                voIn.put("no_src", voIn, null); 
     617                Object[] args = { voIn }; 
     618 
     619                try{ 
     620                        ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     621                        fail("例外が発生する必要があります"); 
     622                } 
     623                catch(Exception e){ 
     624                        // TODO 例外はJSのエラーオブジェクトを検討 
     625                        assertTrue("IllegalArgumentExceptionが発生する事", e instanceof IllegalArgumentException); 
     626                } 
     627        }        
     628 
     629         
     630        /** 
     631         * @throws Exception 
     632         */ 
     633        public void test_unzip_srcがString_空文字() { 
     634                ValueObject voIn = new ValueObject(); 
     635                voIn.put("src", voIn, ""); 
     636                Object[] args = { voIn }; 
     637 
     638                try{ 
     639                        ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     640                        fail("例外が発生する必要があります"); 
     641                } 
     642                catch(Exception e){ 
     643                        // TODO 例外はJSのエラーオブジェクトを検討 
     644                        assertTrue("IllegalArgumentExceptionが発生する事", e instanceof IllegalArgumentException); 
     645                } 
     646        }        
     647 
     648         
     649        /** 
     650         * @throws Exception 
     651         */ 
     652        public void test_unzip_srcがString_001_plain_text_zip() throws Exception { 
     653                String src = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/001_plain_text.zip"); 
     654 
     655                Object[] args4dest = { "target/test/test_unzip_srcがString_001_plain_text_zip/" }; 
     656                FileAccessObject dest = (FileAccessObject)FileAccessObject.jsConstructor(null, args4dest, null, true); 
     657 
     658                ValueObject voIn = new ValueObject(); 
     659                voIn.put("src", voIn, src); 
     660                voIn.put("dest", voIn, dest); 
     661                Object[] args = { voIn }; 
     662 
     663                Object actual = ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     664 
     665                assertTrue("返却値がFileAccessObjectであること", actual instanceof FileAccessObject); 
     666                assertEquals("ZIP解凍後のファイルパスが正しい事", dest.jsFunction_path(), ((FileAccessObject)actual).jsFunction_path()); 
     667                assertNotSame("返却値が引数オブジェクトのdestと同じインスタンスではない事", dest, actual); 
     668 
     669                File actualFile = new File(((FileAccessObject)actual).jsFunction_path()); 
     670                assertTrue("出力先ディレクトリが存在する事", actualFile.exists()); 
     671                assertTrue("出力先がディレクトリである事", actualFile.isDirectory()); 
     672 
     673                Object[] args4defrost = { ((FileAccessObject)actual).jsFunction_path(), "001_plain_text.txt" }; 
     674                FileAccessObject actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     675 
     676                String expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/001_plain_text.txt"); 
     677                assertEquals("ZIP解凍後の内容が正しい事", expected, actualDefrost.jsFunction_load()); 
     678        }        
     679 
     680         
     681        // TODO 未実装 
     682        /** 
     683         * @throws Exception 
     684         */ 
     685        public void test_unzip_srcがString_10MB() throws Exception { 
     686                fail("未実装"); 
     687        }        
     688 
     689         
     690        /** 
     691         * @throws Exception 
     692         */ 
     693        public void test_unzip_srcがFileAccessObject_存在しないファイル() throws Exception { 
     694                Object[] args4src = { tempDir + fileSep + "sonzai_shinai" + fileSep + "file_deth"}; 
     695                FileAccessObject src = (FileAccessObject)FileAccessObject.jsConstructor(null, args4src, null, true); 
     696 
     697                ValueObject voIn = new ValueObject(); 
     698                voIn.put("src", voIn, src); 
     699                Object[] args = { voIn }; 
     700 
     701                try{ 
     702                        ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     703                        fail("例外が発生する必要があります"); 
     704                } 
     705                catch(Exception e){ 
     706                        // TODO 例外はJSのエラーオブジェクトを検討 
     707                        assertTrue("IllegalArgumentExceptionが発生する事", e instanceof IllegalArgumentException); 
     708                        assertTrue("CauseがFileNotFoundExceptionである事", e.getCause() instanceof FileNotFoundException); 
     709                } 
     710        }        
     711 
     712         
     713        /** 
     714         * @throws Exception 
     715         */ 
     716        public void test_unzip_srcがFileAccessObject_0KBのZIPファイル() throws Exception { 
     717                URL url = this.getClass().getResource("/org/intra_mart/jssp/script/api/ArchiverObjectTest/002_this_zipfile_is_0KB.zip"); 
     718                Object[] args4src = {url.getPath()}; 
     719                FileAccessObject src = (FileAccessObject)FileAccessObject.jsConstructor(null, args4src, null, true); 
     720 
     721                Object[] args4dest = { "target/test/test_unzip_srcがFileAccessObject_0KBのZIPファイル/" }; 
     722                FileAccessObject dest = (FileAccessObject)FileAccessObject.jsConstructor(null, args4dest, null, true); 
     723 
     724                ValueObject voIn = new ValueObject(); 
     725                voIn.put("src", voIn, src); 
     726                voIn.put("dest", voIn, dest); 
     727                Object[] args = { voIn }; 
     728 
     729                Object actual = ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     730 
     731                assertTrue("返却値がFileAccessObjectであること", actual instanceof FileAccessObject); 
     732                assertEquals("ZIP解凍後のファイルパスが正しい事", dest.jsFunction_path(), ((FileAccessObject)actual).jsFunction_path()); 
     733                assertNotSame("返却値が引数オブジェクトのdestと同じインスタンスではない事", dest, actual); 
     734                 
     735                File actualFile = new File(((FileAccessObject)actual).jsFunction_path()); 
     736                assertTrue("出力先ディレクトリが存在する事", actualFile.exists()); 
     737                assertTrue("出力先がディレクトリである事", actualFile.isDirectory()); 
     738 
     739                assertEquals("出力先ディレクトリが空である事", 0, actualFile.list().length); 
     740        }        
     741 
     742         
     743        /** 
     744         * @throws Exception 
     745         */ 
     746        public void test_unzip_srcがFileAccessObject_001_plain_text_zip() throws Exception { 
     747                URL url = this.getClass().getResource("/org/intra_mart/jssp/script/api/ArchiverObjectTest/001_plain_text.zip"); 
     748                Object[] args4src = {url.getPath()}; 
     749                FileAccessObject src = (FileAccessObject)FileAccessObject.jsConstructor(null, args4src, null, true); 
     750 
     751                Object[] args4dest = { "target/test/test_unzip_srcがFileAccessObject_001_plain_text_zip/" }; 
     752                FileAccessObject dest = (FileAccessObject)FileAccessObject.jsConstructor(null, args4dest, null, true); 
     753 
     754                ValueObject voIn = new ValueObject(); 
     755                voIn.put("src", voIn, src); 
     756                voIn.put("dest", voIn, dest); 
     757                Object[] args = { voIn }; 
     758 
     759                Object actual = ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     760 
     761                assertTrue("返却値がFileAccessObjectであること", actual instanceof FileAccessObject); 
     762                assertEquals("ZIP解凍後のファイルパスが正しい事", dest.jsFunction_path(), ((FileAccessObject)actual).jsFunction_path()); 
     763                assertNotSame("返却値が引数オブジェクトのdestと同じインスタンスではない事", dest, actual); 
     764 
     765                File actualFile = new File(((FileAccessObject)actual).jsFunction_path()); 
     766                assertTrue("出力先ディレクトリが存在する事", actualFile.exists()); 
     767                assertTrue("出力先がディレクトリである事", actualFile.isDirectory()); 
     768 
     769                Object[] args4defrost = { ((FileAccessObject)actual).jsFunction_path(), "001_plain_text.txt" }; 
     770                FileAccessObject actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     771 
     772                String expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/001_plain_text.txt"); 
     773                assertEquals("ZIP解凍後の内容が正しい事", expected, actualDefrost.jsFunction_load()); 
     774        }        
     775 
     776         
     777        // TODO 未実装 
     778        /** 
     779         * @throws Exception 
     780         */ 
     781        public void test_unzip_srcがFileAccessObject_10MBのファイル() throws Exception { 
     782                fail("未実装"); 
     783        }        
     784 
     785         
     786        /** 
     787         * @throws Exception 
     788         */ 
     789        public void test_unzip_srcがString_destがnull() throws Exception { 
     790                String src = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/001_plain_text.zip"); 
     791 
     792                ValueObject voIn = new ValueObject(); 
     793                voIn.put("src", voIn, src); 
     794                voIn.put("dest", voIn, null); 
     795                Object[] args = { voIn }; 
     796 
     797                try{ 
     798                        ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     799                        fail("例外が発生する必要があります"); 
     800                } 
     801                catch(Exception e){ 
     802                        // TODO 例外はJSのエラーオブジェクトを検討 
     803                        assertTrue("IllegalArgumentExceptionが発生する事", e instanceof IllegalArgumentException); 
     804                } 
     805        }        
     806 
     807         
     808        /** 
     809         * @throws Exception 
     810         */ 
     811        public void test_unzip_srcがString_destがUndefined() throws Exception { 
     812                String src = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/001_plain_text.zip"); 
     813 
     814                ValueObject voIn = new ValueObject(); 
     815                voIn.put("src", voIn, src); 
     816                voIn.put("dest", voIn, Undefined.instance); 
     817                Object[] args = { voIn }; 
     818 
     819                try{ 
     820                        ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     821                        fail("例外が発生する必要があります"); 
     822                } 
     823                catch(Exception e){ 
     824                        // TODO 例外はJSのエラーオブジェクトを検討 
     825                        assertTrue("IllegalArgumentExceptionが発生する事", e instanceof IllegalArgumentException); 
     826                } 
     827        }        
     828 
     829         
     830        /** 
     831         * @throws Exception 
     832         */ 
     833        public void test_unzip_srcがString_destプロパティがない() throws Exception { 
     834                String src = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/001_plain_text.zip"); 
     835 
     836                ValueObject voIn = new ValueObject(); 
     837                voIn.put("src", voIn, src); 
     838                voIn.put("no_dest", voIn, null); 
     839                Object[] args = { voIn }; 
     840 
     841                try{ 
     842                        ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     843                        fail("例外が発生する必要があります"); 
     844                } 
     845                catch(Exception e){ 
     846                        // TODO 例外はJSのエラーオブジェクトを検討 
     847                        assertTrue("IllegalArgumentExceptionが発生する事", e instanceof IllegalArgumentException); 
     848                } 
     849        }        
     850 
     851         
     852        /** 
     853         * @throws Exception 
     854         */ 
     855        public void test_unzip_srcがString_destが既存のディレクトリ() throws Exception { 
     856 
     857                String destBaseDir = "target/test/test_unzip_srcがString_destが既存のディレクトリ"; 
     858 
     859                // 準備(開始) 
     860                URL url4pre = this.getClass().getResource("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/002_3_hierarchy"); 
     861                copyDir(new File(url4pre.getPath()), new File(destBaseDir)); 
     862                // 準備(終了) 
     863 
     864                 
     865                URL url = this.getClass().getResource("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy.zip"); 
     866                Object[] args4src = {url.getPath()}; 
     867                FileAccessObject src = (FileAccessObject)FileAccessObject.jsConstructor(null, args4src, null, true); 
     868 
     869                Object[] args4dest = { destBaseDir + "/foo" }; 
     870                FileAccessObject dest = (FileAccessObject)FileAccessObject.jsConstructor(null, args4dest, null, true); 
     871 
     872                ValueObject voIn = new ValueObject(); 
     873                voIn.put("src", voIn, src); 
     874                voIn.put("dest", voIn, dest); 
     875                Object[] args = { voIn }; 
     876 
     877                Object actual = ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     878 
     879                assertTrue("返却値がFileAccessObjectであること", actual instanceof FileAccessObject); 
     880                assertEquals("ZIP解凍後のファイルパスが正しい事", dest.jsFunction_path(), ((FileAccessObject)actual).jsFunction_path()); 
     881                assertNotSame("返却値が引数オブジェクトのdestと同じインスタンスではない事", dest, actual); 
     882 
     883                File actualFile = new File(((FileAccessObject)actual).jsFunction_path()); 
     884                assertTrue("出力先ディレクトリが存在する事", actualFile.exists()); 
     885                assertTrue("出力先がディレクトリである事", actualFile.isDirectory()); 
     886 
     887                String expected; 
     888                Object[] args4defrost = new Object[2]; 
     889                args4defrost[0] = ((FileAccessObject)actual).jsFunction_path(); 
     890                FileAccessObject actualDefrost; 
     891 
     892                args4defrost[1] =  "000_this_file_is_0KB.txt"; 
     893                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     894                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     895                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     896 
     897                args4defrost[1] =  "001_plain_text.txt"; 
     898                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     899                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     900                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     901                 
     902                args4defrost[1] =  "im-jssp-api-list-0.1.2.zip"; 
     903                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     904                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     905                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     906         
     907                args4defrost[1] =  "oim_banner01.gif"; 
     908                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     909                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     910                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     911        }        
     912 
     913         
     914         
     915        /** 
     916         * @throws Exception 
     917         */ 
     918        public void test_unzip_srcがString_destが既存のファイル() throws Exception { 
     919                // ファイル削除後、新しいディレクトリを作成する。 
     920                // (拡張子が付いていたりしてファイルっぽいFileオブジェクトでも強制的にディレクトリとして扱いますよ) 
     921                 
     922                String destBaseDir = "target/test/test_unzip_srcがString_destが既存のファイル"; 
     923                 
     924                // 準備(開始) 
     925                URL url4pre = this.getClass().getResource("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/002_3_hierarchy"); 
     926                copyDir(new File(url4pre.getPath()), new File(destBaseDir)); 
     927                // 準備(終了) 
     928 
     929                 
     930                URL url = this.getClass().getResource("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/002_3_hierarchy.zip"); 
     931                Object[] args4src = {url.getPath()}; 
     932                FileAccessObject src = (FileAccessObject)FileAccessObject.jsConstructor(null, args4src, null, true); 
     933 
     934                Object[] args4dest = { destBaseDir + "/foo/001_plain_text.txt" }; 
     935                FileAccessObject dest = (FileAccessObject)FileAccessObject.jsConstructor(null, args4dest, null, true); 
     936 
     937                ValueObject voIn = new ValueObject(); 
     938                voIn.put("src", voIn, src); 
     939                voIn.put("dest", voIn, dest); 
     940                Object[] args = { voIn }; 
     941 
     942                Object actual = ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     943 
     944                assertTrue("返却値がFileAccessObjectであること", actual instanceof FileAccessObject); 
     945                assertEquals("ZIP解凍後のファイルパスが正しい事", dest.jsFunction_path(), ((FileAccessObject)actual).jsFunction_path()); 
     946                assertNotSame("返却値が引数オブジェクトのdestと同じインスタンスではない事", dest, actual); 
     947 
     948                File actualFile = new File(((FileAccessObject)actual).jsFunction_path()); 
     949                assertTrue("出力先ディレクトリが存在する事", actualFile.exists()); 
     950                assertTrue("出力先がディレクトリである事", actualFile.isDirectory()); 
     951 
     952                String expected; 
     953                Object[] args4defrost = new Object[2]; 
     954                args4defrost[0] = ((FileAccessObject)actual).jsFunction_path(); 
     955                FileAccessObject actualDefrost; 
     956 
     957                args4defrost[1] =  "000_this_file_is_0KB.txt"; 
     958                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     959                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     960                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     961 
     962                args4defrost[1] =  "001_plain_text.txt"; 
     963                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     964                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     965                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     966                 
     967                args4defrost[1] =  "im-jssp-api-list-0.1.2.zip"; 
     968                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     969                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     970                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     971         
     972                args4defrost[1] =  "oim_banner01.gif"; 
     973                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     974                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     975                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     976 
     977                //================= bar ================= 
     978                String dirName4bar = "bar/"; 
     979                args4defrost[1] =  dirName4bar; 
     980                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     981                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     982                assertTrue("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", actualDefrost.jsFunction_isDirectory()); 
     983 
     984                args4defrost[1] =  dirName4bar + "000_this_file_is_0KB.txt"; 
     985                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     986                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     987                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     988 
     989                args4defrost[1] =  dirName4bar + "001_plain_text.txt"; 
     990                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     991                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     992                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     993                 
     994                args4defrost[1] =  dirName4bar + "im-jssp-api-list-0.1.2.zip"; 
     995                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     996                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     997                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     998         
     999                args4defrost[1] =  dirName4bar + "oim_banner01.gif"; 
     1000                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1001                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1002                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1003 
     1004                 
     1005                //================= empty_dir ================= 
     1006                args4defrost[1] =  "empty_dir"; 
     1007                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1008                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1009                assertTrue("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", actualDefrost.jsFunction_isDirectory()); 
     1010                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", 0, new File(actualDefrost.jsFunction_path()).list().length); 
     1011         
     1012                 
     1013                //================= foo ================= 
     1014                String dirName4foo = "foo/"; 
     1015                args4defrost[1] =  dirName4foo; 
     1016                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1017                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1018                assertTrue("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", actualDefrost.jsFunction_isDirectory()); 
     1019 
     1020                args4defrost[1] =  dirName4foo + "000_this_file_is_0KB.txt"; 
     1021                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1022                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1023                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1024 
     1025                args4defrost[1] =  dirName4foo + "001_plain_text.txt"; 
     1026                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1027                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1028                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1029                 
     1030                args4defrost[1] =  dirName4foo + "im-jssp-api-list-0.1.2.zip"; 
     1031                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1032                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1033                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1034         
     1035                args4defrost[1] =  dirName4foo + "oim_banner01.gif"; 
     1036                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1037                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1038                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1039                 
     1040                 
     1041                //================= foo/empty_dir ================= 
     1042                args4defrost[1] =  "foo/empty_dir"; 
     1043                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1044                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1045                assertTrue("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", actualDefrost.jsFunction_isDirectory()); 
     1046                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", 0, new File(actualDefrost.jsFunction_path()).list().length); 
     1047 
     1048                 
     1049                //================= foo/foo2 ================= 
     1050                String dirName4foo2 = "foo/foo2/"; 
     1051                args4defrost[1] =  dirName4foo2; 
     1052                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1053                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1054                assertTrue("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", actualDefrost.jsFunction_isDirectory()); 
     1055 
     1056                args4defrost[1] =  dirName4foo2 + "000_this_file_is_0KB.txt"; 
     1057                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1058                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1059                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1060 
     1061                args4defrost[1] =  dirName4foo2 + "001_plain_text.txt"; 
     1062                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1063                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1064                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1065                 
     1066                args4defrost[1] =  dirName4foo2 + "im-jssp-api-list-0.1.2.zip"; 
     1067                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1068                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1069                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1070         
     1071                args4defrost[1] =  dirName4foo2 + "oim_banner01.gif"; 
     1072                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1073                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1074                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1075 
     1076         
     1077                //================= foo/foo2/empty_dir ================= 
     1078                args4defrost[1] =  "foo/foo2/empty_dir"; 
     1079                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1080                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1081                assertTrue("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", actualDefrost.jsFunction_isDirectory()); 
     1082                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", 0, new File(actualDefrost.jsFunction_path()).list().length); 
     1083        }        
     1084 
     1085         
     1086         
     1087        /** 
     1088         * @throws Exception 
     1089         */ 
     1090        public void test_unzip_srcがString_destが存在しないディレクトリ_親ディレクトリ無し() throws Exception { 
     1091                 
     1092                String destBaseDir = "target/test/test_unzip_srcがString_destが存在しないディレクトリ_親ディレクトリ無し"; 
     1093 
     1094                // 準備(開始) 
     1095                if(new File(destBaseDir).exists()){ 
     1096                        deleteDir(new File(destBaseDir)); 
     1097                } 
     1098                // 準備(終了) 
     1099 
     1100                URL url = this.getClass().getResource("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/002_3_hierarchy.zip"); 
     1101                Object[] args4src = {url.getPath()}; 
     1102                FileAccessObject src = (FileAccessObject)FileAccessObject.jsConstructor(null, args4src, null, true); 
     1103 
     1104                Object[] args4dest = { destBaseDir + "/foo/bar" }; 
     1105                FileAccessObject dest = (FileAccessObject)FileAccessObject.jsConstructor(null, args4dest, null, true); 
     1106 
     1107                ValueObject voIn = new ValueObject(); 
     1108                voIn.put("src", voIn, src); 
     1109                voIn.put("dest", voIn, dest); 
     1110                Object[] args = { voIn }; 
     1111 
     1112                Object actual = ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     1113 
     1114                assertTrue("返却値がFileAccessObjectであること", actual instanceof FileAccessObject); 
     1115                assertEquals("ZIP解凍後のファイルパスが正しい事", dest.jsFunction_path(), ((FileAccessObject)actual).jsFunction_path()); 
     1116                assertNotSame("返却値が引数オブジェクトのdestと同じインスタンスではない事", dest, actual); 
     1117 
     1118                File actualFile = new File(((FileAccessObject)actual).jsFunction_path()); 
     1119                assertTrue("出力先ディレクトリが存在する事", actualFile.exists()); 
     1120                assertTrue("出力先がディレクトリである事", actualFile.isDirectory()); 
     1121 
     1122                String expected; 
     1123                Object[] args4defrost = new Object[2]; 
     1124                args4defrost[0] = ((FileAccessObject)actual).jsFunction_path(); 
     1125                FileAccessObject actualDefrost; 
     1126 
     1127                args4defrost[1] =  "000_this_file_is_0KB.txt"; 
     1128                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1129                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1130                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1131 
     1132                args4defrost[1] =  "001_plain_text.txt"; 
     1133                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1134                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1135                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1136                 
     1137                args4defrost[1] =  "im-jssp-api-list-0.1.2.zip"; 
     1138                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1139                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1140                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1141         
     1142                args4defrost[1] =  "oim_banner01.gif"; 
     1143                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1144                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1145                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1146 
     1147                //================= bar ================= 
     1148                String dirName4bar = "bar/"; 
     1149                args4defrost[1] =  dirName4bar; 
     1150                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1151                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1152                assertTrue("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", actualDefrost.jsFunction_isDirectory()); 
     1153 
     1154                args4defrost[1] =  dirName4bar + "000_this_file_is_0KB.txt"; 
     1155                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1156                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1157                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1158 
     1159                args4defrost[1] =  dirName4bar + "001_plain_text.txt"; 
     1160                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1161                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1162                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1163                 
     1164                args4defrost[1] =  dirName4bar + "im-jssp-api-list-0.1.2.zip"; 
     1165                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1166                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1167                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1168         
     1169                args4defrost[1] =  dirName4bar + "oim_banner01.gif"; 
     1170                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1171                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1172                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1173 
     1174                 
     1175                //================= empty_dir ================= 
     1176                args4defrost[1] =  "empty_dir"; 
     1177                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1178                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1179                assertTrue("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", actualDefrost.jsFunction_isDirectory()); 
     1180                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", 0, new File(actualDefrost.jsFunction_path()).list().length); 
     1181         
     1182                 
     1183                //================= foo ================= 
     1184                String dirName4foo = "foo/"; 
     1185                args4defrost[1] =  dirName4foo; 
     1186                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1187                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1188                assertTrue("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", actualDefrost.jsFunction_isDirectory()); 
     1189 
     1190                args4defrost[1] =  dirName4foo + "000_this_file_is_0KB.txt"; 
     1191                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1192                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1193                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1194 
     1195                args4defrost[1] =  dirName4foo + "001_plain_text.txt"; 
     1196                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1197                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1198                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1199                 
     1200                args4defrost[1] =  dirName4foo + "im-jssp-api-list-0.1.2.zip"; 
     1201                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1202                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1203                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1204         
     1205                args4defrost[1] =  dirName4foo + "oim_banner01.gif"; 
     1206                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1207                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1208                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1209                 
     1210                 
     1211                //================= foo/empty_dir ================= 
     1212                args4defrost[1] =  "foo/empty_dir"; 
     1213                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1214                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1215                assertTrue("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", actualDefrost.jsFunction_isDirectory()); 
     1216                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", 0, new File(actualDefrost.jsFunction_path()).list().length); 
     1217 
     1218                 
     1219                //================= foo/foo2 ================= 
     1220                String dirName4foo2 = "foo/foo2/"; 
     1221                args4defrost[1] =  dirName4foo2; 
     1222                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1223                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1224                assertTrue("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", actualDefrost.jsFunction_isDirectory()); 
     1225 
     1226                args4defrost[1] =  dirName4foo2 + "000_this_file_is_0KB.txt"; 
     1227                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1228                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1229                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1230 
     1231                args4defrost[1] =  dirName4foo2 + "001_plain_text.txt"; 
     1232                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1233                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1234                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1235                 
     1236                args4defrost[1] =  dirName4foo2 + "im-jssp-api-list-0.1.2.zip"; 
     1237                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1238                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1239                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1240         
     1241                args4defrost[1] =  dirName4foo2 + "oim_banner01.gif"; 
     1242                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1243                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1244                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1245 
     1246         
     1247                //================= foo/foo2/empty_dir ================= 
     1248                args4defrost[1] =  "foo/foo2/empty_dir"; 
     1249                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1250                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1251                assertTrue("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", actualDefrost.jsFunction_isDirectory()); 
     1252                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", 0, new File(actualDefrost.jsFunction_path()).list().length); 
     1253        } 
     1254         
     1255        /** 
     1256         * @throws Exception 
     1257         */ 
     1258        public void test_unzip_srcがString_destが存在しないディレクトリ_親ディレクトリ有り() throws Exception { 
     1259                String destBaseDir = "target/test/test_unzip_srcがString_destが存在しないディレクトリ_親ディレクトリ有り"; 
     1260 
     1261                // 準備(開始) 
     1262                if(new File(destBaseDir).exists() == false){ 
     1263                        new File(destBaseDir).mkdirs(); 
     1264                } 
     1265                // 準備(終了) 
     1266 
     1267                URL url = this.getClass().getResource("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy.zip"); 
     1268                Object[] args4src = {url.getPath()}; 
     1269                FileAccessObject src = (FileAccessObject)FileAccessObject.jsConstructor(null, args4src, null, true); 
     1270 
     1271                Object[] args4dest = { destBaseDir + "/foo/bar" }; 
     1272                FileAccessObject dest = (FileAccessObject)FileAccessObject.jsConstructor(null, args4dest, null, true); 
     1273 
     1274                ValueObject voIn = new ValueObject(); 
     1275                voIn.put("src", voIn, src); 
     1276                voIn.put("dest", voIn, dest); 
     1277                Object[] args = { voIn }; 
     1278 
     1279                Object actual = ArchiverObject.jsStaticFunction_unzip(null, null, args, null); 
     1280 
     1281                assertTrue("返却値がFileAccessObjectであること", actual instanceof FileAccessObject); 
     1282                assertEquals("ZIP解凍後のファイルパスが正しい事", dest.jsFunction_path(), ((FileAccessObject)actual).jsFunction_path()); 
     1283                assertNotSame("返却値が引数オブジェクトのdestと同じインスタンスではない事", dest, actual); 
     1284 
     1285                File actualFile = new File(((FileAccessObject)actual).jsFunction_path()); 
     1286                assertTrue("出力先ディレクトリが存在する事", actualFile.exists()); 
     1287                assertTrue("出力先がディレクトリである事", actualFile.isDirectory()); 
     1288 
     1289                String expected; 
     1290                Object[] args4defrost = new Object[2]; 
     1291                args4defrost[0] = ((FileAccessObject)actual).jsFunction_path(); 
     1292                FileAccessObject actualDefrost; 
     1293 
     1294                args4defrost[1] =  "000_this_file_is_0KB.txt"; 
     1295                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1296                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1297                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1298 
     1299                args4defrost[1] =  "001_plain_text.txt"; 
     1300                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1301                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1302                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1303                 
     1304                args4defrost[1] =  "im-jssp-api-list-0.1.2.zip"; 
     1305                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1306                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1307                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1308         
     1309                args4defrost[1] =  "oim_banner01.gif"; 
     1310                expected = load("/org/intra_mart/jssp/script/api/ArchiverObjectTest/dir_test/001_1_hierarchy/" + args4defrost[1]); 
     1311                actualDefrost = (FileAccessObject)FileAccessObject.jsConstructor(null, args4defrost, null, true); 
     1312                assertEquals("ZIP解凍後の内容が正しい事(" + args4defrost[1] + ")", expected, actualDefrost.jsFunction_load()); 
     1313        } 
     1314 
     1315        // TODO 未実装 
     1316        /** 
     1317         * @throws Exception 
     1318         */ 
     1319        public void test_unzip_encoding() throws Exception { 
     1320                fail("未実装"); 
     1321        } 
    4941322         
    4951323         
     
    5281356                return new String(aBuf, "8859_1"); 
    5291357        } 
     1358         
     1359        /** 
     1360         * @param srcDir 
     1361         * @param destDir 
     1362         * @throws IOException 
     1363         */ 
     1364        private void copyDir(File srcDir, File destDir) throws IOException { 
     1365                logger.trace("Copy Dir Enter: from '{}' to '{}'", srcDir.getAbsolutePath(), destDir.getAbsolutePath()); 
     1366                 
     1367                if(srcDir.exists() == false || srcDir.isDirectory() == false){ 
     1368                        throw new IllegalArgumentException(); 
     1369                } 
     1370                 
     1371                if(destDir.exists()){ 
     1372                        deleteDir(destDir); 
     1373                } 
     1374                 
     1375                destDir.mkdirs(); 
     1376                 
     1377                for(String name : srcDir.list()){ 
     1378                        File child4src = new File(srcDir, name); 
     1379                        File child4dest = new File(destDir, name); 
     1380                         
     1381                        if(child4src.isDirectory()){ 
     1382                                child4dest.mkdirs(); 
     1383                                copyDir(child4src, child4dest); // 再帰! 
     1384                        } 
     1385                        else{ 
     1386                                copyFile(child4src, child4dest); 
     1387                        } 
     1388                } 
     1389                 
     1390        } 
     1391 
     1392        /** 
     1393         * @param srcFile 
     1394         * @param destFile 
     1395         * @throws IOException 
     1396         */ 
     1397        private void copyFile(File srcFile, File destFile) throws IOException { 
     1398                 
     1399                java.nio.channels.FileChannel sourceChannel      = new java.io.FileInputStream (srcFile) .getChannel(); 
     1400                java.nio.channels.FileChannel destinationChannel = new java.io.FileOutputStream(destFile).getChannel(); 
     1401                try{ 
     1402                        sourceChannel.transferTo(0, sourceChannel.size(), destinationChannel); 
     1403                        logger.trace("Copy File: from '{}' to '{}'", srcFile.getAbsolutePath(), destFile.getAbsolutePath()); 
     1404                } 
     1405                finally{ 
     1406                        sourceChannel.close(); 
     1407                        destinationChannel.close();              
     1408                } 
     1409        } 
     1410         
     1411        /** 
     1412         * @param targetDir 
     1413         */ 
     1414        private void deleteDir(File targetDir) throws IOException { 
     1415                logger.trace("Delete Dir Enter: '{}'", targetDir.getAbsolutePath()); 
     1416 
     1417                for(String name : targetDir.list()){ 
     1418                        File child = new File(targetDir, name); 
     1419                         
     1420                        if(child.isDirectory()){ 
     1421                                deleteDir(child); // 再帰! 
     1422                        } 
     1423                        else{ 
     1424                                boolean result = child.delete(); 
     1425                                if(!result){ 
     1426                                        throw new IllegalStateException("Deletion failure: " + child.getAbsolutePath()); 
     1427                                } 
     1428 
     1429                                logger.trace("Delete File: '{}'", child.getAbsolutePath()); 
     1430                        } 
     1431                } 
     1432        } 
     1433         
     1434 
    5301435} 
  • trunk/im-jssp/src/test/resources/logback.xml

    r244 r336  
    2222        </logger> 
    2323         
     24        <logger name="org.intra_mart.jssp.script.api.ArchiverObjectTest"> 
     25                <level value="debug"/> 
     26        </logger> 
     27         
    2428</configuration>