Author: dlanglais Date: 2010-01-31 19:29:35 +0100 (Sun, 31 Jan 2010) New Revision: 48 Modified: trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java trunk/src/test/java/org/nuiton/mapstoragemanager/plugins/bighashmap/ColumnTest.java trunk/src/test/java/org/nuiton/mapstoragemanager/plugins/bighashmap/TableTest.java Log: Ajout de tests de suppressions d'?\195?\169l?\195?\169ments et de r?\195?\169cup?\195?\169ration de "keySet" sur les tables et colonnes. Avancement de la classe BigHashMap (finalis?\195?\169e mais ?\195?\160 tester -> c'est un proxy/fa?\195?\167ade qui ne fait que d?\195?\169l?\195?\169guer...) Modified: trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java =================================================================== --- trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java 2010-01-31 16:04:11 UTC (rev 47) +++ trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java 2010-01-31 18:29:35 UTC (rev 48) @@ -101,15 +101,23 @@ */ public String get(String table, String column, String key, int version) { return this.tables.get(table).get(column, key, version).toString(); - //TODO } /** * {@inheritDoc} */ public Map<String, String> getRow(String table, String key) { - throw new UnsupportedOperationException("Not supported yet."); - //TODO return this.tables.get(table).getRow(key); + + Row row = this.tables.get(table).getRow(key); + + Map<String,Object> rowContent = row.getRowContent(); + Map<String,String> rowMap = new HashMap<String,String>(); + + for(String rowKey : rowContent.keySet()) { + String rowValue = rowContent.get(rowKey).toString(); + rowMap.put(rowKey, rowValue); + } + return rowMap; } /** Modified: trunk/src/test/java/org/nuiton/mapstoragemanager/plugins/bighashmap/ColumnTest.java =================================================================== --- trunk/src/test/java/org/nuiton/mapstoragemanager/plugins/bighashmap/ColumnTest.java 2010-01-31 16:04:11 UTC (rev 47) +++ trunk/src/test/java/org/nuiton/mapstoragemanager/plugins/bighashmap/ColumnTest.java 2010-01-31 18:29:35 UTC (rev 48) @@ -1,8 +1,13 @@ package org.nuiton.mapstoragemanager.plugins.bighashmap; +import java.lang.reflect.Field; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.NoSuchElementException; +import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -32,9 +37,9 @@ } /** - * We add one object and we try to get it. + * We put one object and we try to get it. */ - public void testPut() { + public void testPutAndGet() { columnActual = new ColumnImpl<Object>(); expected = new Object(); @@ -53,6 +58,46 @@ } /** + * We put two object, we verify that they are in the column. + * Then, we try to remove them. + */ + public void testDelete() { + columnActual = new ColumnImpl<Integer>(); + + expected = new Integer(1); + expected2 = new Integer(2); + + columnActual.put("integer 1", expected); + columnActual.put("integer 2", expected2); + + assertEquals(columnActual.get("integer 1"), expected); + assertEquals(columnActual.get("integer 2"), expected2); + + /** + * Now we try to remove integer 1. + */ + columnActual.delete("integer 1"); + try{ + columnActual.get("integer 1"); + Assert.fail(); + } catch (NoSuchElementException e) { + log.info("Exception levée correctement."); + } + assertEquals(columnActual.get("integer 2"), expected2); + + /** + * Finally, we try to remove integer 2. + */ + columnActual.delete("integer 2"); + try{ + columnActual.get("integer 2"); + Assert.fail(); + } catch (NoSuchElementException e) { + log.info("Exception levée correctement."); + } + } + + /** * testhashCode(). */ public void testHashCode() { @@ -114,6 +159,9 @@ assertNotSame(columnActual, column2Actual); } + /** + * We test the method toString() on Column. + */ public void testToString() { Object toStore, toStore2; @@ -154,4 +202,68 @@ } assertEquals(columnActual.toString(), toStringExpected); } + + /** + * We put objects in the columns and we get the keys. + * We compare with the key set attempt. + */ + public void testGetKeys(){ + + columnActual = new ColumnImpl<Object>(); + + Set<String> expectedSet = new HashSet<String>(); + + /** + * We put object, we and verify that the keySet returned is good. + */ + columnActual.put("obj1", new Object()); + expectedSet.add("obj1"); + assertEquals(expectedSet, columnActual.getKeys()); + + columnActual.put("obj2", new Object()); + expectedSet.add("obj2"); + assertEquals(expectedSet, columnActual.getKeys()); + + columnActual.put("obj3", new Object()); + expectedSet.add("obj3"); + assertEquals(expectedSet, columnActual.getKeys()); + + columnActual.put("obj4", new Object()); + expectedSet.add("obj4"); + assertEquals(expectedSet, columnActual.getKeys()); + + columnActual.put("obj5", new Object()); + expectedSet.add("obj5"); + assertEquals(expectedSet, columnActual.getKeys()); + + /** + * We try to add already exist key. + */ + columnActual.put("obj5", new Object()); + expectedSet.add("obj5"); + assertEquals(expectedSet, columnActual.getKeys()); + + /** + * Now, we will remove object by their keys, and we verify the keySet. + */ + columnActual.delete("obj1"); + expectedSet.remove("obj1"); + assertEquals(expectedSet, columnActual.getKeys()); + + columnActual.delete("obj3"); + expectedSet.remove("obj3"); + assertEquals(expectedSet, columnActual.getKeys()); + + columnActual.delete("obj5"); + expectedSet.remove("obj5"); + assertEquals(expectedSet, columnActual.getKeys()); + + /** + * We try to remove no exist keys : + */ + columnActual.delete("obj6"); + expectedSet.remove("obj6"); + assertEquals(expectedSet, columnActual.getKeys()); + + } } Modified: trunk/src/test/java/org/nuiton/mapstoragemanager/plugins/bighashmap/TableTest.java =================================================================== --- trunk/src/test/java/org/nuiton/mapstoragemanager/plugins/bighashmap/TableTest.java 2010-01-31 16:04:11 UTC (rev 47) +++ trunk/src/test/java/org/nuiton/mapstoragemanager/plugins/bighashmap/TableTest.java 2010-01-31 18:29:35 UTC (rev 48) @@ -6,9 +6,13 @@ import java.lang.reflect.Field; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.NoSuchElementException; +import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; +import junit.framework.Assert; import junit.framework.TestCase; import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.Log; @@ -248,7 +252,7 @@ /** * We create a new Table, with two columns. - * We put objects in this columns and we try to get it. + * We put objects in this columns and we try to get them. */ public void testGet() { @@ -369,7 +373,126 @@ assertEquals(expectedInteger1v2, tableActual.get("Integer", "integer1",1)); assertEquals(expectedInteger2v2, tableActual.get("Integer", "integer2",1)); + } + /** + * We pu object in the table and we verify that the ketset return is good. + */ + public void testGetKeys() { + Set<String> keySet = new HashSet<String>(); + + /** + * We create object to put. + */ + String expectedString1 = new String("string1"); + String expectedString2 = new String("string2"); + Integer expectedInteger1 = new Integer(1); + Integer expectedInteger2 = new Integer(2); + + /** + * We create the table and columns. + */ + tableActual = new TableImpl(); + tableActual.createColumn("String", String.class); + tableActual.createColumn("Integer", Integer.class); + + /** + * We put objects in the table and their keys in the keySet. + */ + tableActual.put("String", "string1", expectedString1); + keySet.add("string1"); + assertEquals(keySet, tableActual.getKeys()); + + tableActual.put("String", "string2", expectedString2); + keySet.add("string2"); + assertEquals(keySet, tableActual.getKeys()); + + tableActual.put("Integer", "integer1", expectedInteger1); + keySet.add("integer1"); + assertEquals(keySet, tableActual.getKeys()); + + tableActual.put("Integer", "integer2", expectedInteger2); + keySet.add("integer2"); + assertEquals(keySet, tableActual.getKeys()); } + + /** + * We create a new Table, with two columns. + * We put objects in this columns and we try to remove them. + */ + public void testDelete() { + + /** + * We create object to put (and get) + */ + String expectedString1 = new String("string1"); + String expectedString2 = new String("string2"); + Integer expectedInteger1 = new Integer(1); + Integer expectedInteger2 = new Integer(2); + + /** + * We create the table and columns. + */ + tableActual = new TableImpl(); + tableActual.createColumn("String", String.class); + tableActual.createColumn("Integer", Integer.class); + + /** + * We put objects in the table. + */ + tableActual.put("String", "string1", expectedString1); + tableActual.put("String", "string2", expectedString2); + tableActual.put("Integer", "integer1", expectedInteger1); + tableActual.put("Integer", "integer2", expectedInteger2); + + /** + * We try to get them. + */ + assertEquals(expectedString1, tableActual.get("String", "string1")); + assertEquals(expectedString2, tableActual.get("String", "string2")); + assertEquals(expectedInteger1, tableActual.get("Integer", "integer1")); + assertEquals(expectedInteger2, tableActual.get("Integer", "integer2")); + + /** + * Now, we will try to delete them. + */ + tableActual.deleteRow("string1"); + try{ + tableActual.get("String", "string1"); + Assert.fail(); + } catch (NoSuchElementException e) { + log.info("Exception levée correctement."); + } + assertEquals(expectedString2, tableActual.get("String", "string2")); + assertEquals(expectedInteger1, tableActual.get("Integer", "integer1")); + assertEquals(expectedInteger2, tableActual.get("Integer", "integer2")); + + tableActual.deleteRow("string2"); + try{ + tableActual.get("String", "string2"); + Assert.fail(); + } catch (NoSuchElementException e) { + log.info("Exception levée correctement."); + } + assertEquals(expectedInteger1, tableActual.get("Integer", "integer1")); + assertEquals(expectedInteger2, tableActual.get("Integer", "integer2")); + + tableActual.deleteRow("integer1"); + try{ + tableActual.get("Integer", "integer1"); + Assert.fail(); + } catch (NoSuchElementException e) { + log.info("Exception levée correctement."); + } + assertEquals(expectedInteger2, tableActual.get("Integer", "integer2")); + + tableActual.deleteRow("integer2"); + try{ + tableActual.get("Integer", "integer2"); + Assert.fail(); + } catch (NoSuchElementException e) { + log.info("Exception levée correctement."); + } + } }
participants (1)
-
dlanglais@users.nuiton.org