Example #1
0
        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);
        }
Example #2
0
        public void ShouldNotCleanDepsIfMarkedCleanAfterBuildButAlsoDependedUponElsewhere()
        {
            var artefacts = new HashSet <string>();

            var b     = new FakeArtefactTaskWithDependencies(artefacts, "b");
            var cDeps = new[] { new TaskDependency(b), new TaskDependency(b)
                                {
                                    CleanAfterBuild = true
                                } };
            var c = new FakeArtefactTaskWithDependencies(artefacts, "c", cDeps);

            ITargetBuilderBounce bounce = GetBounce();

            var invoker = new TargetInvoker(bounce);

            invoker.Invoke(new BounceCommandParser().Build, c);

            Assert.That(artefacts, Has.Member("b"));
            Assert.That(artefacts, Has.Member("c"));
        }
Example #3
0
        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);
        }
Example #4
0
        public void ShouldNotCleanDepsIfMarkedCleanAfterBuildButAlsoDependedUponElsewhere()
        {
            var artefacts = new HashSet<string>();

            var b = new FakeArtefactTaskWithDependencies(artefacts, "b");
            var cDeps = new[] {new TaskDependency(b), new TaskDependency (b) {CleanAfterBuild = true}};
            var c = new FakeArtefactTaskWithDependencies(artefacts, "c", cDeps);

            ITargetBuilderBounce bounce = GetBounce();

            var invoker = new TargetInvoker(bounce);
            invoker.Invoke(new BounceCommandParser().Build, c);

            Assert.That(artefacts, Has.Member("b"));
            Assert.That(artefacts, Has.Member("c"));
        }