ShimFieldCollection CreateFakeFieldCollection(ShimItem item, List <ShimField> fields) { foreach (var field in fields) { field.ItemGet = () => item; } var fieldCollection = new ShimFieldCollection() { ItemGetString = (fieldName) => { return(fields.SingleOrDefault(n => n.Instance.Name.Equals(fieldName, StringComparison.OrdinalIgnoreCase))); } }; if (!itemFields.ContainsKey(item.Instance.ID)) { itemFields.Add(item.Instance.ID, fields); } else { itemFields[item.Instance.ID] = fields; } fieldCollection.Bind(itemFields[item.Instance.ID]); return(fieldCollection); }
internal static ShimWorkItem CreateWorkItem(string workItemType, string assignedTo) { var fields = new List <Field>() { new ShimField() { NameGet = () => "System.AssignedTo", ValueGet = () => assignedTo } }; var fakeRequestFields = new ShimFieldCollection() { ItemGetString = (s) => fields.SingleOrDefault(f => f.Name == s), ContainsString = (s) => fields.Any(f => f.Name == s) }; return(new ShimWorkItem() { TypeGet = () => new ShimWorkItemType() { NameGet = () => workItemType }, FieldsGet = () => fakeRequestFields }); }
internal static ShimWorkItem CreateCodeReviewResponse(int id, string state, string reviewResult) { var responseFields = new List <Field>() { new ShimField() { NameGet = () => CodeReviewPolicy.ClosedStatus, ValueGet = () => reviewResult } }; var fakeResponseFields = new ShimFieldCollection() { ItemGetString = (s) => responseFields.SingleOrDefault(f => f.Name == s) }; var responseWorkItem = new ShimWorkItem() { TypeGet = () => new ShimWorkItemType() { NameGet = () => "Code Review Response" }, IdGet = () => id, StateGet = () => state, FieldsGet = () => fakeResponseFields, }; return(responseWorkItem); }
internal static ShimWorkItem CreateCodeReviewResponse(int id, string state, string reviewResult) { var responseFields = new List<Field>() { new ShimField() { NameGet = () => CodeReviewPolicy.ClosedStatus, ValueGet = () => reviewResult } }; var fakeResponseFields = new ShimFieldCollection() { ItemGetString = (s) => responseFields.SingleOrDefault(f => f.Name == s) }; var responseWorkItem = new ShimWorkItem() { TypeGet = () => new ShimWorkItemType() { NameGet = () => "Code Review Response" }, IdGet = () => id, StateGet = () => state, FieldsGet = () => fakeResponseFields, }; return responseWorkItem; }
internal static ShimWorkItem CreateCodeReviewRequest(int id, string state, string closedStatus, List <WorkItem> responses) { var requestFields = new List <Field>() { new ShimField() { NameGet = () => CodeReviewPolicy.ClosedStatus, ValueGet = () => closedStatus } }; var fakeRequestFields = new ShimFieldCollection() { ItemGetString = (s) => requestFields.SingleOrDefault(f => f.Name == s) }; var links = new List <WorkItemLink>(); foreach (var response in responses) { links.Add(new ShimWorkItemLink() { LinkTypeEndGet = () => new ShimWorkItemLinkTypeEnd() { NameGet = () => "Child", }, TargetIdGet = () => response.Id }); } var fakeLinks = new ShimWorkItemLinkCollection(); fakeLinks.Bind(links); var fakeProject = new ShimProject() { StoreGet = () => new ShimWorkItemStore() { GetWorkItemInt32 = (i) => responses.SingleOrDefault(r => r.Id == i) } }; var reviewWorkItem = new ShimWorkItem() { TypeGet = () => new ShimWorkItemType() { NameGet = () => "Code Review Request" }, StateGet = () => state, FieldsGet = () => fakeRequestFields, WorkItemLinksGet = () => fakeLinks, ProjectGet = () => fakeProject }; return(reviewWorkItem); }
internal static ShimWorkItem CreateCodeReviewRequest(int id, string state, string closedStatus, List<WorkItem> responses) { var requestFields = new List<Field>() { new ShimField() { NameGet = () => CodeReviewPolicy.ClosedStatus, ValueGet = () => closedStatus } }; var fakeRequestFields = new ShimFieldCollection() { ItemGetString = (s) => requestFields.SingleOrDefault(f => f.Name == s) }; var links = new List<WorkItemLink>(); foreach(var response in responses) { links.Add(new ShimWorkItemLink() { LinkTypeEndGet = () => new ShimWorkItemLinkTypeEnd() { NameGet = () => "Child", }, TargetIdGet = () => response.Id }); } var fakeLinks = new ShimWorkItemLinkCollection(); fakeLinks.Bind(links); var fakeProject = new ShimProject() { StoreGet = () => new ShimWorkItemStore() { GetWorkItemInt32 = (i) => responses.SingleOrDefault(r => r.Id == i) } }; var reviewWorkItem = new ShimWorkItem() { TypeGet = () => new ShimWorkItemType() { NameGet = () => "Code Review Request" }, StateGet = () => state, FieldsGet = () => fakeRequestFields, WorkItemLinksGet = () => fakeLinks, ProjectGet = () => fakeProject }; return reviewWorkItem; }
public void WorkItemTemplatePropertiesShouldBeAccessedAsNativeProperties() { var workItem = new ShimWorkItem(); var fieldCollectionFake = new ShimFieldCollection(); fieldCollectionFake.Bind(new Field[] { new ShimField() { NameGet = () => "CustomField", ValueGet = () => "CustomValue" } }); workItem.FieldsGet = () => fieldCollectionFake; dynamic workItemWrapper = new WorkItemModel(workItem); Assert.AreEqual("CustomValue", workItemWrapper.CustomField); }
internal static ShimWorkItem CreateWorkItem(string workItemType, string assignedTo) { var fields = new List<Field>() { new ShimField() { NameGet = () => "System.AssignedTo", ValueGet = () => assignedTo } }; var fakeRequestFields = new ShimFieldCollection() { ItemGetString = (s) => fields.SingleOrDefault(f => f.Name == s), ContainsString = (s) => fields.Any(f => f.Name == s) }; return new ShimWorkItem() { TypeGet = () => new ShimWorkItemType() { NameGet = () => workItemType }, FieldsGet = () => fakeRequestFields }; }
ShimFieldCollection CreateFakeFieldCollection(ShimItem item, List<ShimField> fields) { foreach (var field in fields) field.ItemGet = () => item; var fieldCollection = new ShimFieldCollection() { ItemGetString = (fieldName) => { return fields.SingleOrDefault(n => n.Instance.Name.Equals(fieldName, StringComparison.OrdinalIgnoreCase)); } }; if (!itemFields.ContainsKey(item.Instance.ID)) itemFields.Add(item.Instance.ID, fields); else itemFields[item.Instance.ID] = fields; fieldCollection.Bind(itemFields[item.Instance.ID]); return fieldCollection; }