Showing
19 changed files
with
692 additions
and
41 deletions
@@ -27,6 +27,7 @@ import org.apache.http.util.EntityUtils; | @@ -27,6 +27,7 @@ import org.apache.http.util.EntityUtils; | ||
27 | import pl.com.it_crowd.youtrack.api.exceptions.NoResultFoundException; | 27 | import pl.com.it_crowd.youtrack.api.exceptions.NoResultFoundException; |
28 | import pl.com.it_crowd.youtrack.api.exceptions.YoutrackAPIException; | 28 | import pl.com.it_crowd.youtrack.api.exceptions.YoutrackAPIException; |
29 | import pl.com.it_crowd.youtrack.api.exceptions.YoutrackErrorException; | 29 | import pl.com.it_crowd.youtrack.api.exceptions.YoutrackErrorException; |
30 | +import pl.com.it_crowd.youtrack.api.rest.AssigneeList; | ||
30 | import pl.com.it_crowd.youtrack.api.rest.Issue; | 31 | import pl.com.it_crowd.youtrack.api.rest.Issue; |
31 | import pl.com.it_crowd.youtrack.api.rest.Issues; | 32 | import pl.com.it_crowd.youtrack.api.rest.Issues; |
32 | import pl.com.it_crowd.youtrack.api.rest.User; | 33 | import pl.com.it_crowd.youtrack.api.rest.User; |
@@ -207,6 +208,23 @@ public class YoutrackAPI { | @@ -207,6 +208,23 @@ public class YoutrackAPI { | ||
207 | return matcher.group(1); | 208 | return matcher.group(1); |
208 | } | 209 | } |
209 | 210 | ||
211 | + public AssigneeList getAssignees(String project) throws IOException, JAXBException | ||
212 | + { | ||
213 | + final URI uri; | ||
214 | + try { | ||
215 | + uri = new URIBuilder(serviceLocation + "/rest/admin/project/" + project + "/assignee").build(); | ||
216 | + } catch (URISyntaxException e) { | ||
217 | + throw new RuntimeException(e); | ||
218 | + } | ||
219 | + final String responseString = execute(new HttpGet(uri)); | ||
220 | + final Object result = YoutrackUnmarshaller.unmarshall(responseString); | ||
221 | + if (result instanceof AssigneeList) { | ||
222 | + return (AssigneeList) result; | ||
223 | + } else { | ||
224 | + throw new YoutrackAPIException("Unexpected type: " + result); | ||
225 | + } | ||
226 | + } | ||
227 | + | ||
210 | public List<User> getIndividualAssignees(String project) throws IOException, JAXBException | 228 | public List<User> getIndividualAssignees(String project) throws IOException, JAXBException |
211 | { | 229 | { |
212 | final URI uri; | 230 | final URI uri; |
1 | +// | ||
2 | +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 | ||
3 | +// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | ||
4 | +// Any modifications to this file will be lost upon recompilation of the source schema. | ||
5 | +// Generated on: 2012.07.05 at 06:19:38 PM CEST | ||
6 | +// | ||
7 | + | ||
8 | +package pl.com.it_crowd.youtrack.api.rest; | ||
9 | + | ||
10 | +import javax.xml.bind.annotation.XmlAccessType; | ||
11 | +import javax.xml.bind.annotation.XmlAccessorType; | ||
12 | +import javax.xml.bind.annotation.XmlElement; | ||
13 | +import javax.xml.bind.annotation.XmlType; | ||
14 | + | ||
15 | +/** | ||
16 | + * <p>Java class for assignedByType complex type. | ||
17 | + * <p/> | ||
18 | + * <p>The following schema fragment specifies the expected content contained within this class. | ||
19 | + * <p/> | ||
20 | + * <pre> | ||
21 | + * <complexType name="assignedByType"> | ||
22 | + * <complexContent> | ||
23 | + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> | ||
24 | + * <sequence> | ||
25 | + * <element name="userGroupRef" type="{}userGroupRefType"/> | ||
26 | + * </sequence> | ||
27 | + * </restriction> | ||
28 | + * </complexContent> | ||
29 | + * </complexType> | ||
30 | + * </pre> | ||
31 | + */ | ||
32 | +@XmlAccessorType(XmlAccessType.FIELD) | ||
33 | +@XmlType(name = "assignedByType", propOrder = {"userGroupRef"}) | ||
34 | +public class AssignedByType { | ||
35 | +// ------------------------------ FIELDS ------------------------------ | ||
36 | + | ||
37 | + @XmlElement(required = true) | ||
38 | + protected UserGroupRefType userGroupRef; | ||
39 | + | ||
40 | +// --------------------- GETTER / SETTER METHODS --------------------- | ||
41 | + | ||
42 | + /** | ||
43 | + * Gets the value of the userGroupRef property. | ||
44 | + * | ||
45 | + * @return possible object is | ||
46 | + * {@link UserGroupRefType } | ||
47 | + */ | ||
48 | + public UserGroupRefType getUserGroupRef() | ||
49 | + { | ||
50 | + return userGroupRef; | ||
51 | + } | ||
52 | + | ||
53 | + /** | ||
54 | + * Sets the value of the userGroupRef property. | ||
55 | + * | ||
56 | + * @param value allowed object is | ||
57 | + * {@link UserGroupRefType } | ||
58 | + */ | ||
59 | + public void setUserGroupRef(UserGroupRefType value) | ||
60 | + { | ||
61 | + this.userGroupRef = value; | ||
62 | + } | ||
63 | +} |
1 | +// | ||
2 | +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 | ||
3 | +// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | ||
4 | +// Any modifications to this file will be lost upon recompilation of the source schema. | ||
5 | +// Generated on: 2012.07.05 at 06:19:38 PM CEST | ||
6 | +// | ||
7 | + | ||
8 | +package pl.com.it_crowd.youtrack.api.rest; | ||
9 | + | ||
10 | +import javax.xml.bind.annotation.XmlAccessType; | ||
11 | +import javax.xml.bind.annotation.XmlAccessorType; | ||
12 | +import javax.xml.bind.annotation.XmlAttribute; | ||
13 | +import javax.xml.bind.annotation.XmlElement; | ||
14 | +import javax.xml.bind.annotation.XmlRootElement; | ||
15 | +import javax.xml.bind.annotation.XmlType; | ||
16 | +import java.util.ArrayList; | ||
17 | +import java.util.List; | ||
18 | + | ||
19 | +/** | ||
20 | + * <p>Java class for anonymous complex type. | ||
21 | + * <p/> | ||
22 | + * <p>The following schema fragment specifies the expected content contained within this class. | ||
23 | + * <p/> | ||
24 | + * <pre> | ||
25 | + * <complexType> | ||
26 | + * <complexContent> | ||
27 | + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> | ||
28 | + * <sequence> | ||
29 | + * <element name="assignees"> | ||
30 | + * <complexType> | ||
31 | + * <complexContent> | ||
32 | + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> | ||
33 | + * <sequence> | ||
34 | + * <element name="assignee" type="{}assigneeType" maxOccurs="unbounded" minOccurs="0"/> | ||
35 | + * </sequence> | ||
36 | + * </restriction> | ||
37 | + * </complexContent> | ||
38 | + * </complexType> | ||
39 | + * </element> | ||
40 | + * </sequence> | ||
41 | + * <attribute name="groupsUrl" type="{http://www.w3.org/2001/XMLSchema}string" /> | ||
42 | + * <attribute name="individualsUrl" type="{http://www.w3.org/2001/XMLSchema}string" /> | ||
43 | + * </restriction> | ||
44 | + * </complexContent> | ||
45 | + * </complexType> | ||
46 | + * </pre> | ||
47 | + */ | ||
48 | +@XmlAccessorType(XmlAccessType.FIELD) | ||
49 | +@XmlType(name = "", propOrder = {"assignees"}) | ||
50 | +@XmlRootElement(name = "assigneeList") | ||
51 | +public class AssigneeList { | ||
52 | +// ------------------------------ FIELDS ------------------------------ | ||
53 | + | ||
54 | + @XmlElement(required = true) | ||
55 | + protected AssigneeList.Assignees assignees; | ||
56 | + | ||
57 | + @XmlAttribute | ||
58 | + protected String groupsUrl; | ||
59 | + | ||
60 | + @XmlAttribute | ||
61 | + protected String individualsUrl; | ||
62 | + | ||
63 | +// --------------------- GETTER / SETTER METHODS --------------------- | ||
64 | + | ||
65 | + /** | ||
66 | + * Gets the value of the assignees property. | ||
67 | + * | ||
68 | + * @return possible object is | ||
69 | + * {@link AssigneeList.Assignees } | ||
70 | + */ | ||
71 | + public AssigneeList.Assignees getAssignees() | ||
72 | + { | ||
73 | + return assignees; | ||
74 | + } | ||
75 | + | ||
76 | + /** | ||
77 | + * Sets the value of the assignees property. | ||
78 | + * | ||
79 | + * @param value allowed object is | ||
80 | + * {@link AssigneeList.Assignees } | ||
81 | + */ | ||
82 | + public void setAssignees(AssigneeList.Assignees value) | ||
83 | + { | ||
84 | + this.assignees = value; | ||
85 | + } | ||
86 | + | ||
87 | + /** | ||
88 | + * Gets the value of the groupsUrl property. | ||
89 | + * | ||
90 | + * @return possible object is | ||
91 | + * {@link String } | ||
92 | + */ | ||
93 | + public String getGroupsUrl() | ||
94 | + { | ||
95 | + return groupsUrl; | ||
96 | + } | ||
97 | + | ||
98 | + /** | ||
99 | + * Sets the value of the groupsUrl property. | ||
100 | + * | ||
101 | + * @param value allowed object is | ||
102 | + * {@link String } | ||
103 | + */ | ||
104 | + public void setGroupsUrl(String value) | ||
105 | + { | ||
106 | + this.groupsUrl = value; | ||
107 | + } | ||
108 | + | ||
109 | + /** | ||
110 | + * Gets the value of the individualsUrl property. | ||
111 | + * | ||
112 | + * @return possible object is | ||
113 | + * {@link String } | ||
114 | + */ | ||
115 | + public String getIndividualsUrl() | ||
116 | + { | ||
117 | + return individualsUrl; | ||
118 | + } | ||
119 | + | ||
120 | + /** | ||
121 | + * Sets the value of the individualsUrl property. | ||
122 | + * | ||
123 | + * @param value allowed object is | ||
124 | + * {@link String } | ||
125 | + */ | ||
126 | + public void setIndividualsUrl(String value) | ||
127 | + { | ||
128 | + this.individualsUrl = value; | ||
129 | + } | ||
130 | + | ||
131 | +// -------------------------- INNER CLASSES -------------------------- | ||
132 | + | ||
133 | + /** | ||
134 | + * <p>Java class for anonymous complex type. | ||
135 | + * <p/> | ||
136 | + * <p>The following schema fragment specifies the expected content contained within this class. | ||
137 | + * <p/> | ||
138 | + * <pre> | ||
139 | + * <complexType> | ||
140 | + * <complexContent> | ||
141 | + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> | ||
142 | + * <sequence> | ||
143 | + * <element name="assignee" type="{}assigneeType" maxOccurs="unbounded" minOccurs="0"/> | ||
144 | + * </sequence> | ||
145 | + * </restriction> | ||
146 | + * </complexContent> | ||
147 | + * </complexType> | ||
148 | + * </pre> | ||
149 | + */ | ||
150 | + @XmlAccessorType(XmlAccessType.FIELD) | ||
151 | + @XmlType(name = "", propOrder = {"assignees"}) | ||
152 | + public static class Assignees { | ||
153 | +// ------------------------------ FIELDS ------------------------------ | ||
154 | + | ||
155 | + @XmlElement(name = "assignee") | ||
156 | + protected List<AssigneeType> assignees; | ||
157 | + | ||
158 | +// --------------------- GETTER / SETTER METHODS --------------------- | ||
159 | + | ||
160 | + /** | ||
161 | + * Gets the value of the assignees property. | ||
162 | + * <p/> | ||
163 | + * <p/> | ||
164 | + * This accessor method returns a reference to the live list, | ||
165 | + * not a snapshot. Therefore any modification you make to the | ||
166 | + * returned list will be present inside the JAXB object. | ||
167 | + * This is why there is not a <CODE>set</CODE> method for the assignees property. | ||
168 | + * <p/> | ||
169 | + * <p/> | ||
170 | + * For example, to add a new item, do as follows: | ||
171 | + * <pre> | ||
172 | + * getAssignees().add(newItem); | ||
173 | + * </pre> | ||
174 | + * <p/> | ||
175 | + * <p/> | ||
176 | + * <p/> | ||
177 | + * Objects of the following type(s) are allowed in the list | ||
178 | + * {@link AssigneeType } | ||
179 | + */ | ||
180 | + public List<AssigneeType> getAssignees() | ||
181 | + { | ||
182 | + if (assignees == null) { | ||
183 | + assignees = new ArrayList<AssigneeType>(); | ||
184 | + } | ||
185 | + return this.assignees; | ||
186 | + } | ||
187 | + } | ||
188 | +} |
1 | +// | ||
2 | +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 | ||
3 | +// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | ||
4 | +// Any modifications to this file will be lost upon recompilation of the source schema. | ||
5 | +// Generated on: 2012.07.05 at 06:19:38 PM CEST | ||
6 | +// | ||
7 | + | ||
8 | +package pl.com.it_crowd.youtrack.api.rest; | ||
9 | + | ||
10 | +import javax.xml.bind.annotation.XmlAccessType; | ||
11 | +import javax.xml.bind.annotation.XmlAccessorType; | ||
12 | +import javax.xml.bind.annotation.XmlAttribute; | ||
13 | +import javax.xml.bind.annotation.XmlElement; | ||
14 | +import javax.xml.bind.annotation.XmlType; | ||
15 | + | ||
16 | +/** | ||
17 | + * <p>Java class for assigneeType complex type. | ||
18 | + * <p/> | ||
19 | + * <p>The following schema fragment specifies the expected content contained within this class. | ||
20 | + * <p/> | ||
21 | + * <pre> | ||
22 | + * <complexType name="assigneeType"> | ||
23 | + * <complexContent> | ||
24 | + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> | ||
25 | + * <sequence> | ||
26 | + * <element name="assignedBy" type="{}assignedByType"/> | ||
27 | + * </sequence> | ||
28 | + * <attribute name="login" type="{http://www.w3.org/2001/XMLSchema}string" /> | ||
29 | + * <attribute name="isIndividualAssignee" type="{http://www.w3.org/2001/XMLSchema}string" /> | ||
30 | + * </restriction> | ||
31 | + * </complexContent> | ||
32 | + * </complexType> | ||
33 | + * </pre> | ||
34 | + */ | ||
35 | +@XmlAccessorType(XmlAccessType.FIELD) | ||
36 | +@XmlType(name = "assigneeType", propOrder = {"assignedBy"}) | ||
37 | +public class AssigneeType { | ||
38 | +// ------------------------------ FIELDS ------------------------------ | ||
39 | + | ||
40 | + @XmlElement(required = true) | ||
41 | + protected AssignedByType assignedBy; | ||
42 | + | ||
43 | + @XmlAttribute | ||
44 | + protected String isIndividualAssignee; | ||
45 | + | ||
46 | + @XmlAttribute | ||
47 | + protected String login; | ||
48 | + | ||
49 | +// --------------------- GETTER / SETTER METHODS --------------------- | ||
50 | + | ||
51 | + /** | ||
52 | + * Gets the value of the assignedBy property. | ||
53 | + * | ||
54 | + * @return possible object is | ||
55 | + * {@link AssignedByType } | ||
56 | + */ | ||
57 | + public AssignedByType getAssignedBy() | ||
58 | + { | ||
59 | + return assignedBy; | ||
60 | + } | ||
61 | + | ||
62 | + /** | ||
63 | + * Sets the value of the assignedBy property. | ||
64 | + * | ||
65 | + * @param value allowed object is | ||
66 | + * {@link AssignedByType } | ||
67 | + */ | ||
68 | + public void setAssignedBy(AssignedByType value) | ||
69 | + { | ||
70 | + this.assignedBy = value; | ||
71 | + } | ||
72 | + | ||
73 | + /** | ||
74 | + * Gets the value of the isIndividualAssignee property. | ||
75 | + * | ||
76 | + * @return possible object is | ||
77 | + * {@link String } | ||
78 | + */ | ||
79 | + public String getIsIndividualAssignee() | ||
80 | + { | ||
81 | + return isIndividualAssignee; | ||
82 | + } | ||
83 | + | ||
84 | + /** | ||
85 | + * Sets the value of the isIndividualAssignee property. | ||
86 | + * | ||
87 | + * @param value allowed object is | ||
88 | + * {@link String } | ||
89 | + */ | ||
90 | + public void setIsIndividualAssignee(String value) | ||
91 | + { | ||
92 | + this.isIndividualAssignee = value; | ||
93 | + } | ||
94 | + | ||
95 | + /** | ||
96 | + * Gets the value of the login property. | ||
97 | + * | ||
98 | + * @return possible object is | ||
99 | + * {@link String } | ||
100 | + */ | ||
101 | + public String getLogin() | ||
102 | + { | ||
103 | + return login; | ||
104 | + } | ||
105 | + | ||
106 | + /** | ||
107 | + * Sets the value of the login property. | ||
108 | + * | ||
109 | + * @param value allowed object is | ||
110 | + * {@link String } | ||
111 | + */ | ||
112 | + public void setLogin(String value) | ||
113 | + { | ||
114 | + this.login = value; | ||
115 | + } | ||
116 | +} |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 | 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 |
3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | 3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> |
4 | // Any modifications to this file will be lost upon recompilation of the source schema. | 4 | // Any modifications to this file will be lost upon recompilation of the source schema. |
5 | -// Generated on: 2012.07.03 at 12:32:28 PM CEST | 5 | +// Generated on: 2012.07.05 at 06:19:38 PM CEST |
6 | // | 6 | // |
7 | 7 | ||
8 | package pl.com.it_crowd.youtrack.api.rest; | 8 | package pl.com.it_crowd.youtrack.api.rest; |
@@ -63,7 +63,7 @@ public class Comment { | @@ -63,7 +63,7 @@ public class Comment { | ||
63 | @XmlAttribute | 63 | @XmlAttribute |
64 | protected String author; | 64 | protected String author; |
65 | 65 | ||
66 | - @XmlElementRefs({@XmlElementRef(name = "replies", type = JAXBElement.class), @XmlElementRef(name = "value", type = JAXBElement.class)}) | 66 | + @XmlElementRefs({@XmlElementRef(name = "value", type = JAXBElement.class), @XmlElementRef(name = "replies", type = JAXBElement.class)}) |
67 | @XmlMixed | 67 | @XmlMixed |
68 | protected List<Serializable> content; | 68 | protected List<Serializable> content; |
69 | 69 | ||
@@ -130,9 +130,9 @@ public class Comment { | @@ -130,9 +130,9 @@ public class Comment { | ||
130 | * <p/> | 130 | * <p/> |
131 | * <p/> | 131 | * <p/> |
132 | * Objects of the following type(s) are allowed in the list | 132 | * Objects of the following type(s) are allowed in the list |
133 | - * {@link JAXBElement }{@code <}{@link String }{@code >} | ||
134 | - * {@link JAXBElement }{@code <}{@link Comment.Value }{@code >} | ||
135 | * {@link String } | 133 | * {@link String } |
134 | + * {@link JAXBElement }{@code <}{@link Comment.Value }{@code >} | ||
135 | + * {@link JAXBElement }{@code <}{@link String }{@code >} | ||
136 | */ | 136 | */ |
137 | public List<Serializable> getContent() | 137 | public List<Serializable> getContent() |
138 | { | 138 | { |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 | 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 |
3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | 3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> |
4 | // Any modifications to this file will be lost upon recompilation of the source schema. | 4 | // Any modifications to this file will be lost upon recompilation of the source schema. |
5 | -// Generated on: 2012.07.03 at 12:32:28 PM CEST | 5 | +// Generated on: 2012.07.05 at 06:19:38 PM CEST |
6 | // | 6 | // |
7 | 7 | ||
8 | package pl.com.it_crowd.youtrack.api.rest; | 8 | package pl.com.it_crowd.youtrack.api.rest; |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 | 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 |
3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | 3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> |
4 | // Any modifications to this file will be lost upon recompilation of the source schema. | 4 | // Any modifications to this file will be lost upon recompilation of the source schema. |
5 | -// Generated on: 2012.07.03 at 12:32:28 PM CEST | 5 | +// Generated on: 2012.07.05 at 06:19:38 PM CEST |
6 | // | 6 | // |
7 | 7 | ||
8 | package pl.com.it_crowd.youtrack.api.rest; | 8 | package pl.com.it_crowd.youtrack.api.rest; |
@@ -40,7 +40,7 @@ import java.util.List; | @@ -40,7 +40,7 @@ import java.util.List; | ||
40 | public class Issue { | 40 | public class Issue { |
41 | // ------------------------------ FIELDS ------------------------------ | 41 | // ------------------------------ FIELDS ------------------------------ |
42 | 42 | ||
43 | - @XmlElements({@XmlElement(name = "field", type = Field.class), @XmlElement(name = "comment", type = Comment.class)}) | 43 | + @XmlElements({@XmlElement(name = "comment", type = Comment.class), @XmlElement(name = "field", type = Field.class)}) |
44 | protected List<Object> fieldOrComment; | 44 | protected List<Object> fieldOrComment; |
45 | 45 | ||
46 | @XmlAttribute | 46 | @XmlAttribute |
@@ -66,8 +66,8 @@ public class Issue { | @@ -66,8 +66,8 @@ public class Issue { | ||
66 | * <p/> | 66 | * <p/> |
67 | * <p/> | 67 | * <p/> |
68 | * Objects of the following type(s) are allowed in the list | 68 | * Objects of the following type(s) are allowed in the list |
69 | - * {@link Field } | ||
70 | * {@link Comment } | 69 | * {@link Comment } |
70 | + * {@link Field } | ||
71 | */ | 71 | */ |
72 | public List<Object> getFieldOrComment() | 72 | public List<Object> getFieldOrComment() |
73 | { | 73 | { |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 | 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 |
3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | 3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> |
4 | // Any modifications to this file will be lost upon recompilation of the source schema. | 4 | // Any modifications to this file will be lost upon recompilation of the source schema. |
5 | -// Generated on: 2012.07.03 at 12:32:28 PM CEST | 5 | +// Generated on: 2012.07.05 at 06:19:38 PM CEST |
6 | // | 6 | // |
7 | 7 | ||
8 | package pl.com.it_crowd.youtrack.api.rest; | 8 | package pl.com.it_crowd.youtrack.api.rest; |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 | 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 |
3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | 3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> |
4 | // Any modifications to this file will be lost upon recompilation of the source schema. | 4 | // Any modifications to this file will be lost upon recompilation of the source schema. |
5 | -// Generated on: 2012.07.03 at 12:32:28 PM CEST | 5 | +// Generated on: 2012.07.05 at 06:19:38 PM CEST |
6 | // | 6 | // |
7 | 7 | ||
8 | package pl.com.it_crowd.youtrack.api.rest; | 8 | package pl.com.it_crowd.youtrack.api.rest; |
@@ -35,6 +35,8 @@ public class ObjectFactory { | @@ -35,6 +35,8 @@ public class ObjectFactory { | ||
35 | 35 | ||
36 | private final static QName _Error_QNAME = new QName("", "error"); | 36 | private final static QName _Error_QNAME = new QName("", "error"); |
37 | 37 | ||
38 | + private final static QName _Int_QNAME = new QName("", "int"); | ||
39 | + | ||
38 | private final static QName _Issue_QNAME = new QName("", "issue"); | 40 | private final static QName _Issue_QNAME = new QName("", "issue"); |
39 | 41 | ||
40 | // --------------------------- CONSTRUCTORS --------------------------- | 42 | // --------------------------- CONSTRUCTORS --------------------------- |
@@ -49,6 +51,38 @@ public class ObjectFactory { | @@ -49,6 +51,38 @@ public class ObjectFactory { | ||
49 | // -------------------------- OTHER METHODS -------------------------- | 51 | // -------------------------- OTHER METHODS -------------------------- |
50 | 52 | ||
51 | /** | 53 | /** |
54 | + * Create an instance of {@link AssignedByType } | ||
55 | + */ | ||
56 | + public AssignedByType createAssignedByType() | ||
57 | + { | ||
58 | + return new AssignedByType(); | ||
59 | + } | ||
60 | + | ||
61 | + /** | ||
62 | + * Create an instance of {@link AssigneeList } | ||
63 | + */ | ||
64 | + public AssigneeList createAssigneeList() | ||
65 | + { | ||
66 | + return new AssigneeList(); | ||
67 | + } | ||
68 | + | ||
69 | + /** | ||
70 | + * Create an instance of {@link AssigneeList.Assignees } | ||
71 | + */ | ||
72 | + public AssigneeList.Assignees createAssigneeListAssignees() | ||
73 | + { | ||
74 | + return new AssigneeList.Assignees(); | ||
75 | + } | ||
76 | + | ||
77 | + /** | ||
78 | + * Create an instance of {@link AssigneeType } | ||
79 | + */ | ||
80 | + public AssigneeType createAssigneeType() | ||
81 | + { | ||
82 | + return new AssigneeType(); | ||
83 | + } | ||
84 | + | ||
85 | + /** | ||
52 | * Create an instance of {@link Comment } | 86 | * Create an instance of {@link Comment } |
53 | */ | 87 | */ |
54 | public Comment createComment() | 88 | public Comment createComment() |
@@ -108,6 +142,15 @@ public class ObjectFactory { | @@ -108,6 +142,15 @@ public class ObjectFactory { | ||
108 | } | 142 | } |
109 | 143 | ||
110 | /** | 144 | /** |
145 | + * Create an instance of {@link JAXBElement }{@code <}{@link Short }{@code >}} | ||
146 | + */ | ||
147 | + @XmlElementDecl(namespace = "", name = "int") | ||
148 | + public JAXBElement<Short> createInt(Short value) | ||
149 | + { | ||
150 | + return new JAXBElement<Short>(_Int_QNAME, Short.class, null, value); | ||
151 | + } | ||
152 | + | ||
153 | + /** | ||
111 | * Create an instance of {@link Issue } | 154 | * Create an instance of {@link Issue } |
112 | */ | 155 | */ |
113 | public Issue createIssue() | 156 | public Issue createIssue() |
@@ -141,6 +184,14 @@ public class ObjectFactory { | @@ -141,6 +184,14 @@ public class ObjectFactory { | ||
141 | } | 184 | } |
142 | 185 | ||
143 | /** | 186 | /** |
187 | + * Create an instance of {@link UserGroupRefType } | ||
188 | + */ | ||
189 | + public UserGroupRefType createUserGroupRefType() | ||
190 | + { | ||
191 | + return new UserGroupRefType(); | ||
192 | + } | ||
193 | + | ||
194 | + /** | ||
144 | * Create an instance of {@link UserRefs } | 195 | * Create an instance of {@link UserRefs } |
145 | */ | 196 | */ |
146 | public UserRefs createUserRefs() | 197 | public UserRefs createUserRefs() |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 | 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 |
3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | 3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> |
4 | // Any modifications to this file will be lost upon recompilation of the source schema. | 4 | // Any modifications to this file will be lost upon recompilation of the source schema. |
5 | -// Generated on: 2012.07.03 at 12:32:28 PM CEST | 5 | +// Generated on: 2012.07.05 at 06:19:38 PM CEST |
6 | // | 6 | // |
7 | 7 | ||
8 | package pl.com.it_crowd.youtrack.api.rest; | 8 | package pl.com.it_crowd.youtrack.api.rest; |
1 | +// | ||
2 | +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 | ||
3 | +// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | ||
4 | +// Any modifications to this file will be lost upon recompilation of the source schema. | ||
5 | +// Generated on: 2012.07.05 at 06:19:38 PM CEST | ||
6 | +// | ||
7 | + | ||
8 | +package pl.com.it_crowd.youtrack.api.rest; | ||
9 | + | ||
10 | +import javax.xml.bind.annotation.XmlAccessType; | ||
11 | +import javax.xml.bind.annotation.XmlAccessorType; | ||
12 | +import javax.xml.bind.annotation.XmlAttribute; | ||
13 | +import javax.xml.bind.annotation.XmlType; | ||
14 | +import javax.xml.bind.annotation.XmlValue; | ||
15 | + | ||
16 | +/** | ||
17 | + * <p>Java class for userGroupRefType complex type. | ||
18 | + * <p/> | ||
19 | + * <p>The following schema fragment specifies the expected content contained within this class. | ||
20 | + * <p/> | ||
21 | + * <pre> | ||
22 | + * <complexType name="userGroupRefType"> | ||
23 | + * <simpleContent> | ||
24 | + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> | ||
25 | + * <attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" /> | ||
26 | + * <attribute name="url" type="{http://www.w3.org/2001/XMLSchema}string" /> | ||
27 | + * </extension> | ||
28 | + * </simpleContent> | ||
29 | + * </complexType> | ||
30 | + * </pre> | ||
31 | + */ | ||
32 | +@XmlAccessorType(XmlAccessType.FIELD) | ||
33 | +@XmlType(name = "userGroupRefType", propOrder = {"value"}) | ||
34 | +public class UserGroupRefType { | ||
35 | +// ------------------------------ FIELDS ------------------------------ | ||
36 | + | ||
37 | + @XmlAttribute | ||
38 | + protected String name; | ||
39 | + | ||
40 | + @XmlAttribute | ||
41 | + protected String url; | ||
42 | + | ||
43 | + @XmlValue | ||
44 | + protected String value; | ||
45 | + | ||
46 | +// --------------------- GETTER / SETTER METHODS --------------------- | ||
47 | + | ||
48 | + /** | ||
49 | + * Gets the value of the name property. | ||
50 | + * | ||
51 | + * @return possible object is | ||
52 | + * {@link String } | ||
53 | + */ | ||
54 | + public String getName() | ||
55 | + { | ||
56 | + return name; | ||
57 | + } | ||
58 | + | ||
59 | + /** | ||
60 | + * Sets the value of the name property. | ||
61 | + * | ||
62 | + * @param value allowed object is | ||
63 | + * {@link String } | ||
64 | + */ | ||
65 | + public void setName(String value) | ||
66 | + { | ||
67 | + this.name = value; | ||
68 | + } | ||
69 | + | ||
70 | + /** | ||
71 | + * Gets the value of the url property. | ||
72 | + * | ||
73 | + * @return possible object is | ||
74 | + * {@link String } | ||
75 | + */ | ||
76 | + public String getUrl() | ||
77 | + { | ||
78 | + return url; | ||
79 | + } | ||
80 | + | ||
81 | + /** | ||
82 | + * Sets the value of the url property. | ||
83 | + * | ||
84 | + * @param value allowed object is | ||
85 | + * {@link String } | ||
86 | + */ | ||
87 | + public void setUrl(String value) | ||
88 | + { | ||
89 | + this.url = value; | ||
90 | + } | ||
91 | + | ||
92 | + /** | ||
93 | + * Gets the value of the value property. | ||
94 | + * | ||
95 | + * @return possible object is | ||
96 | + * {@link String } | ||
97 | + */ | ||
98 | + public String getValue() | ||
99 | + { | ||
100 | + return value; | ||
101 | + } | ||
102 | + | ||
103 | + /** | ||
104 | + * Sets the value of the value property. | ||
105 | + * | ||
106 | + * @param value allowed object is | ||
107 | + * {@link String } | ||
108 | + */ | ||
109 | + public void setValue(String value) | ||
110 | + { | ||
111 | + this.value = value; | ||
112 | + } | ||
113 | +} |
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 | 2 | // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-833 |
3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | 3 | // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> |
4 | // Any modifications to this file will be lost upon recompilation of the source schema. | 4 | // Any modifications to this file will be lost upon recompilation of the source schema. |
5 | -// Generated on: 2012.07.03 at 12:32:28 PM CEST | 5 | +// Generated on: 2012.07.05 at 06:19:38 PM CEST |
6 | // | 6 | // |
7 | 7 | ||
8 | package pl.com.it_crowd.youtrack.api.rest; | 8 | package pl.com.it_crowd.youtrack.api.rest; |
@@ -15,6 +15,12 @@ | @@ -15,6 +15,12 @@ | ||
15 | </jxb:bindings> | 15 | </jxb:bindings> |
16 | </jxb:bindings> | 16 | </jxb:bindings> |
17 | 17 | ||
18 | + <jxb:bindings schemaLocation="../xsd/assignees.xsd" node="/xs:schema"> | ||
19 | + <jxb:bindings node=".//xs:element[@name='assigneeList']//xs:sequence[@id='innerAssignees']"> | ||
20 | + <jxb:property name="assignees"/> | ||
21 | + </jxb:bindings> | ||
22 | + </jxb:bindings> | ||
23 | + | ||
18 | <jxb:bindings schemaLocation="../xsd/types.xsd" node="/xs:schema"> | 24 | <jxb:bindings schemaLocation="../xsd/types.xsd" node="/xs:schema"> |
19 | 25 | ||
20 | <jxb:globalBindings localScoping="nested"/> | 26 | <jxb:globalBindings localScoping="nested"/> |
src/main/xsd/assignees.xml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||
2 | +<assigneeList xsi:noNamespaceSchemaLocation="assignees.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | + groupsUrl="https://it-crowd.com.pl/youtrack/rest/admin/project/QWE_QA/assignee/group" | ||
4 | + individualsUrl="https://it-crowd.com.pl/youtrack/rest/admin/project/QWE_QA/assignee/individual"> | ||
5 | + <assignees> | ||
6 | + <assignee login="bernard" isIndividualAssignee="false"> | ||
7 | + <assignedBy> | ||
8 | + <userGroupRef name="IT Crowd team" url="https://it-crowd.com.pl/youtrack/rest/admin/group/IT%20Crowd%20team"/> | ||
9 | + </assignedBy> | ||
10 | + </assignee> | ||
11 | + <assignee login="jacek" isIndividualAssignee="false"> | ||
12 | + <assignedBy> | ||
13 | + <userGroupRef name="IT Crowd team" url="https://it-crowd.com.pl/youtrack/rest/admin/group/IT%20Crowd%20team"/> | ||
14 | + </assignedBy> | ||
15 | + </assignee> | ||
16 | + <assignee login="karol" isIndividualAssignee="false"> | ||
17 | + <assignedBy> | ||
18 | + <userGroupRef name="IT Crowd team" url="https://it-crowd.com.pl/youtrack/rest/admin/group/IT%20Crowd%20team"/> | ||
19 | + </assignedBy> | ||
20 | + </assignee> | ||
21 | + <assignee login="k.miksa" isIndividualAssignee="false"> | ||
22 | + <assignedBy> | ||
23 | + <userGroupRef name="IT Crowd team" url="https://it-crowd.com.pl/youtrack/rest/admin/group/IT%20Crowd%20team"/> | ||
24 | + </assignedBy> | ||
25 | + </assignee> | ||
26 | + <assignee login="tomek" isIndividualAssignee="false"> | ||
27 | + <assignedBy> | ||
28 | + <userGroupRef name="IT Crowd team" url="https://it-crowd.com.pl/youtrack/rest/admin/group/IT%20Crowd%20team"/> | ||
29 | + </assignedBy> | ||
30 | + </assignee> | ||
31 | + <assignee login="l.gladek" isIndividualAssignee="false"> | ||
32 | + <assignedBy> | ||
33 | + <userGroupRef name="IT Crowd team" url="https://it-crowd.com.pl/youtrack/rest/admin/group/IT%20Crowd%20team"/> | ||
34 | + </assignedBy> | ||
35 | + </assignee> | ||
36 | + </assignees> | ||
37 | +</assigneeList> |
src/main/xsd/assignees.xsd
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> | ||
3 | + | ||
4 | + <xs:include schemaLocation="types.xsd"/> | ||
5 | + | ||
6 | + <xs:element name="assigneeList"> | ||
7 | + <xs:complexType> | ||
8 | + <xs:sequence id="assignees" minOccurs="1" maxOccurs="1"> | ||
9 | + <xs:element name="assignees"> | ||
10 | + <xs:complexType> | ||
11 | + <xs:sequence id="innerAssignees"> | ||
12 | + <xs:element name="assignee" type="assigneeType" maxOccurs="unbounded" minOccurs="0"/> | ||
13 | + </xs:sequence> | ||
14 | + </xs:complexType> | ||
15 | + </xs:element> | ||
16 | + </xs:sequence> | ||
17 | + <xs:attribute type="xs:string" name="groupsUrl"/> | ||
18 | + <xs:attribute type="xs:string" name="individualsUrl"/> | ||
19 | + </xs:complexType> | ||
20 | + </xs:element> | ||
21 | + | ||
22 | +</xs:schema> |
src/main/xsd/issuesCount.xml
0 → 100644
src/main/xsd/issuesCount.xsd
0 → 100644
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.1.0"> | 2 | <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.1.0"> |
3 | 3 | ||
4 | + <xs:complexType name="assignedByType"> | ||
5 | + <xs:sequence> | ||
6 | + <xs:element name="userGroupRef" type="userGroupRefType"/> | ||
7 | + </xs:sequence> | ||
8 | + </xs:complexType> | ||
9 | + | ||
10 | + <xs:complexType name="assigneeType"> | ||
11 | + <xs:sequence> | ||
12 | + <xs:element name="assignedBy" type="assignedByType"/> | ||
13 | + </xs:sequence> | ||
14 | + <xs:attribute type="xs:string" name="login" use="optional"/> | ||
15 | + <xs:attribute type="xs:string" name="isIndividualAssignee" use="optional"/> | ||
16 | + </xs:complexType> | ||
4 | 17 | ||
5 | <xs:complexType name="fieldType"> | 18 | <xs:complexType name="fieldType"> |
6 | <xs:sequence id="value" maxOccurs="unbounded" minOccurs="0"> | 19 | <xs:sequence id="value" maxOccurs="unbounded" minOccurs="0"> |
@@ -46,6 +59,15 @@ | @@ -46,6 +59,15 @@ | ||
46 | <xs:attribute type="xs:string" name="name" use="optional"/> | 59 | <xs:attribute type="xs:string" name="name" use="optional"/> |
47 | </xs:complexType> | 60 | </xs:complexType> |
48 | 61 | ||
62 | + <xs:complexType name="userGroupRefType"> | ||
63 | + <xs:simpleContent> | ||
64 | + <xs:extension base="xs:string"> | ||
65 | + <xs:attribute type="xs:string" name="name" use="optional"/> | ||
66 | + <xs:attribute type="xs:string" name="url" use="optional"/> | ||
67 | + </xs:extension> | ||
68 | + </xs:simpleContent> | ||
69 | + </xs:complexType> | ||
70 | + | ||
49 | <xs:complexType name="userType"> | 71 | <xs:complexType name="userType"> |
50 | <xs:attribute type="xs:string" name="login" use="required"/> | 72 | <xs:attribute type="xs:string" name="login" use="required"/> |
51 | <xs:attribute type="xs:anyURI" name="url" use="optional"/> | 73 | <xs:attribute type="xs:anyURI" name="url" use="optional"/> |
@@ -28,35 +28,6 @@ public class YoutrackAPITest { | @@ -28,35 +28,6 @@ public class YoutrackAPITest { | ||
28 | // -------------------------- OTHER METHODS -------------------------- | 28 | // -------------------------- OTHER METHODS -------------------------- |
29 | 29 | ||
30 | @Test | 30 | @Test |
31 | - public void commandAllStates() throws IOException, JAXBException | ||
32 | - { | ||
33 | - final YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); | ||
34 | - final String issueId = "TST-1"; | ||
35 | - IssueWrapper issue; | ||
36 | - final StateValues[] stateValueses = StateValues.values(); | ||
37 | - for (StateValues state : stateValueses) { | ||
38 | - if (state.getCommandValue() != null && !StateValues.Duplicate.equals(state)) { | ||
39 | - api.command(issueId, Command.stateCommand(state)); | ||
40 | - issue = api.getIssue(issueId); | ||
41 | - Assert.assertNotNull(issue); | ||
42 | - Assert.assertEquals(state.getCommandValue(), issue.getFieldValue(Fields.state)); | ||
43 | - } | ||
44 | - } | ||
45 | - } | ||
46 | - | ||
47 | - @Test | ||
48 | - public void getIndividualAssignees() throws IOException, JAXBException | ||
49 | - { | ||
50 | - final YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); | ||
51 | - final List<User> assignees = api.getIndividualAssignees("TST"); | ||
52 | - Assert.assertNotNull(assignees); | ||
53 | - Assert.assertEquals(2, assignees.size()); | ||
54 | - for (User user : assignees) { | ||
55 | - Assert.assertTrue("bernard".equals(user.getLogin()) || "root".equals(user.getLogin())); | ||
56 | - } | ||
57 | - } | ||
58 | - | ||
59 | - @Test | ||
60 | public void command() throws IOException, JAXBException | 31 | public void command() throws IOException, JAXBException |
61 | { | 32 | { |
62 | final YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); | 33 | final YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); |
@@ -98,6 +69,23 @@ public class YoutrackAPITest { | @@ -98,6 +69,23 @@ public class YoutrackAPITest { | ||
98 | } | 69 | } |
99 | 70 | ||
100 | @Test | 71 | @Test |
72 | + public void commandAllStates() throws IOException, JAXBException | ||
73 | + { | ||
74 | + final YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); | ||
75 | + final String issueId = "TST-1"; | ||
76 | + IssueWrapper issue; | ||
77 | + final StateValues[] stateValueses = StateValues.values(); | ||
78 | + for (StateValues state : stateValueses) { | ||
79 | + if (state.getCommandValue() != null && !StateValues.Duplicate.equals(state)) { | ||
80 | + api.command(issueId, Command.stateCommand(state)); | ||
81 | + issue = api.getIssue(issueId); | ||
82 | + Assert.assertNotNull(issue); | ||
83 | + Assert.assertEquals(state.getCommandValue(), issue.getFieldValue(Fields.state)); | ||
84 | + } | ||
85 | + } | ||
86 | + } | ||
87 | + | ||
88 | + @Test | ||
101 | public void createIssue() throws IOException, AuthenticationException, JAXBException | 89 | public void createIssue() throws IOException, AuthenticationException, JAXBException |
102 | { | 90 | { |
103 | YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); | 91 | YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); |
@@ -107,6 +95,27 @@ public class YoutrackAPITest { | @@ -107,6 +95,27 @@ public class YoutrackAPITest { | ||
107 | } | 95 | } |
108 | 96 | ||
109 | @Test | 97 | @Test |
98 | + public void getAssignees() throws IOException, AuthenticationException, JAXBException | ||
99 | + { | ||
100 | + YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); | ||
101 | + final AssigneeList assigneeList = api.getAssignees("TST"); | ||
102 | + Assert.assertNotNull(assigneeList); | ||
103 | + Assert.assertEquals(2, assigneeList.getAssignees().getAssignees().size()); | ||
104 | + } | ||
105 | + | ||
106 | + @Test | ||
107 | + public void getIndividualAssignees() throws IOException, JAXBException | ||
108 | + { | ||
109 | + final YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); | ||
110 | + final List<User> assignees = api.getIndividualAssignees("TST"); | ||
111 | + Assert.assertNotNull(assignees); | ||
112 | + Assert.assertEquals(2, assignees.size()); | ||
113 | + for (User user : assignees) { | ||
114 | + Assert.assertTrue("bernard".equals(user.getLogin()) || "root".equals(user.getLogin())); | ||
115 | + } | ||
116 | + } | ||
117 | + | ||
118 | + @Test | ||
110 | public void getIssue() throws IOException, AuthenticationException, JAXBException | 119 | public void getIssue() throws IOException, AuthenticationException, JAXBException |
111 | { | 120 | { |
112 | YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); | 121 | YoutrackAPI api = new YoutrackAPI(getServiceLocation(), getUsername(), getPassword()); |
Please
register
or
login
to post a comment