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 Initialize()
        {
            shimContext = ShimsContext.Create();

            projectShim = new ShimProject();

            projectShim.NameGet = () => "TestProject";

            ShimQueryItem.AllInstances.ProjectGet = q => projectShim;

            var tfsContextInstance = new FakeTfsContext(shimContext);

            tfsContextMock = A.Fake<ITfsContext>(o => o.Wrapping(tfsContextInstance));
        }
        private void CreateProjectCollectionFake()
        {
            projectFake = new ShimProject();
            projectFake.NameGet = () => "TestProject";

            var projectList = new List<Project>() { projectFake };

            var projectCollectionFake = new ShimProjectCollection();

            projectCollectionFake.Bind(projectList);
            projectCollectionFake.ContainsString = (x) => projectList.Select(p => p.Name).Contains(x);
            projectCollectionFake.ItemGetString = (x) => projectList.FirstOrDefault(p => p.Name == x);

            workItemStoreFake.ProjectsGet = () => projectCollectionFake;
        }
        public void Initialize()
        {
            shimContext = ShimsContext.Create();

            var project = new ShimProject();

            project.NameGet = () => "TestProject";

            ShimQueryItem.AllInstances.ProjectGet = (q) => project;
            var definition = new ShimQueryDefinition();

            projectMacroMock = A.Fake<IMacro>();

            A.CallTo(() => projectMacroMock.Name).Returns("Project");
            A.CallTo(() => projectMacroMock.GetValue(A<QueryDefinition>.Ignored)).Returns("\"TestProject\"");

            userMacroMock = A.Fake<IMacro>();

            A.CallTo(() => userMacroMock.Name).Returns("Me");
            A.CallTo(() => userMacroMock.GetValue(A<QueryDefinition>.Ignored)).Returns("\"Iñaki Elcoro\"");

            parserWithMacros = new MacroParser(new IMacro[] { projectMacroMock, userMacroMock });
        }