public void ReallyExecutes()
        {
            var sut    = new FakeCommandLineScm();
            var result = sut.IsOnThisComputer();

            Assert.True(result);
        }
        public void ThrowsWhenContextIsNull()
        {
            var sut = new FakeCommandLineScm();

            sut.Context = null;

            Assert.Throws <InvalidOperationException>(() => sut.IsOnThisComputer());
        }
        public void ExecuteReturnsOutput()
        {
            var sut = new FakeCommandLineScm();

            var result = sut.ExecuteCommandDirectly();

            Assert.Equal(sut.FakeCommandResult, result);
        }
        public void ThrowsWhenPathFromConfigDoesntExist()
        {
            var sut = new FakeCommandLineScm();

            var config = new Config();

            config.Scms.Add(new ConfigScm {
                Name = sut.ShortName, Path = sut.FakeCommandNameNotExisting
            });

            sut.Context = FakeContext.BuildFakeContextWithConfig(config);

            Assert.Throws <FileNotFoundException>(() => sut.IsOnThisComputer());
        }
        public void ReallyExecutesWithPathFromConfig()
        {
            var sut = new FakeCommandLineScm();

            var config = new Config();

            config.Scms.Add(new ConfigScm {
                Name = sut.ShortName, Path = sut.FakeCommandName
            });

            sut.Context = FakeContext.BuildFakeContextWithConfig(config);

            var result = sut.IsOnThisComputer();

            Assert.True(result);
        }