コード例 #1
0
ファイル: TargetInvokerTest.cs プロジェクト: t3hc13h/bounce
        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);
        }
コード例 #2
0
ファイル: BounceCommandTest.cs プロジェクト: haos11/bounce
        public void CleanCommandTest()
        {
            IBounceCommand cleanCommand = new BounceCommandParser().Parse("clean");
            AssertCleanCommandProperties(cleanCommand);

            var cleanAfterBuildCommand = cleanCommand.CleanAfterBuildCommand;
            Assert.That(cleanAfterBuildCommand, Is.Null);
        }
コード例 #3
0
ファイル: BounceCommandTest.cs プロジェクト: haos11/bounce
        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);
        }
コード例 #4
0
ファイル: BounceCommandTest.cs プロジェクト: t3hc13h/bounce
        public void CleanCommandTest()
        {
            IBounceCommand cleanCommand = new BounceCommandParser().Parse("clean");

            AssertCleanCommandProperties(cleanCommand);

            var cleanAfterBuildCommand = cleanCommand.CleanAfterBuildCommand;

            Assert.That(cleanAfterBuildCommand, Is.Null);
        }
コード例 #5
0
ファイル: BounceCommandTest.cs プロジェクト: t3hc13h/bounce
        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);
        }
コード例 #6
0
ファイル: TargetInvokerTest.cs プロジェクト: haos11/bounce
        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;"));
        }
コード例 #7
0
ファイル: TargetInvokerTest.cs プロジェクト: t3hc13h/bounce
        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());
        }
コード例 #8
0
ファイル: TargetInvokerTest.cs プロジェクト: t3hc13h/bounce
        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;"));
        }
コード例 #9
0
ファイル: TargetInvokerTest.cs プロジェクト: haos11/bounce
        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);
        }
コード例 #10
0
ファイル: BounceCommandTest.cs プロジェクト: t3hc13h/bounce
        public void DescribeCommandTest()
        {
            IBounceCommand describe = new BounceCommandParser().Parse("describe");

            AssertDescribeCommandProperties(describe);
        }
コード例 #11
0
 public void SetUp()
 {
     BounceCommandParser = new BounceCommandParser();
 }
コード例 #12
0
 public void SetUp()
 {
     BounceCommandParser = new BounceCommandParser();
 }
コード例 #13
0
ファイル: TargetInvokerTest.cs プロジェクト: haos11/bounce
        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());
        }
コード例 #14
0
        public static IBounceCommand GetCommandByName(string command)
        {
            var commandParser = new BounceCommandParser();

            return(commandParser.Parse(command));
        }
コード例 #15
0
ファイル: BounceCommandTest.cs プロジェクト: haos11/bounce
 public void DescribeCommandTest()
 {
     IBounceCommand describe = new BounceCommandParser().Parse("describe");
     AssertDescribeCommandProperties(describe);
 }
コード例 #16
0
 public static IBounceCommand GetCommandByName(string command) {
     var commandParser = new BounceCommandParser();
     return commandParser.Parse(command);
 }