Files
Java/src/test/java/com/thealgorithms/ciphers/XORCipherTest.java
2024-10-26 18:07:47 +03:00

86 lines
2.4 KiB
Java

package com.thealgorithms.ciphers;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
class XORCipherTest {
@Test
void xorEncryptDecryptTest() {
String plaintext = "My t&xt th@t will be ençrypted...";
String key = "My ç&cret key!";
String cipherText = XORCipher.encrypt(plaintext, key);
String decryptedText = XORCipher.decrypt(cipherText, key);
assertEquals("My t&xt th@t will be ençrypted...", decryptedText);
}
@Test
void testEmptyPlaintext() {
String plaintext = "";
String key = "anykey";
String cipherText = XORCipher.encrypt(plaintext, key);
String decryptedText = XORCipher.decrypt(cipherText, key);
assertEquals("", cipherText);
assertEquals("", decryptedText);
}
@Test
void testEmptyKey() {
String plaintext = "Hello World!";
String key = "";
assertThrows(IllegalArgumentException.class, () -> XORCipher.encrypt(plaintext, key));
assertThrows(IllegalArgumentException.class, () -> XORCipher.decrypt(plaintext, key));
}
@Test
void testShortKey() {
String plaintext = "Short message";
String key = "k";
String cipherText = XORCipher.encrypt(plaintext, key);
String decryptedText = XORCipher.decrypt(cipherText, key);
assertEquals(plaintext, decryptedText);
}
@Test
void testNonASCIICharacters() {
String plaintext = "こんにちは世界"; // "Hello World" in Japanese (Konichiwa Sekai)
String key = "key";
String cipherText = XORCipher.encrypt(plaintext, key);
String decryptedText = XORCipher.decrypt(cipherText, key);
assertEquals(plaintext, decryptedText);
}
@Test
void testSameKeyAndPlaintext() {
String plaintext = "samekey";
String key = "samekey";
String cipherText = XORCipher.encrypt(plaintext, key);
String decryptedText = XORCipher.decrypt(cipherText, key);
assertEquals(plaintext, decryptedText);
}
@Test
void testLongPlaintextShortKey() {
String plaintext = "This is a long plaintext message.";
String key = "key";
String cipherText = XORCipher.encrypt(plaintext, key);
String decryptedText = XORCipher.decrypt(cipherText, key);
assertEquals(plaintext, decryptedText);
}
}