11package hudson .plugins .jira ;
22
3+ import static org .hamcrest .MatcherAssert .assertThat ;
4+ import static org .hamcrest .Matchers .is ;
5+ import static org .junit .jupiter .api .Assertions .assertFalse ;
6+ import static org .junit .jupiter .api .Assertions .assertTrue ;
37import static org .mockito .ArgumentMatchers .any ;
4- import static org .mockito .Mockito .*;
8+ import static org .mockito .Mockito .doReturn ;
9+ import static org .mockito .Mockito .mock ;
510
611import hudson .model .Result ;
12+ import hudson .util .XStream2 ;
713import java .util .Collections ;
814import org .jenkinsci .plugins .workflow .cps .CpsFlowDefinition ;
915import org .jenkinsci .plugins .workflow .job .WorkflowJob ;
1016import org .jenkinsci .plugins .workflow .job .WorkflowRun ;
1117import org .junit .jupiter .api .BeforeEach ;
1218import org .junit .jupiter .api .Test ;
1319import org .jvnet .hudson .test .JenkinsRule ;
20+ import org .jvnet .hudson .test .WithoutJenkins ;
1421import org .jvnet .hudson .test .junit .jupiter .WithJenkins ;
1522
1623class JiraVersionCreatorBuilderTest {
@@ -19,6 +26,8 @@ class JiraVersionCreatorBuilderTest {
1926
2027 private JiraSession session ;
2128
29+ private final XStream2 xStream2 = new XStream2 ();
30+
2231 @ BeforeEach
2332 void createMocks () {
2433 site = mock (JiraSite .class );
@@ -38,4 +47,56 @@ void testPipelineWithJiraSite(JenkinsRule r) throws Exception {
3847 WorkflowRun b = r .buildAndAssertStatus (Result .SUCCESS , job );
3948 r .assertLogContains ("[Jira] Creating version Version in project project-key." , b );
4049 }
50+
51+ @ Test
52+ @ WithoutJenkins
53+ void readResolveSetsFailIfAlreadyExistsWhenMissingInConfig () {
54+ String xml = """
55+ <hudson.plugins.jira.JiraVersionCreatorBuilder>
56+ <jiraVersion>1.0</jiraVersion>
57+ <jiraProjectKey>PROJ</jiraProjectKey>
58+ </hudson.plugins.jira.JiraVersionCreatorBuilder>
59+ """ ;
60+ JiraVersionCreatorBuilder builder = (JiraVersionCreatorBuilder ) xStream2 .fromXML (xml );
61+
62+ assertTrue (builder .isFailIfAlreadyExists ());
63+
64+ xml = """
65+ <hudson.plugins.jira.JiraVersionCreator>
66+ <jiraVersion>1.2</jiraVersion>
67+ <jiraProjectKey>PROJ</jiraProjectKey>
68+ </hudson.plugins.jira.JiraVersionCreator>
69+ """ ;
70+ JiraVersionCreator notifier = (JiraVersionCreator ) xStream2 .fromXML (xml );
71+
72+ assertThat (notifier .getJiraProjectKey (), is ("PROJ" ));
73+ assertThat (notifier .getJiraVersion (), is ("1.2" ));
74+ assertTrue (notifier .isFailIfAlreadyExists ());
75+ }
76+
77+ @ Test
78+ @ WithoutJenkins
79+ void readResolvePresentInConfig () {
80+ String xml = """
81+ <hudson.plugins.jira.JiraVersionCreatorBuilder>
82+ <jiraVersion>1.0</jiraVersion>
83+ <jiraProjectKey>PROJ</jiraProjectKey>
84+ <failIfAlreadyExists>false</failIfAlreadyExists>
85+ </hudson.plugins.jira.JiraVersionCreatorBuilder>
86+ """ ;
87+ JiraVersionCreatorBuilder builder = (JiraVersionCreatorBuilder ) xStream2 .fromXML (xml );
88+
89+ assertFalse (builder .isFailIfAlreadyExists ());
90+
91+ xml = """
92+ <hudson.plugins.jira.JiraVersionCreator>
93+ <jiraVersion>1.0</jiraVersion>
94+ <jiraProjectKey>PROJ</jiraProjectKey>
95+ <failIfAlreadyExists>false</failIfAlreadyExists>
96+ </hudson.plugins.jira.JiraVersionCreator>
97+ """ ;
98+ JiraVersionCreator notifier = (JiraVersionCreator ) xStream2 .fromXML (xml );
99+
100+ assertFalse (notifier .isFailIfAlreadyExists ());
101+ }
41102}
0 commit comments