public Builder(Project project) { _project = project; _project.AddObserver(new BuildObserver(this)); if (project == null) throw new ArgumentNullException(nameof(project)); }
public void TestAddedProcessor_CalledWhenNewProjectItem() { var underTest = new Project(); var itemKind = "test"; var item = new ProjectItem("p1", itemKind); var processor = new Mock<IProjectObserver>(); processor.Setup(s => s.NotifyItemAdded(underTest, item)); underTest.AddObserver(processor.Object); underTest.AddItem(item); processor.VerifyAll(); }
public void TestTouchProjectItem_CallsNotifiyItemChanged() { var underTest = new Project(); var itemKind = "test"; var item = new ProjectItem("p1", itemKind); underTest.AddItem(item); var processor = new Mock<IProjectObserver>(); processor.Setup(s => s.NotifyItemChanged(underTest, item)); underTest.AddObserver(processor.Object); underTest.Touch(item); processor.VerifyAll(); }
//[Fact] public void Test_BuilderAddedLinks_CalledOnChange() { var kind = "test"; var project = new Project(); var observerMock = new Mock<IProjectObserver>(); project.AddObserver(observerMock.Object); var p1 = AddAndCreateItem(kind, project, "p1"); var p2 = AddAndCreateItem("related", project, "p2"); var id1 = new ProjectItemIdentifier("created", "created"); var task = new Mock<IBuildTask>(); task.SetupGet(p => p.DependsOn).Returns(BuildQuery.SingleFromKind(kind).Or(BuildQuery.Exact(p2.Identifier))); var s1 = new BuildTaskResult(id1, NullProjectItemContent.Instance); SetupProceed(task, p1).Returns(new[] { s1 }); var builder = new Builder(project); builder.AddTask(task.Object); project.Touch(p2); observerMock.Verify(s => s.NotifyItemChanged(project, It.Is<ProjectItem>(i => i.Identifier.Kind == kind)), Times.Once()); }
public void TestChangePropagation() { var kind = "test"; var projectItem = new ProjectItem("p1", kind); var project = new Project(); var observerMock = new Mock<IProjectObserver>(); project.AddObserver(observerMock.Object); var underTest = new Builder(project); var kind2 = "created"; var kind3 = "created2"; var buildTarget = CreateBuildTarget(kind, kind2); var buildTarget2 = CreateBuildTarget(kind2, kind3); underTest.AddTask(buildTarget); underTest.AddTask(buildTarget2); project.AddItem(projectItem); project.Touch(projectItem); observerMock.Verify(s => s.NotifyItemChanged(project, It.Is<ProjectItem>(i => i.Identifier.Kind == kind)), Times.Once()); observerMock.Verify(s => s.NotifyItemChanged(project, It.Is<ProjectItem>(i => i.Identifier.Kind == kind2)), Times.Once()); observerMock.Verify(s => s.NotifyItemChanged(project, It.Is<ProjectItem>(i => i.Identifier.Kind == kind3)), Times.Once()); }