tree fa4c72164bff511fac00b163329f7a7085c5caea
parent 84a2ea56942d97eb95c1dfefaf7a091e3a5a96f8
author Jacek Centkowski <geminica.programs@gmail.com> 1714811740 +0200
committer Jacek Centkowski <geminica.programs@gmail.com> 1714811740 +0200

Fix test for Gerrit's 3.9+

The following issues were fixed:
* the Soy template name no longer supports `.` in front of it - failing
  with:

  com.google.template.soy.error.SoyCompilationException: errors during Soy compilation
  /Users/jcentkowski/workspace/open/gerrit/target/random_name_8693f312_7c74_4925_8770_b7fc505f25e9/etc/its/templates/parameterEscapingDefault.soy:1: error: parse error at '.': expected identifier
  1: {namespace etc.its.templates}{template .parameterEscapingDefault}{@param param1:string}{$param1}{/template}
                                          ^

* mocks should have all methods that are expected to be called stubbed;
  the problem was that older versions of mockito honoured methods
  overriden in child classes and call to `getType` returned the expected
  type- failing wiht:

  1) testAddCommentDelegation(com.googlesource.gerrit.plugins.its.base.workflow.ActionExecutorTest)
  Wanted but not invoked:
  addComment.execute(
      Mock for ItsFacade, hashCode: 1629241006,
      "4711",
      Mock for ActionRequest, hashCode: 1389865849,
      {"issue" = "4711", "project" = "testProject"}
  );
  -> at com.googlesource.gerrit.plugins.its.base.workflow.AddComment.execute(AddComment.java:36)

Change was verified with `stable-3.9`, `stable-3.10` and `master`

Bug: Issue 338535762
Change-Id: I94ab03f446c2f108de0ca7dd4da334b8f51f4e02
