/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.eas.client.scripts; import static org.junit.Assert.*; import org.junit.Test; /** * * @author kl */ public class DependenciesWalkerTest { @Test public void testParseDependencies5() { String va1 = "var report = new P.ServerModule(\"ANY_REPORT_NAME\"); var module = new ANY_MODULE_NAME(); var servModule = new P.ServerModule(\"ANY_MODULE_NAME\");"; DependenciesWalker walker = new DependenciesWalker(va1, (String aIfDependency) -> { return "ANY_MODULE_NAME".equals(aIfDependency); }); walker.walk(); assertFalse(walker.getDependencies().isEmpty()); assertEquals(1, walker.getDependencies().size()); assertEquals(2, walker.getServerDependencies().size()); } @Test public void testParseDependencies6() { String va1 = "P.require([\"ANY_REPORT_NAME\", \"ANY_MODULE_NAME\"], function(){var report = new RPC.Proxy(\"ANY_REPORT_NAME\"); var module = new ANY_MODULE1_NAME(); var servModule = new P.ServerModule(\"ANY_MODULE_NAME\");});"; DependenciesWalker walker = new DependenciesWalker(va1, (aIfDependency) -> { return "ANY_MODULE1_NAME".equals(aIfDependency); }); walker.walk(); assertFalse(walker.getDependencies().isEmpty()); assertEquals(1, walker.getDependencies().size()); assertEquals(2, walker.getServerDependencies().size()); } @Test public void testParseDependencies7() { String va1 = "P.require([\"ANY_REPORT_NAME\", \"ANY_MODULE_NAME\", \"ANY_MODULE1_NAME\"], function(){var report = new P.ServerModule(\"ANY_REPORT_NAME\"); var module = new ANY_MODULE1_NAME(); var servModule = new P.ServerModule(\"ANY_MODULE_NAME\");});"; DependenciesWalker walker = new DependenciesWalker(va1); walker.walk(); assertTrue(walker.getDependencies().isEmpty()); assertEquals(2, walker.getServerDependencies().size()); } @Test public void testParseDependencies8() { String va1 = "P.require(\"ANY_REPORT_NAME\", function(){var m = new ANY_REPORT_NAME(); var report = new P.ServerModule(\"ANY_REPORT_NAME\");});"; DependenciesWalker walker = new DependenciesWalker(va1); walker.walk(); assertTrue(walker.getDependencies().isEmpty()); assertFalse(walker.getServerDependencies().isEmpty()); } @Test public void testParseAmdDependencies1() { String va1 = "" + "P.define(['AnyModule'], function(AnyModule1){" + " return function(){" + " var self = this;" + " var am = new AnyModule1();" + " var sm = P.ServerModule('ServerCalc');" + " };" + "});"; DependenciesWalker walker = new DependenciesWalker(va1, (aIfDependency) -> { return "AnyModule1".equals(aIfDependency); }); walker.walk(); assertTrue(walker.getDependencies().isEmpty()); assertFalse(walker.getServerDependencies().isEmpty()); } @Test public void testParseAmdDependencies2() { String va1 = "" + "define(['AnyModule'], function(AnyModule2){" + " return function(){" + " var self = this;" + " var pm = new AnyModule1();" + " var am = new AnyModule2();" + " var sm = RPC.Proxy('ServerCalc');" + " };" + "});"; DependenciesWalker walker = new DependenciesWalker(va1, (ifDependency) -> { return "AnyModule1".equals(ifDependency) || "AnyModule2".equals(ifDependency); }); walker.walk(); assertFalse(walker.getDependencies().isEmpty()); assertEquals(1, walker.getDependencies().size()); assertTrue(walker.getDependencies().contains("AnyModule1")); assertEquals(1, walker.getServerDependencies().size()); assertTrue(walker.getServerDependencies().contains("ServerCalc")); } @Test public void testParseAmdDependencies3() { String va1 = "" + "var pm = new AnyModule1();" + "define(['AnyModule'], function(AnyModule2){" + " return function(){" + " var self = this;" + " var am = new AnyModule2();" + " var am = new AnyModule3();" + " var sm = RPC.Proxy('ServerCalc');" + " };" + "});"; DependenciesWalker walker = new DependenciesWalker(va1, (ifDependency) -> { return "AnyModule1".equals(ifDependency) || "AnyModule2".equals(ifDependency) || "AnyModule3".equals(ifDependency); }); walker.walk(); assertEquals(2, walker.getDependencies().size()); assertTrue(walker.getDependencies().contains("AnyModule1")); assertTrue(walker.getDependencies().contains("AnyModule3")); assertEquals(1, walker.getServerDependencies().size()); assertTrue(walker.getServerDependencies().contains("ServerCalc")); } @Test public void testParseAmdDependencies4() { String va1 = "" + "P.require(['AnyModule'], function(AnyModule1){" + " return function(){" + " var self = this;" + " var am = new AnyModule1();" + " var sm = P.ServerModule('ServerCalc');" + " };" + "});"; DependenciesWalker walker = new DependenciesWalker(va1, (aIfDependency) -> { return "AnyModule1".equals(aIfDependency); }); walker.walk(); assertTrue(walker.getDependencies().isEmpty()); assertFalse(walker.getServerDependencies().isEmpty()); } @Test public void testParseAmdDependencies5() { String va1 = "" + "require(['AnyModule'], function(AnyModule2){" + " return function(){" + " var self = this;" + " var am = new AnyModule2();" + " var sm = RPC.Proxy('ServerCalc');" + " };" + "});"; DependenciesWalker walker = new DependenciesWalker(va1, (aIfDependency) -> { return "AnyModule2".equals(aIfDependency); }); walker.walk(); assertTrue(walker.getDependencies().isEmpty()); assertFalse(walker.getServerDependencies().isEmpty()); } @Test public void testParseDependencies9() { String va1 = "var q = model.loadEntity('someQuery');"; DependenciesWalker walker = new DependenciesWalker(va1); walker.walk(); assertTrue(walker.getDependencies().isEmpty()); assertTrue(walker.getServerDependencies().isEmpty()); assertEquals(1, walker.getQueryDependencies().size()); assertTrue(walker.getQueryDependencies().contains("someQuery")); } @Test public void testParseDependencies10() { String va1 = "var m = HY.HT.IO.PK.SomeModule;"; DependenciesWalker walker = new DependenciesWalker(va1); walker.walk(); assertTrue(walker.getDependencies().isEmpty()); assertTrue(walker.getServerDependencies().isEmpty()); assertTrue(walker.getQueryDependencies().isEmpty()); } @Test public void testParseDependencies11() { String va1 = "var m = new SomeModule();"; DependenciesWalker walker = new DependenciesWalker(va1, (String aIfDependence) -> { return "SomeModule".equals(aIfDependence); }); walker.walk(); assertEquals(1, walker.getDependencies().size()); assertTrue(walker.getDependencies().contains("SomeModule")); assertTrue(walker.getServerDependencies().isEmpty()); assertTrue(walker.getQueryDependencies().isEmpty()); } @Test public void testParseDependencies12() { String va1 = "var m = SomeConstructor;"; DependenciesWalker walker = new DependenciesWalker(va1, (String aIfDependency) -> { return "SomeConstructor".equals(aIfDependency) || "m".equals(aIfDependency); }); walker.walk(); assertEquals(1, walker.getDependencies().size()); assertTrue(walker.getDependencies().contains("SomeConstructor")); assertTrue(walker.getServerDependencies().isEmpty()); assertTrue(walker.getQueryDependencies().isEmpty()); } @Test public void testTryCatchTryFinally() { String sample = "" + "try{" + "}catch(e){" + " try{" + " }finally{" + " try{" + " }catch(e1){" + " }" + " }" + "}"; DependenciesWalker walker = new DependenciesWalker(sample, null); walker.walk(); assertTrue(walker.getDependencies().isEmpty()); assertTrue(walker.getServerDependencies().isEmpty()); assertTrue(walker.getQueryDependencies().isEmpty()); } @Test public void testTryFinallyTryCatch() { String sample = "" + "try{" + "}finally{" + " try{" + " }catch(e){" + " try{" + " }finally{" + " try{" + " }catch(e1){" + " }" + " }" + " }" + "}"; DependenciesWalker walker = new DependenciesWalker(sample, null); walker.walk(); assertTrue(walker.getDependencies().isEmpty()); assertTrue(walker.getServerDependencies().isEmpty()); assertTrue(walker.getQueryDependencies().isEmpty()); } }