/** * Copyright (c) 2014 Matthias Jaenicke <matthias.jaenicke@student.kit.edu>, * Matthias Plappert <undkc@student.kit.edu>, * Julien Duman <uncyc@student.kit.edu>, * Christian Dreher <uaeef@student.kit.edu>, * Wasilij Beskorovajnov <uajkm@student.kit.edu> and * Aydin Tekin <aydin.tekin@student.kit.edu> * * Released under the MIT license (refer to LICENSE.md) * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package edu.kit.iks.Cryptographics.Caesar; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; import edu.kit.iks.Cryptographics.Caesar.Experiment.CryptoModel; /** * JUnit testcase class for testing the functionality of the model in the visualization of Caesar. * * @author Wasilij Beskorovajnov. * */ public class CryptoModelTest { // Model to test. private CryptoModel modelTT; private final String MESSAGE_HEADER = "[JUnit] Testing the functionality of "; @Before public void setUp() throws Exception { this.modelTT = CryptoModel.getInstance(); } @Test public void testEnc() { String alphabet = "!!!ABcdEFghIJKlmNOPqrSTUvwXYZ!!!"; String expected = "!!!FGhiJKlmNOPqrSTUvwXYZabCDE!!!"; String actual = this.modelTT.enc(5, alphabet); assertEquals(MESSAGE_HEADER + "enc(String)\n", expected, actual); } @Test public void testDec() { String cipher = "!!!KLmnOPqrSTUvwXYZabCDEfgHIJ!!!"; String expected = "!!!ABcdEFghIJKlmNOPqrSTUvwXYZ!!!"; String actual = this.modelTT.dec(10, cipher); assertEquals(MESSAGE_HEADER + "dec(String)\n", expected, actual); } @Test public void testEncHtml() { String alphabet = "<b>A</b>"; String expected = "<b>F</b>"; String actual = this.modelTT.enc(5, alphabet); assertEquals(MESSAGE_HEADER + "enc(String)\n", expected, actual); } @Test public void testIsKeyValid() { int[] validKeys = { 1, 13, 26 }; int[] invalidKeys = { -25, 0, 27 }; for (int validKey : validKeys) { assertTrue(MESSAGE_HEADER + "isKeyValid()\n", this.modelTT.isKeyValid(validKey)); } for (int invalidKey : invalidKeys) { assertFalse(MESSAGE_HEADER + "isKeyValid()\n", this.modelTT.isKeyValid(invalidKey)); } } @Test public void testIsInputValid() { String[] validInputArr = { "A", "ABCD", "ABCDFHGRT" }; String[] invalidInputArr = { "", "ABCDHFGRTZ", "ABDGFHRTEZSHD" }; for (String validInput : validInputArr) { assertTrue(MESSAGE_HEADER + "isInputValid()\n", this.modelTT.isInputValid(validInput)); } for (String invalidInput : invalidInputArr) { assertFalse(MESSAGE_HEADER + "isInputValid()\n", this.modelTT.isInputValid(invalidInput)); } } @Test public void testGenRandomGrats() { for (int i = 0; i < 50; i++) { assertNotNull(this.modelTT.genRandomGrats()); } } @Test public void testGenRandomBlamings() { for (int i = 0; i < 50; i++) { assertNotNull(this.modelTT.genRandomBlamings()); } } @Test public void testGenRandomPlainSequence() { for (int i = 0; i < 50; i++) { assertNotNull(this.modelTT.genRandomPlainSequence()); } } @Test public void testGenRandomCipher() { for (int i = 0; i < 50; i++) { assertNotNull(this.modelTT.genRandomCipher(i)); } } @Test public void testGenRandomText() { assertNotNull(this.modelTT.genRandomText()); } @Test public void testGenerateKey() { int key = 0; for (int i = 0; i < 99; i++) { key = this.modelTT.generateKey(); if (key > 0 && key < 27) { assertTrue(true); } else { assertTrue(false); } } } }