public async Task SetPlugboard_ShouldReturn200Ok_WhenSettingAWiring() { // Arrange var controller = new EnigmaController( "http://localhost:61467/", "api/Enigma/SetPlugboard", String.Empty); PlugboardDto plugboardDto = new PlugboardDto() { Wiring = new Dictionary <char, char>() { { 'a', 'b' } } }; // Act HttpResponseMessage response = await controller.ExecutePostSetPlugboard <PlugboardDto, HttpResponseMessage>(plugboardDto); // Assert HttpStatusCode statusCode = response.StatusCode; Assert.AreEqual(HttpStatusCode.OK, statusCode); }
public async Task Encrypt_ShouldReturnEncryptText_WithBasicDto() { // Arrange var controller = new EnigmaController( "http://localhost:61467/", "api/Enigma/Encrypt?leaveWhiteSpace=true", String.Empty); string textToEncrypt = "I am a jelly doughnut"; enigmaMachineDto.Text = textToEncrypt; // Act HttpResponseMessage response = await controller.ExecutePostEncrypt <EnigmaMachineDto, HttpResponseMessage>(enigmaMachineDto); string encryptedText = (await response.Content.ReadAsStringAsync()).Replace("\"", ""); enigmaMachineDto.Text = encryptedText; response = await controller.ExecutePostEncrypt <EnigmaMachineDto, HttpResponseMessage>(enigmaMachineDto); string DecryptedText = (await response.Content.ReadAsStringAsync()).Replace("\"", ""); // Assert HttpStatusCode statusCode = response.StatusCode; Assert.AreEqual(textToEncrypt.ToLower(), DecryptedText); }
public async Task Encrypt_ShouldReturnEncryptText_With10Wire10Settings_AndPunctuation() { // Arrange var controller = new EnigmaController( "http://localhost:61467/", "api/Enigma/Encrypt?leaveWhiteSpace=false", String.Empty); string textToEncrypt = "Where's my bmw"; enigmaMachineDto.Text = textToEncrypt; enigmaMachineDto.Plugboard = new PlugboardDto() { Wiring = new Dictionary <char, char>() { { 'a', 'b' }, { 'r', 'e' }, { 'c', 'd' }, { 'f', 'g' }, { 'h', 'i' }, { 'j', 'k' }, { 'l', 'm' }, { 'n', 'o' }, { 'p', 'q' }, { 's', 't' } } }; // Act HttpResponseMessage response = await controller.ExecutePostEncrypt <EnigmaMachineDto, HttpResponseMessage>(enigmaMachineDto); string encryptedText = (await response.Content.ReadAsStringAsync()).Replace("\"", ""); enigmaMachineDto.Text = encryptedText; response = await controller.ExecutePostEncrypt <EnigmaMachineDto, HttpResponseMessage>(enigmaMachineDto); string DecryptedText = (await response.Content.ReadAsStringAsync()).Replace("\"", ""); // Assert HttpStatusCode statusCode = response.StatusCode; Assert.AreEqual(textToEncrypt.ToLower().Replace(" ", "").Replace("'", ""), DecryptedText); }
public void SetPlugboard_ShouldReturn200Ok_WhenSetting11Plugs() { // Arrange var controller = new EnigmaController(); controller.Request = new HttpRequestMessage(); string jsonPlugboard = @" { 'a':'b', 'c':'d', 'e':'f', 'g':'h', 'i':'j', 'k':'l', 'm':'n', 'o':'p', 'q':'r', 's':'t', 'z':'x' }"; // Act var message = controller.SetPlugboard(JsonConvert.DeserializeObject <PlugboardDto>(jsonPlugboard)); // Assert Assert.AreEqual(HttpStatusCode.OK, message.StatusCode); }
public async Task Encrypt_ShouldReturnEncryptText_WithNoWireSettings() { // Arrange var controller = new EnigmaController( "http://localhost:61467/", "api/Enigma/Encrypt?leaveWhiteSpace=true", String.Empty); string textToEncrypt = "I am a jelly doughnut"; enigmaMachineDto.Text = textToEncrypt; enigmaMachineDto.Plugboard = new PlugboardDto() { }; //EnigmaMachineDto enigmaMachineDto = new EnigmaMachineDto() //{ // MachineName = "foo", // Text = textToEncrypt, // Rotor1 = new RotorDto() // { // RotorNum = 1, // InitialDialSetting = 'a' // }, // Rotor2 = new RotorDto() // { // RotorNum = 2, // InitialDialSetting = 'b' // }, // Rotor3 = new RotorDto() // { // RotorNum = 3, // InitialDialSetting = 'c' // }, // Plugboard = new PlugboardDto() // { // Wiring = new Dictionary<char, char>() { } // } //}; // Act HttpResponseMessage response = await controller.ExecutePostEncrypt <EnigmaMachineDto, HttpResponseMessage>(enigmaMachineDto); string encryptedText = (await response.Content.ReadAsStringAsync()).Replace("\"", ""); enigmaMachineDto.Text = encryptedText; response = await controller.ExecutePostEncrypt <EnigmaMachineDto, HttpResponseMessage>(enigmaMachineDto); string DecryptedText = (await response.Content.ReadAsStringAsync()).Replace("\"", ""); // Assert HttpStatusCode statusCode = response.StatusCode; Assert.AreEqual(textToEncrypt.ToLower(), DecryptedText); }
public void ChooseRotors_ShouldReturn400_WhenPassedRotorsABC() { // Arrange var controller = new EnigmaController(); controller.Request = new HttpRequestMessage(); // Act HttpResponseMessage message = controller.ChooseRotors("ABC"); // Assert Assert.AreEqual(HttpStatusCode.BadRequest, message.StatusCode); }
public async Task ChooseRotors_ShouldReturn400_WithInvalidRotors(string rotor) { // Arrange var controller = new EnigmaController( "http://localhost:61467/", "api/Enigma/ChooseRotors", "rotors=" + rotor); // Act var response = await controller.ExecutePostChooseRotors(); // Assert Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public async Task Encrypt_ShouldReturn200OK_WithBasicDto() { // Arrange var controller = new EnigmaController( "https://enigmamachinerestapi.azurewebsites.net/", "api/Enigma/Encrypt?leaveWhiteSpace=true", String.Empty); string textToEncrypt = "I am a jelly doughnut"; EnigmaMachineDto enigmaMachineDto = new EnigmaMachineDto() { MachineName = "foo", Text = textToEncrypt, Rotor1 = new RotorDto() { RotorNum = 1, InitialDialSetting = 'a' }, Rotor2 = new RotorDto() { RotorNum = 2, InitialDialSetting = 'b' }, Rotor3 = new RotorDto() { RotorNum = 3, InitialDialSetting = 'c' }, Plugboard = new PlugboardDto() { Wiring = new Dictionary <char, char>() { { 'a', 'b' }, { 'r', 'e' } } } }; // Act HttpResponseMessage response = await controller.ExecutePostEncrypt <EnigmaMachineDto, HttpResponseMessage>(enigmaMachineDto); string encryptedText = (await response.Content.ReadAsStringAsync()).Replace("\"", ""); // Assert HttpStatusCode statusCode = response.StatusCode; Assert.AreEqual(HttpStatusCode.OK, statusCode); }
public void Encrypt_ShouldReturn200Ok_WhenMessageIsProper_AndLeaveWhiteSpaceIsTrue() { // Arrange var controller = new EnigmaController(); controller.Request = new HttpRequestMessage(); controller.Configuration = new System.Web.Http.HttpConfiguration(); string jsonEnigma = @"{ 'MachineName': 'Jeffs Enigma', 'Text':'hello enigma machine', 'Rotor1':{ 'RotorNum':1, 'Setting':'a' }, 'Rotor2':{ 'RotorNum':2, 'Setting':'a' }, 'Rotor3':{ 'RotorNum':3, 'Setting':'z' }, 'Plugboard': { 'Wiring': { 'h':'s', 'a':'e', 'd':'j', 'p':'q', 'g':'m', 'b':'c', 'f':'i', 'k':'n', 'l':'o', 'r':'t', } } }"; // Act var message = controller.Encrypt(JsonConvert.DeserializeObject <EnigmaMachineDto>(jsonEnigma), true); // Assert Assert.AreEqual(HttpStatusCode.OK, message.StatusCode); message.TryGetContentValue <string>(out string encryptedText); Assert.AreEqual("ocfkj lljkyb urekwfj", encryptedText); }
public void SetPlugboard_ShouldReturn200Ok_WhenSetting0Plugs() { // Arrange var controller = new EnigmaController(); controller.Request = new HttpRequestMessage(); string jsonPlugboard = @" { }"; // Act var message = controller.SetPlugboard(JsonConvert.DeserializeObject <PlugboardDto>(jsonPlugboard)); // Assert Assert.AreEqual(HttpStatusCode.OK, message.StatusCode); }
public void SetRotor_Should_When() { // Arrange var enigmaController = new EnigmaController(); RotorDto rotorDto = new RotorDto { Mapping = "bdfhjlcprtxvznyeiwgakmusqo", Rotate = true, AdjacentRotorAdvanceOffset = 21, InitialDialSetting = 'z' }; // Act //HttpResponseMessage response = enigmaController.SetRotor(rotorDto, 3); enigmaController.SetPlugboard // Assert }
public async Task SetRotor_ShouldReturn200Ok_WhenSettingRotor2ToZ() { // Arrange var controller = new EnigmaController("http://localhost:61467/", "api/Enigma/SetRotor/1", null); RotorDto rotorDto = new RotorDto() { RotorNum = 1, InitialDialSetting = 'a' }; // Act HttpResponseMessage response = await controller.ExecutePostSetRotor <RotorDto, HttpResponseMessage>(rotorDto); // Assert HttpStatusCode statusCode = response.StatusCode; string encryptedText = await response.Content.ReadAsStringAsync(); Assert.AreEqual(HttpStatusCode.OK, statusCode); }
public void SetRotor_ShouldReturn200Ok_WhenSettingIncorrectRotor() { // Arrange var controller = new EnigmaController(); controller.Request = new HttpRequestMessage(); string jsonRotor = @" { 'RotorNum':4, 'Setting':'k' }"; HttpResponseMessage message = controller.ChooseRotors("123"); // Act message = controller.SetRotor(JsonConvert.DeserializeObject <RotorDto>(jsonRotor), 2); // Assert Assert.AreEqual(HttpStatusCode.OK, message.StatusCode); }