mockito - How to Mock repository calls ATG -


can use mockito write tests methods implements repository calls? example below method using named query ebooks book repository -

public repositoryitem[] getebooks(dynamohttpservletrequest request) {     repositoryitem[] results = null;     repository rep = (repository) request.resolvename("/atg/products/bookrepository");     try {         repositoryitemdescriptor desc = rep.getitemdescriptor("book");         repositoryview view = desc.getrepositoryview();         if (view instanceof namedqueryview) {             namedqueryview nameview = (namedqueryview) view;             parametersupportview psupportview = (parametersupportview) view;             string queryname = "getbooks";             query namedquery = nameview.getnamedquery(queryname);             object[] params = { "ebook" }; //book type             results = psupportview.executequery(namedquery, params);         }     } catch (repositoryexception e) {         logerror(e.getmessage());     }     return results; } 

thanks.

yes can. question though testing code or atg in instance?

assuming method above contained in class called getbooks test this:

@injectmocks  private getbooks testobj;  @mock private dynamohttpservletrequest requestmock; @mock private repository bookrepositorymock; @mock private repositoryitemdescriptor bookrepositoryitemdescriptormock; @mock private gsaview bookrepositoryviewmock; //the oddity here gsaview common denominator namedqueryview , parametersupportview  @mock private query namedquerymock;   @mock private repositoryitem resultrepositoryitem1, resultrepositoryitem2;   @beforemethod(groups = { "unit" }) public void setup() throws exception {     testobj = new getbooks();     mockitoannotations.initmocks(this);       mockito.when(requestmock.resolvename("/atg/products/bookrepository")).thenreturn(bookrepositorymock);     mockito.when(bookrepositorymock.getitemdescriptor("book")).thenreturn(bookrepositoryitemdescriptormock);     mockito.when(bookrepositoryitemdescriptormock.getrepositoryview()).thenreturn(bookrepositoryviewmock);     mockito.when(bookrepositoryviewmock.getnamedquery("getbooks")).thenreturn(namedquerymock);      list<repositoryitem> resultarraylist = new arraylist<repositoryitem>();     resultarraylist.add(resultrepositoryitem1);     resultarraylist.add(resultrepositoryitem2);      object[] params = { "ebook" }; //it may simpler test if constant      mockito.when(bookrepositoryviewmock.executequery(namedquerymock, params)).thenreturn(resultarraylist.toarray(new repositoryitem[resultarraylist.size()]));  }  @test(groups = { "unit" }) public void testgetebooks()throws exception{       repositoryitem[] result = testobj.getebooks(requestmock);     assert.asserttrue(result.length == 2); //what want test? } 

this gives greenbar when executed via testng. testing here?

on separate note. should use (protected) constants more since you'll able use them in package scope of mockito tests.


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

How to get multiresult with multicondition in Sql Server -