public void TemplateNotFoundThrowsException() { string dir = Path.Combine(DATA_PATH, "enigma.xml"); Factory factory = new Factory(dir); factory.CreateFromTemplate("invalidTemplateId"); }
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); }
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."); }
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."); }