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]> 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].
> 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/CAG%3D_DutVDx0HPSKfW4Az11svUjUPTvT0X1Er0_RhCVd6godD9w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to