# HG changeset patch # User František Kučera # Date 1274788461 -7200 # Node ID 9135d52e8b0a64d5ad193b438a1dcf199bd65ee0 # Parent f6c7168be1b716977e820f03e747a314d128232a Test hashovací funkce + test češtiny v identifikátorech Java Language Specification – 3.8 Identifiers: http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#40625 diff -r f6c7168be1b7 -r 9135d52e8b0a java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java Mon May 24 20:25:55 2010 +0200 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java Tue May 25 13:54:21 2010 +0200 @@ -48,7 +48,7 @@ public int dopocitejSouradnice() { /** - * TODO: refaktorovat, změnit datové typy, souřadnice… + * TODO: refaktorovat, změnit datové typy, souřadnice… */ Geo g = new Geo(); int pocetAktualizovanych = 0; diff -r f6c7168be1b7 -r 9135d52e8b0a java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Texy.java --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Texy.java Mon May 24 20:25:55 2010 +0200 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ext/Texy.java Tue May 25 13:54:21 2010 +0200 @@ -41,9 +41,10 @@ return vysledek.toString(); } catch (Exception e) { + // TODO: vyhazovat výjimku return "TODO:chyba"; } finally { - // TODO + // TODO: finally close(); } } } diff -r f6c7168be1b7 -r 9135d52e8b0a java/nekurak.net-lib/nbproject/project.properties --- a/java/nekurak.net-lib/nbproject/project.properties Mon May 24 20:25:55 2010 +0200 +++ b/java/nekurak.net-lib/nbproject/project.properties Tue May 25 13:54:21 2010 +0200 @@ -31,7 +31,6 @@ javac.test.classpath=\ ${javac.classpath}:\ ${build.classes.dir}:\ - ${libs.junit.classpath}:\ ${libs.junit_4.classpath} javadoc.additionalparam= javadoc.author=false diff -r f6c7168be1b7 -r 9135d52e8b0a java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Hash.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Hash.java Mon May 24 20:25:55 2010 +0200 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Hash.java Tue May 25 13:54:21 2010 +0200 @@ -35,6 +35,7 @@ * @return hashovaný text v HEX tvaru * @throws NoSuchAlgorithmException neexistující hashovací algoritmus * @throws UnsupportedEncodingException nepodporované kódování znaků + * @throws NullPointerException pokud je vstup null */ public static String hashuj(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException { MessageDigest md; diff -r f6c7168be1b7 -r 9135d52e8b0a java/nekurak.net-lib/test/cz/frantovo/nekurak/util/HashTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-lib/test/cz/frantovo/nekurak/util/HashTest.java Tue May 25 13:54:21 2010 +0200 @@ -0,0 +1,58 @@ +package cz.frantovo.nekurak.util; + +import org.junit.Test; +import static org.junit.Assert.*; + +/** + * Kromě Hashe otestujeme i to, zda správně fungují i názvy metod napsané česky :-) + * + *
+ * „Letters and digits may be drawn from the entire Unicode character set, + * which supports most writing scripts in use in the world today, + * including the large sets for Chinese, Japanese, and Korean. + * This allows programmers to use identifiers in their programs that are written in their native languages.“ + *
+ * + * @see Java Language Specification – 3.8 Identifiers + * @author fiki + */ +public class HashTest { + + String 外滩 = "Bund"; + String 南京东路 = "Nanjing Road East"; + + @Test + public void prázdnýŘetězec() throws Exception { + testuj("", "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"); + } + + @Test + public void prázdnýŘádek() throws Exception { + testuj("\n", "be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09"); + } + + @Test + public void nullHodnota() throws Exception { + try { + testuj(null, "Měla být vyhozena NullPointerException."); + fail(); + } catch (NullPointerException npe) { + // K chybě má dojít + } + } + + @Test + public void něco() throws Exception { + testuj("Ahoj, jak to jde? :-)", "87e6e3c6487dc5ffee93d05cdc71a196f21181e357e61e1820d652ed9b601e179db92c1aaafc9cf57384498c1a52b89c82714dabdfd30b9eb8c7fd8d3fe53685"); + } + + @Test + public void čeština() throws Exception { + testuj("čeština a další unicode – → | @{#@$%${*&…˙×ׄ东方明珠塔“‚&‘‚“‚", "f9750a7f3fa04356510285af61bbdd40b108e04c2abad69130c5929561fa2765e263707147f779ac5f4be348005ce0fc810334822ba0a50f1d5c41719413277e"); + } + + private void testuj(String vstup, String pozadovanyVystup) throws Exception { + String vystup = Hash.hashuj(vstup); + assertEquals(pozadovanyVystup, vystup); + } +}