public void ShouldAttemptToFindAssemblyIfNoArgsGiven()
        {
            var finder = new Mock<ITargetsAssemblyFinder>();
            var bounceDirectoryExecutable = new BounceDirectoryExecutable();
            finder.Setup(f => f.FindTargetsAssembly()).Returns(bounceDirectoryExecutable);

            var parser = new TargetsAssemblyArgumentsParser(finder.Object);
            var targetsAndArgs = parser.GetTargetsAssembly(new string[0]);

            Assert.That(targetsAndArgs.RemainingArguments, Is.Empty);
            Assert.That(targetsAndArgs.TargetsAssembly, Is.SameAs(bounceDirectoryExecutable));
        }
        public void ShouldParseRecurseFromArguments()
        {
            var finder = new Mock<ITargetsAssemblyFinder>();
            var bounceDirectoryExecutable = new BounceDirectoryExecutable();
            finder.Setup(f => f.FindTargetsAssembly()).Returns(bounceDirectoryExecutable);

            var parser = new TargetsAssemblyArgumentsParser(finder.Object);
            var targetsAndArgs = parser.GetTargetsAssembly(new[] {"/recurse", "other", "args"});

            Assert.That(targetsAndArgs.Recurse);
            Assert.That(targetsAndArgs.RemainingArguments, Is.EqualTo(new[] { "other", "args" }));
            Assert.That(targetsAndArgs.TargetsAssembly, Is.SameAs(bounceDirectoryExecutable));
        }
        public void ShouldFindTargetsIfNoTargetsParameterGiven()
        {
            var finder = new Mock<ITargetsAssemblyFinder>();
            var bounceDirectoryExecutable = new BounceDirectoryExecutable();
            finder.Setup(f => f.FindTargetsAssembly()).Returns(bounceDirectoryExecutable);

            var parser = new TargetsAssemblyArgumentsParser(finder.Object);
            var targetsAndArgs = parser.GetTargetsAssembly(new[] {"build", "SomeTarget", "/other", "args"});

            Assert.That(targetsAndArgs.RemainingArguments, Is.EqualTo(new[] {"build", "SomeTarget", "/other", "args"}));
            Assert.That(targetsAndArgs.TargetsAssembly, Is.SameAs(bounceDirectoryExecutable));
            Assert.That(targetsAndArgs.Recurse, Is.False);
        }