From d540124a0276f513d37eafc809bffad5dc559f60 Mon Sep 17 00:00:00 2001 From: hutt <200714916@qq.com> Date: Fri, 26 Aug 2022 11:00:39 +0800 Subject: [PATCH] [ISSUE #9023] add more EncryptionHandler ut --- .../handler/EncryptionHandlerTest.java | 79 +++++++++++++++---- 1 file changed, 64 insertions(+), 15 deletions(-) diff --git a/plugin/encryption/src/test/java/com/alibaba/nacos/plugin/encryption/handler/EncryptionHandlerTest.java b/plugin/encryption/src/test/java/com/alibaba/nacos/plugin/encryption/handler/EncryptionHandlerTest.java index 0365e1e7dc9..f9b8207b476 100644 --- a/plugin/encryption/src/test/java/com/alibaba/nacos/plugin/encryption/handler/EncryptionHandlerTest.java +++ b/plugin/encryption/src/test/java/com/alibaba/nacos/plugin/encryption/handler/EncryptionHandlerTest.java @@ -29,48 +29,51 @@ * @author lixiaoshuang */ public class EncryptionHandlerTest { - + + private EncryptionPluginService mockEncryptionPluginService; + @Before public void setUp() { - EncryptionPluginManager.join(new EncryptionPluginService() { + mockEncryptionPluginService = new EncryptionPluginService() { @Override public String encrypt(String secretKey, String content) { - return content; + return secretKey + content; } - + @Override public String decrypt(String secretKey, String content) { - return content; + return content.replaceFirst(secretKey, ""); } - + @Override public String generateSecretKey() { return "12345678"; } - + @Override public String algorithmName() { - return "aes"; + return "mockAlgo"; } - + @Override public String encryptSecretKey(String secretKey) { - return secretKey; + return secretKey + secretKey; } - + @Override public String decryptSecretKey(String secretKey) { - return secretKey; + return generateSecretKey(); } - }); + }; + EncryptionPluginManager.join(mockEncryptionPluginService); } - + @Test public void testEncryptHandler() { Pair pair = EncryptionHandler.encryptHandler("test-dataId", "content"); Assert.assertNotNull(pair); } - + @Test public void testDecryptHandler() { Pair pair = EncryptionHandler.decryptHandler("test-dataId", "12345678", "content"); @@ -88,4 +91,50 @@ public void testCornerCaseDataIdAlgoParse() { } Assert.assertNull("should not throw exception when parsing enc algo for dataId '" + dataId + "'", e); } + + @Test + public void testUnknownAlgorithmNameEnc() { + String dataId = "cipher-mySM4-application"; + String content = "content"; + Pair pair = EncryptionHandler.encryptHandler(dataId, content); + Assert.assertNotNull(pair); + Assert.assertEquals("should return original content if algorithm is not defined.", content, pair.getSecond()); + } + + @Test + public void testUnknownAlgorithmNameDecrypt() { + String dataId = "cipher-mySM4-application"; + String content = "content"; + Pair pair = EncryptionHandler.decryptHandler(dataId, "", content); + Assert.assertNotNull(pair); + Assert.assertEquals("should return original content if algorithm is not defined.", content, pair.getSecond()); + } + + @Test + public void testEncrypt() { + String dataId = "cipher-mockAlgo-application"; + String content = "content"; + String sec = mockEncryptionPluginService.generateSecretKey(); + Pair pair = EncryptionHandler.encryptHandler(dataId, content); + Assert.assertNotNull(pair); + Assert.assertEquals("should return encrypted content.", + mockEncryptionPluginService.encrypt(sec, content), pair.getSecond()); + Assert.assertEquals("should return encrypted secret key.", + mockEncryptionPluginService.encryptSecretKey(sec), pair.getFirst()); + } + + @Test + public void testDecrypt() { + String dataId = "cipher-mockAlgo-application"; + String oContent = "content"; + String oSec = mockEncryptionPluginService.generateSecretKey(); + String content = mockEncryptionPluginService.encrypt(oSec, oContent); + String sec = mockEncryptionPluginService.encryptSecretKey(oSec); + Pair pair = EncryptionHandler.decryptHandler(dataId, sec, content); + Assert.assertNotNull(pair); + Assert.assertEquals("should return original content.", oContent, pair.getSecond()); + Assert.assertEquals("should return original secret key.", oSec, pair.getFirst()); + } + + } \ No newline at end of file