public void ShouldCleanDependenciesAndTheirDependenciesAfterBuildIfMarkedSo() { var artefacts = new HashSet <string>(); var d = new FakeArtefactTaskWithDependencies(artefacts, "d"); var a = new FakeArtefactTaskWithDependencies(artefacts, "a"); var b = new FakeArtefactTaskWithDependencies(artefacts, "b", new[] { new TaskDependency(d) }); var cDeps = new[] { new TaskDependency(a), new TaskDependency(b) { CleanAfterBuild = true } }; var c = new FakeArtefactTaskWithDependencies(artefacts, "c", cDeps); ITargetBuilderBounce bounce = GetBounce(); var invoker = new TargetInvoker(bounce); var bounceCommand = new BounceCommandParser().BuildAndClean; invoker.Invoke(bounceCommand, c); invoker.CleanAfterBuild(bounceCommand); Assert.That(artefacts, Has.Member("a")); Assert.That(artefacts, Has.No.Member("b")); Assert.That(b.Invoked); Assert.That(artefacts, Has.Member("c")); Assert.That(artefacts, Has.No.Member("d")); Assert.That(d.Invoked); }
public void CleanCommandTest() { IBounceCommand cleanCommand = new BounceCommandParser().Parse("clean"); AssertCleanCommandProperties(cleanCommand); var cleanAfterBuildCommand = cleanCommand.CleanAfterBuildCommand; Assert.That(cleanAfterBuildCommand, Is.Null); }
public void BuildCommandTest() { IBounceCommand buildCommand = new BounceCommandParser().Parse("build"); Assert.That(buildCommand.CommandLineCommand, Is.EqualTo("build")); AssertBuildCommandProperties(buildCommand); var cleanAfterBuildCommand = buildCommand.CleanAfterBuildCommand; Assert.That(cleanAfterBuildCommand, Is.Null); }
public void ShouldBuildDependenciesBeforeDependencts() { var dependent = new Mock<ITask>(); var dependency = new Mock<ITask>(); ITargetBuilderBounce bounce = GetBounce(); var buildActions = new StringWriter(); dependent.Setup(d => d.Dependencies).Returns(new[] {new TaskDependency (dependency.Object)}); var bounceCommand = new BounceCommandParser().Build; dependent.Setup(d => d.Invoke(bounceCommand, bounce)).Callback(() => buildActions.Write("build dependent;")); dependency.Setup(d => d.Invoke(bounceCommand, bounce)).Callback(() => buildActions.Write("build dependency;")); var builder = new TargetInvoker(bounce); builder.Invoke(bounceCommand, dependent.Object); Assert.That(buildActions.ToString(), Is.EqualTo(@"build dependency;build dependent;")); }
public void ShouldOnlyBuildTasksOnceEvenIfTheyAreDependedUponTwice() { var all = new Mock <IObsoleteTask>(); var dependent1 = new Mock <IObsoleteTask>(); var dependent2 = new Mock <IObsoleteTask>(); var twiceADependency = new Mock <IObsoleteTask>(); ITargetBuilderBounce bounce = GetBounce(); all.Setup(d => d.Dependencies).Returns(new[] { new TaskDependency(dependent1.Object), new TaskDependency(dependent2.Object) }); dependent1.Setup(d => d.Dependencies).Returns(new[] { new TaskDependency(twiceADependency.Object) }); dependent2.Setup(d => d.Dependencies).Returns(new[] { new TaskDependency(twiceADependency.Object) }); var invoker = new TargetInvoker(bounce); var bounceCommand = new BounceCommandParser().Build; invoker.Invoke(bounceCommand, all.Object); twiceADependency.Verify(t => t.Invoke(bounceCommand, bounce), Times.Once()); }
public void ShouldBuildDependenciesBeforeDependencts() { var dependent = new Mock <IObsoleteTask>(); var dependency = new Mock <IObsoleteTask>(); ITargetBuilderBounce bounce = GetBounce(); var buildActions = new StringWriter(); dependent.Setup(d => d.Dependencies).Returns(new[] { new TaskDependency(dependency.Object) }); var bounceCommand = new BounceCommandParser().Build; dependent.Setup(d => d.Invoke(bounceCommand, bounce)).Callback(() => buildActions.Write("build dependent;")); dependency.Setup(d => d.Invoke(bounceCommand, bounce)).Callback(() => buildActions.Write("build dependency;")); var builder = new TargetInvoker(bounce); builder.Invoke(bounceCommand, dependent.Object); Assert.That(buildActions.ToString(), Is.EqualTo(@"build dependency;build dependent;")); }
public void ShouldCleanDependenciesAndTheirDependenciesAfterBuildIfMarkedSo() { var artefacts = new HashSet<string>(); var d = new FakeArtefactTaskWithDependencies(artefacts, "d"); var a = new FakeArtefactTaskWithDependencies(artefacts, "a"); var b = new FakeArtefactTaskWithDependencies(artefacts, "b", new[] {new TaskDependency(d)}); var cDeps = new[] {new TaskDependency(a), new TaskDependency(b) {CleanAfterBuild = true}}; var c = new FakeArtefactTaskWithDependencies(artefacts, "c", cDeps); ITargetBuilderBounce bounce = GetBounce(); var invoker = new TargetInvoker(bounce); var bounceCommand = new BounceCommandParser().BuildAndClean; invoker.Invoke(bounceCommand, c); invoker.CleanAfterBuild(bounceCommand); Assert.That(artefacts, Has.Member("a")); Assert.That(artefacts, Has.No.Member("b")); Assert.That(b.Invoked); Assert.That(artefacts, Has.Member("c")); Assert.That(artefacts, Has.No.Member("d")); Assert.That(d.Invoked); }
public void DescribeCommandTest() { IBounceCommand describe = new BounceCommandParser().Parse("describe"); AssertDescribeCommandProperties(describe); }
public void SetUp() { BounceCommandParser = new BounceCommandParser(); }
public void ShouldOnlyCleanTasksOnceEvenIfTheyAreDependedUponTwice() { var all = new Mock<ITask>(); var dependent1 = new Mock<ITask>(); var dependent2 = new Mock<ITask>(); var twiceADependency = new Mock<ITask>(); ITargetBuilderBounce bounce = GetBounce(); all.Setup(d => d.Dependencies).Returns(new[] {new TaskDependency(dependent1.Object), new TaskDependency (dependent2.Object) }); dependent1.Setup(d => d.Dependencies).Returns(new[] {new TaskDependency (twiceADependency.Object) }); dependent2.Setup(d => d.Dependencies).Returns(new[] {new TaskDependency (twiceADependency.Object) }); var invoker = new TargetInvoker(bounce); var bounceCommand = new BounceCommandParser().Clean; invoker.Invoke(bounceCommand, all.Object); twiceADependency.Verify(t => t.Invoke(bounceCommand, bounce), Times.Once()); }
public static IBounceCommand GetCommandByName(string command) { var commandParser = new BounceCommandParser(); return(commandParser.Parse(command)); }
public static IBounceCommand GetCommandByName(string command) { var commandParser = new BounceCommandParser(); return commandParser.Parse(command); }