package utils; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.Test; class HashTest { @Test void generateUserSolutionKeyOnly_returnsNonNull() { assertNotNull(Hash.generateUserSolutionKeyOnly("baseKey", "userSalt")); } @Test void generateUserSolutionKeyOnly_consistentForSameInputs() { String first = Hash.generateUserSolutionKeyOnly("key1", "salt1"); String second = Hash.generateUserSolutionKeyOnly("key1", "salt1"); assertEquals(first, second); } @Test void generateUserSolutionKeyOnly_differentForDifferentKeys() { String first = Hash.generateUserSolutionKeyOnly("key1", "salt1"); String second = Hash.generateUserSolutionKeyOnly("key2", "salt1"); assertNotEquals(first, second); } @Test void generateUserSolutionKeyOnly_differentForDifferentSalts() { String first = Hash.generateUserSolutionKeyOnly("key1", "salt1"); String second = Hash.generateUserSolutionKeyOnly("key1", "salt2"); assertNotEquals(first, second); } @Test void generateUserSolutionKeyOnly_producesHexOutput() { String result = Hash.generateUserSolutionKeyOnly("key", "salt"); assertTrue(result.matches("[0-9A-F]+")); } @Test void generateUserSolution_containsHtmlMarkup() { String result = Hash.generateUserSolution("key", "salt"); assertTrue(result.contains("