I almost had this working with Mockito but hit a wall...it's possible PowerMock will solve the issue. I'll give this a go!
On Monday, July 8, 2019 at 6:58:44 PM UTC-4, Gavin Mogan wrote: > > You can probably use powermock to override the static > Calendar.getInstance() > > But I don't easily know if that function is used to generate the internal > build time, but you can probably track it down with a breakpoint in > build.class > > On Mon, Jul 8, 2019 at 3:36 PM 'Benjamin Beggs' via Jenkins Developers < > [email protected] <javascript:>> wrote: > >> I think a full implementation with Mockito is untenable. It seems I would >> need to mock an excessive amount of function returns and the result may >> still be inflexible and finnicky. >> >> I'll follow the JenkinsRule method you're talking about...I expect I can >> still mock the date data. Thanks for the help here. :) >> >> On Monday, July 8, 2019 at 6:08:33 PM UTC-4, Gavin Mogan wrote: >>> >>> That shouldn't be the case if you use JenkinsRule, actually create the >>> project, and run a quick echo pipeline a few times. >>> >>> I know from working on the java 11 stuff, that mockito has trouble >>> mocking functions that are final, it'll silently not do so. Its going to >>> save you a ton of headaches to use JenkinsRule. >>> >>> @Rule >>> public JenkinsRule j = new JenkinsRule() >>> >>> p = j.createFreeStyleProject("name"); >>> jenkins.assertBuildStatus(Result.SUCCESS, p.scheduleBuild2(0)); // build >>> 1 >>> jenkins.assertBuildStatus(Result.SUCCESS, p.scheduleBuild2(0)); // build >>> 2 >>> jenkins.assertBuildStatus(Result.SUCCESS, p.scheduleBuild2(0)); // build >>> 3 >>> >>> but i see you are messing with dates, so that might be trickier, i'm not >>> sure. >>> >>> You can try subclassing FreeStyleProject, and overriding the function to >>> return the value you want. >>> If that works fine, then its how the function matching/overriding works >>> in mockito, if it doesn't work, then its the weird final/static stuff that >>> mockito has trouble with. You might need to also use powermock and prepare >>> for test. >>> >>> On Mon, Jul 8, 2019 at 12:40 PM 'Benjamin Beggs' via Jenkins Developers < >>> [email protected]> wrote: >>> >>>> The issue here is with my build history instantiation. All build >>>> retrieve calls return null regardless of method (getFirstBuild, >>>> getLastBuild, getBuildByNumber, etc). >>>> >>>> On Monday, July 8, 2019 at 3:24:47 PM UTC-4, Benjamin Beggs wrote: >>>>> >>>>> I will investigate this further, thanks for pointing this >>>>> implementation out to me. >>>>> >>>>> On Monday, July 8, 2019 at 1:52:40 PM UTC-4, Jesse Glick wrote: >>>>>> >>>>>> On Mon, Jul 8, 2019 at 1:39 PM 'Benjamin Beggs' via Jenkins >>>>>> Developers >>>>>> <[email protected]> wrote: >>>>>> > Do you have an example of a similar implementation for unit testing >>>>>> using jenkinsrule? I may try just porting the tests over to this. >>>>>> >>>>>> I would definitely advise using `JenkinsRule` over mocking >>>>>> frameworks. >>>>>> Slower, but much more realistic (and much more likely to continue >>>>>> running after internal refactorings). Example: >>>>>> >>>>>> >>>>>> https://github.com/jenkinsci/jenkins/blob/a6f5b2b1288d15cd2ea5c2fd9b8916e6397bf795/test/src/test/java/hudson/tasks/LogRotatorTest.java#L67-L82 >>>>>> >>>>>> >>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Jenkins Developers" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/jenkinsci-dev/610d3de0-c377-4c4c-bd2d-db00c84b6f41%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/jenkinsci-dev/610d3de0-c377-4c4c-bd2d-db00c84b6f41%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "Jenkins Developers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jenkinsci-dev/529dd72d-c30c-44df-83b5-e4ffacfa7694%40googlegroups.com >> >> <https://groups.google.com/d/msgid/jenkinsci-dev/529dd72d-c30c-44df-83b5-e4ffacfa7694%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/1dd9d470-5c0a-4ff3-bc3e-78610c593b28%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
