public void ConfiguredInOptions()
        {
            var checker = new TermsOfServiceChecker(
                Mock.Of <IConsole>(),
                Options.Create <LettuceEncryptOptions>(new LettuceEncryptOptions
            {
                AcceptTermsOfService = true,
            }),
                NullLogger <TermsOfServiceChecker> .Instance
                );

            checker.EnsureTermsAreAccepted(_tosUri);
        }
        public void YesOnCommandLine(string response)
        {
            var console = new Mock <IConsole>();

            console.SetupGet(c => c.IsInputRedirected).Returns(false);
            console.Setup(c => c.ReadLine()).Returns(response);
            var checker = new TermsOfServiceChecker(
                console.Object,
                Options.Create <LettuceEncryptOptions>(new LettuceEncryptOptions()),
                NullLogger <TermsOfServiceChecker> .Instance
                );

            checker.EnsureTermsAreAccepted(_tosUri);
        }
        public void UnreadableConsoleAndUnsetInOptions()
        {
            var console = new Mock <IConsole>();

            console.SetupGet(c => c.IsInputRedirected).Returns(true);
            var checker = new TermsOfServiceChecker(
                console.Object,
                Options.Create <LettuceEncryptOptions>(new LettuceEncryptOptions()),
                NullLogger <TermsOfServiceChecker> .Instance
                );

            Assert.Throws <InvalidOperationException>(()
                                                      => checker.EnsureTermsAreAccepted(_tosUri));
        }
        public void InvalidResponse(string response)
        {
            var console = new Mock <IConsole>();

            console.SetupGet(c => c.IsInputRedirected).Returns(false);
            console.Setup(c => c.ReadLine()).Returns(response);
            var checker = new TermsOfServiceChecker(
                console.Object,
                Options.Create <LettuceEncryptOptions>(new LettuceEncryptOptions()),
                NullLogger <TermsOfServiceChecker> .Instance
                );

            Assert.Throws <InvalidOperationException>(()
                                                      => checker.EnsureTermsAreAccepted(_tosUri));
        }