Example #1
0
        public void TemplateNotFoundThrowsException()
        {
            string dir = Path.Combine(DATA_PATH, "enigma.xml");

            Factory factory = new Factory(dir);

            factory.CreateFromTemplate("invalidTemplateId");
        }
Example #2
0
        public void GenerateEnigmaTemplateSuccessfully()
        {
            string dir = Path.Combine(DATA_PATH, "enigma.xml");

            Factory factory = new Factory(dir);

            var GermanRailwayEnigma = factory.CreateFromTemplate("GermanRailway");

            Assert.AreEqual("GermanRailway", GermanRailwayEnigma.Descriptor.Id);
            Assert.AreEqual("German Railway (Rocket)", GermanRailwayEnigma.Descriptor.Name);
            Assert.AreEqual(5, GermanRailwayEnigma.Rotors.Count);
        }
Example #3
0
        public void SymmetryIsEnsuredWithAnyPresetAndZeroKey()
        {
            string dir = Path.Combine(DATA_PATH, "enigma.xml");
            Factory factory = new Factory(dir);
            Enigma enigma = factory.CreateFromTemplate("GermanRailway");

            enigma.SetEncryptionKey("AAAA");

            const string plaintext = "HELLOMYNAMEISJOHN";

            string ciphertext = enigma.SubmitString(plaintext, Enigma.OutputFormatting.Original);

            Assert.AreEqual(plaintext, enigma.SubmitString(ciphertext, Enigma.OutputFormatting.Original), "Encryption symmetry is not ensured.");
        }
Example #4
0
        public void SymmetryIsEnsuredWithAnyPresetAndAnyKeyAndOneLetter()
        {
            string dir = Path.Combine(DATA_PATH, "enigma.xml");
            Factory factory = new Factory(dir);
            Enigma enigma = factory.CreateFromTemplate("GermanRailway");

            enigma.SetEncryptionKey("QRXO");

            List<int> cipherpermutations;
            List<int> plainpermutations;
            char plainchar = 'A';
            char cipherchar = enigma.PressKey(plainchar, out cipherpermutations);
            char symmetricplainchar = enigma.PressKey(cipherchar, out plainpermutations);

            Assert.AreEqual(symmetricplainchar, plainchar, "Encryption symmetry is not ensured.");
        }