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