java - the JAR of this class file belongs to container 'Junit 4' which does not allow modifications to source attachements on its entries -
i new junit framework. trying invoke private method in class junit test class using reflection api. getting below error while running junit test:
java.lang.exceptionininitializererror @ com.test.eb.x.xconnection.dbopen(xconnection.java:32) @ com.test.eb.x.admin.xreftablepersister.getdbconnect(xreftablepersister.java:33) @ com.test.eb.persistence.persister.getsortedlist(persister.java:485) @ com.test.eb.x.entity.searchplan.<init>(searchplan.java:49) @ com.test.eb.x.entity.tests.searchplantest.testsearchplan(searchplantest.java:41) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ junit.framework.testcase.runtest(testcase.java:176) @ junit.framework.testcase.runbare(testcase.java:141) @ junit.framework.testresult$1.protect(testresult.java:122) @ junit.framework.testresult.runprotected(testresult.java:142) @ junit.framework.testresult.run(testresult.java:125) @ junit.framework.testcase.run(testcase.java:129) @ junit.framework.testsuite.runtest(testsuite.java:255) @ junit.framework.testsuite.run(testsuite.java:250) @ org.junit.internal.runners.junit38classrunner.run(junit38classrunner.java:84) @ org.eclipse.jdt.internal.junit4.runner.junit4testreference.run(junit4testreference.java:50) @ org.eclipse.jdt.internal.junit.runner.testexecution.run(testexecution.java:38) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:459) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.runtests(remotetestrunner.java:675) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.run(remotetestrunner.java:382) @ org.eclipse.jdt.internal.junit.runner.remotetestrunner.main(remotetestrunner.java:192) caused by: java.util.missingresourceexception: can't find bundle base name x_bootstrap, locale en_us @ java.util.resourcebundle.throwmissingresourceexception(resourcebundle.java:1427) @ java.util.resourcebundle.getbundleimpl(resourcebundle.java:1250) @ java.util.resourcebundle.getbundle(resourcebundle.java:705) @ com.test.eb.x.xproperties.<clinit>(xproperties.java:12) ... 24 more when debugging application see following:
the jar of class file belongs container 'junit 4' not allow modifications source attachements on entries.
actual class
public class sp { private java.lang.string searchtext; private java.lang.string searchoption; private hashtable searchresult; private persistable[] plncategorylist; private plncategory persistplncategory; //css, displaying result private string csstext; private string csstableheader; private string csstable; private boolean allowdelete; public sp() { super(); persistplncategory =new plncategory(); searchtext= ""; searchoption = ""; reftablepersister persister = new xreftablepersister(); setallowdelete(false); //default css values csstext="mainbody"; csstableheader = "bodytableheader"; csstable="bodytable"; try { persistplncategory.setplncatgcd(""); class persclass = class.forname("com.org.plncategory"); plncategorylist = persister.getsortedlist( persclass, new persistabledescriptioncomparator()); } catch (exception e) { e.printstacktrace(); } } private int searchpln() throws xexception { xconnection xconn = new xconnection(); searchresult = new hashtable(); pln plnitem = new pln(), plnitem2; cont contitem; coveragecode covcditem; vector templist; hashtable temptable; stringbuffer sqlcontr = new stringbuffer(""); stringbuffer sqlcovcd = new stringbuffer(""); resultset rscontr; resultset rscovcd; string plncat=""; if (! persistplncategory.getplncatgcd().equals("") && ! persistplncategory.getplncatgcd().equals("0")){ plncat = persistplncategory.getplncatgcd(); } sqlcontr.append("select ") .append(" p.pln_cd, ") .append(" p.pln_version_nbr, ") .append(" pcr.pln_catg_desc, ") .append(" p.pln_eff_dt, ") .append(" p.pln_end_dt, ") .append(" cp.cont_nbr "); sqlcontr.append(" ") .append(" pln p, ") .append(" pln_category_ref pcr, ") .append(" cont_pln cp "); sqlcontr.append(" ") .append(" p.pln_cd = " + getsearchtext().trim()) .append(" , p.pln_catg_cd = pcr.pln_catg_cd ") .append(" , p.pln_cd = cp.pln_cd ") .append(" , p.pln_version_nbr = cp.pln_version_nbr "); if (!plncat.equals("")){ sqlcontr.append(" , p.pln_catg_cd = '" + plncat + "' "); } sqlcontr.append(" order ") .append(" p.pln_cd, ") .append(" p.pln_version_nbr, ") .append(" cp.cont_nbr "); try { xconn.dbopen(); rscontr = xconn.doquery(sqlcontr.tostring()); temptable = new hashtable(); if (rscontr.next()){ plnitem = new pln(); plnitem.setnumber(rscontr.getstring(1).trim()); plnitem.setversion(rscontr.getstring(2).trim()); plnitem.setplncategorytext(rscontr.getstring(3).trim()); plnitem.seteffectivedate(rscontr.getdate(4)); plnitem.setenddate(rscontr.getdate(5)); contitem = new cont(); contitem.setnumber(rscontr.getstring(6).trim()); temptable.put(contitem.tostring(), contitem); while(rscontr.next()){ plnitem2 = new pln(); plnitem2.setnumber(rscontr.getstring(1).trim()); plnitem2.setversion(rscontr.getstring(2).trim()); //just add cont if still same if (plnitem.equals(plnitem2)) { contitem = new cont(); contitem.setnumber(rscontr.getstring(6).trim()); temptable.put(contitem.tostring(), contitem); } else { //save pln info plnitem.setconts(temptable); searchresult.put(plnitem.tostring(), plnitem); //create pln plnitem = new pln(); plnitem.setnumber(rscontr.getstring(1).trim()); plnitem.setversion(rscontr.getstring(2).trim()); plnitem.setplncategorytext(rscontr.getstring(3).trim()); plnitem.seteffectivedate(rscontr.getdate(4)); plnitem.setenddate(rscontr.getdate(5)); temptable = new hashtable(); contitem = new cont(); contitem.setnumber(rscontr.getstring(6).trim()); temptable.put(contitem.tostring(), contitem); } } //save last pln plnitem.setconts(temptable); searchresult.put(plnitem.tostring(), plnitem); } plnitem2 = (pln) searchresult.get(plnitem.tostring()); if (plnitem2 != null){ plnitem2.setcoveragecodes(templist); searchresult.put(plnitem2.tostring(), plnitem2); } } } return searchresult.size();} junit class
public class sptest extends testcase{ public java.lang.string searchtext; public java.lang.string searchoption; @before public void setup() throws exception { searchtext = "963 - 1"; searchoption = "pln"; } @test public void testsearchpln() { try { searchpln searchpln = new searchpln(); method method = searchpln.class.getdeclaredmethod("searchpln", null); method.setaccessible(true); int plnresults = (integer) method.invoke(searchpln, null); assertnotnull(plnresults); } catch (securityexception e) { e.printstacktrace(); } catch (nosuchmethodexception e) { e.printstacktrace(); } catch (illegalargumentexception e) { e.printstacktrace(); } catch (illegalaccessexception e) { e.printstacktrace(); } catch (invocationtargetexception e) { e.printstacktrace(); } finally{ //pbdbconn.dbclose(); } } }
it looks has nothing private method. exception being thrown in constructor of sp on line:
plncategorylist = persister.getsortedlist( persclass, new persistabledescriptioncomparator());
Comments
Post a Comment