コード例 #1
0
        public static void EmptyKeyThrowsException()
        {
            var random  = new Randomizer();
            var encoder = new VigenereEncoder();
            var message = random.GetString();
            var key     = string.Empty;

            _ = Assert.Throws <ArgumentOutOfRangeException>(() => encoder.Encode(message, key));
            _ = Assert.Throws <ArgumentOutOfRangeException>(() => encoder.Decode(message, key));
        }
コード例 #2
0
        public void EncryptWithTextExceptionTest()
        {
            // arrange
            string text = "       ";
            string key  = "пелнь";

            var ve = new VigenereEncoder();

            // act
            ve.Encrypt(text, key);
        }
コード例 #3
0
        public void EncryptWithKeyExceptionTest()
        {
            // arrange
            string text = "АЁЙ цйуфы 123 !э ю.,:'~sadawq";
            string key  = "пелENGLISH_LEtterOMG213131231~нь";

            var ve = new VigenereEncoder();

            // act
            ve.Encrypt(text, key);
        }
コード例 #4
0
        public static void Encode_KeyIsTooShort_KeyIsAppended()
        {
            // Arrange
            var encoder = new VigenereEncoder();
            var message = new string('a', 2);
            var key     = new string('a', 1);

            // Act
            var encoded = encoder.Encode(message, key);
            var decoded = encoder.Decode(encoded, key);

            // Assert
            Assert.AreEqual(message, decoded);
        }
コード例 #5
0
ファイル: VigenereEncoderTests.cs プロジェクト: zxbe/C-Sharp
        public static void DecodedStringIsTheSame()
        {
            // Arrange
            var random  = new Randomizer();
            var encoder = new VigenereEncoder();
            var message = random.GetString();
            var key     = random.GetString(random.Next(0, 1000));

            // Act
            var encoded = encoder.Encode(message, key);
            var decoded = encoder.Decode(encoded, key);

            // Assert
            Assert.AreEqual(message, decoded);
        }
コード例 #6
0
        public void DecryptTest()
        {
            // arrange
            string text1    = "пкх тцшвч 123 !м г.,:'~sadawq";
            string text2    = "узй вобро 123 !я ю.,:'~sadawq";
            string text3    = "ккф зфшям 123 !з г.,:'~sadawq";
            string key1     = "пельмень";
            string key2     = "увалень";
            string key3     = "кекс";
            string expected = "аёй цйуфы 123 !э ю.,:'~sadawq";
            var    ve       = new VigenereEncoder();

            // act
            string ans1 = ve.Decrypt(text1, key1);
            string ans2 = ve.Decrypt(text2, key2);
            string ans3 = ve.Decrypt(text3, key3);

            // assert
            Assert.AreEqual(expected, ans1);
            Assert.AreEqual(expected, ans2);
            Assert.AreEqual(expected, ans3);
        }
コード例 #7
0
 public EncodeController(VigenereEncoder encoder, FileManager fileManager)
 {
     this.encoder     = encoder;
     this.fileManager = fileManager;
 }
コード例 #8
0
        static void Main(string[] args)
        {
            string text, key;

            while (true)
            {
                Console.WriteLine("What to do?");
                Console.WriteLine("1. Encrypt");
                Console.WriteLine("2. Decrypt");
                Console.WriteLine("0. Exit");
                Task task = (Task)Convert.ToInt32(Console.ReadLine());
                if (task == Task.Exit)
                {
                    break;
                }
                Console.WriteLine("Which cipher?");
                Console.WriteLine("1. Vigenere");
                Console.WriteLine("2. Caesar");
                Cipher cipher = (Cipher)Convert.ToInt32(Console.ReadLine()) - 1;
                switch (task)
                {
                case Task.Encrypt:
                    text = GetText();
                    key  = GetKey();
                    switch (cipher)
                    {
                    case Cipher.Vigenere:
                        Encode.Encoder encVig = new VigenereEncoder(text, key);
                        EncodedMessage msgVig = encVig.Create();
                        Console.WriteLine("Encrypted message: {0}", msgVig.text);
                        break;

                    case Cipher.Caesar:
                        Encode.Encoder encCaesar = new CaesarEncoder(text, key);
                        EncodedMessage msgCaesar = encCaesar.Create();
                        Console.WriteLine("Encrypted message: {0}", msgCaesar.text);
                        break;
                    }
                    break;

                case Task.Decrypt:
                    text = GetText();
                    key  = GetKey();
                    switch (cipher)
                    {
                    case Cipher.Vigenere:
                        Decode.Decoder decVig = new VigenereDecoder(text, key);
                        DecodedMessage msgVig = decVig.Create();
                        Console.WriteLine("Decrypted message: {0}", msgVig.text);
                        break;

                    case Cipher.Caesar:
                        Decode.Decoder decCaesar = new CaesarDecoder(text, key);
                        DecodedMessage msgCaesar = decCaesar.Create();
                        Console.WriteLine("Decrypted message: {0}", msgCaesar.text);
                        break;
                    }
                    break;
                }
            }
            Console.ReadKey();
        }