示例#1
0
        public void PromptForKeyGenerationOrEncryptionOrDecryption()
        {
            var fakeConsole = Substitute.For <IConsole>();

            fakeConsole.ReadKeyChar().Returns('Q');

            var fakeRandomNumberGenerator = Substitute.For <IGenerateRandomNumbers>();
            var app = new AndyRsaConsoleApp(fakeConsole, fakeRandomNumberGenerator);

            app.Run();

            fakeConsole.Received().Write("What would you like to do? (E-Encrypt, D-Decrypt, K-Key Gen, Q-Quit): ");
        }
示例#2
0
        public void EnterEncryptionMode_WhenUserPressesE()
        {
            var fakeConsole = Substitute.For <IConsole>();

            fakeConsole.ReadKeyChar().Returns('E', 'Q');

            var fakeRandomNumberGenerator = Substitute.For <IGenerateRandomNumbers>();

            var app = new AndyRsaConsoleApp(fakeConsole, fakeRandomNumberGenerator);

            app.Run();

            fakeConsole.Received().WriteLine("Please enter the text to encrypt: ");
        }
示例#3
0
        public void WriteNewLineAfterReceivingInput()
        {
            var fakeConsole = Substitute.For <IConsole>();

            fakeConsole.ReadKeyChar().Returns('%', 'Q');

            var fakeRandomNumberGenerator = Substitute.For <IGenerateRandomNumbers>();
            var app = new AndyRsaConsoleApp(fakeConsole, fakeRandomNumberGenerator);

            app.Run();

            fakeConsole.Received().Write("What would you like to do? (E-Encrypt, D-Decrypt, K-Key Gen, Q-Quit): ");
            fakeConsole.Received().WriteLine(string.Empty);
        }
示例#4
0
        public void PromptsForPublicKey_WhenUserPressesE_ThenEntersMessage()
        {
            var fakeConsole = Substitute.For <IConsole>();

            fakeConsole.ReadKeyChar().Returns('E', 'Q');
            fakeConsole.ReadLine().Returns("hello, world!");

            var fakeRandomNumberGenerator = Substitute.For <IGenerateRandomNumbers>();

            var app = new AndyRsaConsoleApp(fakeConsole, fakeRandomNumberGenerator);

            app.Run();

            fakeConsole.Received().WriteLine("Please enter the recipient's public key: ");
        }
示例#5
0
        public void GeneratePublicKey_WhenUserPressesK()
        {
            var fakeConsole = Substitute.For <IConsole>();

            fakeConsole.ReadKeyChar().Returns('K', 'Q');

            var fakeRandomNumberGenerator = Substitute.For <IGenerateRandomNumbers>();

            fakeRandomNumberGenerator.Generate().Returns(7u, 11u);

            var app = new AndyRsaConsoleApp(fakeConsole, fakeRandomNumberGenerator);

            app.Run();

            fakeConsole.Received().WriteLine("Here is your public key: 7");
            fakeConsole.Received().WriteLine("Here is your private key: 11");
        }