public void ReturnsCustomFieldsAdded() { var jira = TestableJira.Create(); var remoteIssue = new RemoteIssue() { key = "TST-1", project = "TST", type = "1" }; var remoteField = new RemoteField() { id = "CustomField1", name = "My Custom Field" }; jira.SoapService.Setup(s => s.GetIssuesFromJqlSearch(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>())).Returns(new RemoteIssue[1] { remoteIssue }); jira.SoapService.Setup(s => s.GetFieldsForEdit(It.IsAny <string>(), It.IsAny <string>())).Returns(new RemoteField[1] { remoteField }); var issue = jira.CreateIssue("TST"); issue["My Custom Field"] = "test value"; var result = GetUpdatedFieldsForIssue(issue); Assert.Equal(1, result.Length); Assert.Equal("CustomField1", result.First().id); }
/// <summary> /// Creates an instance of a CustomField from a remote field definition. /// </summary> public CustomField(RemoteField remoteField) : base(remoteField) { _remoteField = remoteField; if (String.IsNullOrEmpty(this.Id) && !String.IsNullOrEmpty(CustomIdentifier)) { this.Id = $"customfield_{CustomIdentifier}"; } }
public void WhenAddingArrayOfValues_CanSerializeAsStringArrayWhenNoSerializerIsFound() { // arrange issue var jira = TestableJira.Create(); var remoteField = new RemoteField() { id = "remotefield_id", Schema = new RemoteFieldSchema() { Custom = "remotefield_type" }, IsCustomField = true, name = "Custom Field" }; var customField = new CustomField(remoteField); var issue = new RemoteIssue() { project = "projectKey", key = "issueKey" }.ToLocal(jira); jira.IssueFieldService.Setup(c => c.GetCustomFieldsAsync(CancellationToken.None)) .Returns(Task.FromResult(Enumerable.Repeat(customField, 1))); issue.CustomFields.AddArray("Custom Field", "val1", "val2"); // arrange serialization var remoteIssue = issue.ToRemote(); var converter = new RemoteIssueJsonConverter(new List <RemoteField> { remoteField }, new Dictionary <string, ICustomFieldValueSerializer>()); var serializerSettings = new JsonSerializerSettings(); serializerSettings.NullValueHandling = NullValueHandling.Ignore; serializerSettings.Converters.Add(converter); var issueWrapper = new RemoteIssueWrapper(remoteIssue); // act var issueJson = JsonConvert.SerializeObject(issueWrapper, serializerSettings); // assert var jObject = JObject.Parse(issueJson); var remoteFieldValue = jObject["fields"]["remotefield_id"]; var valueArray = remoteFieldValue.ToObject <string[]>(); Assert.Equal(2, valueArray.Length); Assert.Contains("val1", valueArray); Assert.Contains("val2", valueArray); }
public void CanDeserializeArrayOfStrings_WhenCustomFieldValueIsArrayAndNoSerializerIsRegistered() { // arrange issue var remoteField = new RemoteField() { id = "customfield_id", Schema = new RemoteFieldSchema() { Custom = "customfield_type" }, IsCustomField = true, name = "Custom Field" }; var jObject = JObject.FromObject(new { fields = new { //project = "projectKey", key = "issueKey", customfield_id = new string[] { "val1", "val2" } } }); // arrange serialization var converter = new RemoteIssueJsonConverter(new List <RemoteField> { remoteField }, new Dictionary <string, ICustomFieldValueSerializer>()); var serializerSettings = new JsonSerializerSettings(); serializerSettings.NullValueHandling = NullValueHandling.Ignore; serializerSettings.Converters.Add(converter); // act var remoteIssue = JsonConvert.DeserializeObject <RemoteIssueWrapper>(jObject.ToString(), serializerSettings).RemoteIssue; // assert var customFieldValues = remoteIssue.customFieldValues.First().values; Assert.Equal(2, customFieldValues.Length); Assert.Contains("val1", customFieldValues); Assert.Contains("val2", customFieldValues); }
public void ExcludesCustomFieldsNotModified() { var jira = TestableJira.Create(); var remoteField = new RemoteField() { id = "CustomField1", name = "My Custom Field" }; var remoteCustomFieldValue = new RemoteCustomFieldValue() { customfieldId = "CustomField1", values = new string[1] { "My Value" } }; var remoteIssue = new RemoteIssue() { key = "TST-1", project = "TST", type = "1", customFieldValues = new RemoteCustomFieldValue[1] { remoteCustomFieldValue } }; jira.SoapService.Setup(s => s.GetIssuesFromJqlSearch(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>())).Returns(new RemoteIssue[1] { remoteIssue }); jira.SoapService.Setup(s => s.GetFieldsForEdit(It.IsAny <string>(), It.IsAny <string>())).Returns(new RemoteField[1] { remoteField }); var issue = jira.GetIssuesFromJql("TST-1").First(); var result = GetUpdatedFieldsForIssue(issue); Assert.Equal(0, result.Length); }
/// <summary> /// Creates an instance of a CustomField from a remote field definition. /// </summary> public CustomField(RemoteField remoteField) : base(remoteField) { _remoteField = remoteField; }
internal CustomField(RemoteField remoteField) : base(remoteField) { _remoteField = remoteField; }