コード例 #1
0
        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);
        }
コード例 #2
0
        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
            });
        }
コード例 #3
0
        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);
        }
コード例 #4
0
		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;
		}
コード例 #5
0
        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);
        }
コード例 #6
0
		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;
		}
コード例 #7
0
        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);
        }
コード例 #8
0
		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
			};
		}
コード例 #9
0
        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;
        }