/
NikolayIvkin
/
TheAlgorithms
Обзор
Документация
Войти
/
NikolayIvkin
/
TheAlgorithms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/test/java/com/thealgorithms/ciphers/XORCipherTest.java
85 строк
2 KB
Hardik Pawar
Enhance docs, add more tests in `XORCipher` (#5900)
26 окт 2024, 18:07
Не верифицирован
26 окт 2024, 18:07
4e46002
Код
Авторство
О чём код?
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); } }