1 10 11 package org.mmbase.bridge; 12 13 import java.util.*; 14 import org.mmbase.util.Casting; 15 import org.mmbase.bridge.Field; 16 import org.mmbase.datatypes.DataType; 17 import org.w3c.dom.Document ; 18 19 26 public class EmptyNotNullNodeTest extends EmptyNodeTest { 27 28 private static final String EMPTY_XML = "<p/>"; 29 30 public EmptyNotNullNodeTest(String name) { 31 super(name); 32 } 33 34 public void testGetValue() { 35 for (int i = 0; i < fieldTypes.length; i++) { 36 Object value = node.getValue(fieldTypes[i] + "field"); 37 assertTrue("Empty " + fieldTypes[i] + " field did return null, but the field is marked 'notnull'", value != null); 38 } 39 } 40 41 public void testGetByteValue() { 42 for (int i = 0; i < fieldTypes.length; i++) { 43 byte[] bytes = node.getByteValue(fieldTypes[i] + "field"); 44 assertTrue("Empty " + fieldTypes[i] + " field queried as byte did not return [], but " + bytes, 45 bytes.length == 0); 46 } 47 } 48 49 public void testGetDoubleValue() { 50 for (int i = 0; i < fieldTypes.length; i++) { 51 double value = node.getDoubleValue(fieldTypes[i] + "field"); 52 if (fieldTypes[i].equals("node")) { 53 int nodeValue = getCloud().getNodeManager("bb").getNumber(); 54 assertTrue(fieldTypes[i] + " field queried as double did not return " + nodeValue + ", but " + value, 56 value == nodeValue); 57 } else if (fieldTypes[i].equals("boolean")) { 58 assertTrue("Empty " + fieldTypes[i] + " field queried as double did not return 0, but " + value, 60 value == 0); 61 } else if (fieldTypes[i].equals("datatype")) { 62 Date expected = new Date(); 63 long diff = Math.abs(expected.getTime() - (long)value); 64 assertTrue("Empty " + fieldTypes[i] + " field queried as datetime did not return " + expected + ", but " + value + "(differs " + diff + ") value:" + node.getStringValue(fieldTypes[i] + "field"), diff < 60000L); } else { 66 assertTrue("Empty " + fieldTypes[i] + " field queried as double did not return -1, but " + value, 67 value == -1.0); 68 } 69 } 70 } 71 72 public void testGetFloatValue() { 73 for (int i = 0; i < fieldTypes.length; i++) { 74 float value = node.getFloatValue(fieldTypes[i] + "field"); 75 if (fieldTypes[i].equals("node")) { 76 int nodeValue = getCloud().getNodeManager("bb").getNumber(); 77 assertTrue(fieldTypes[i] + " field queried as float did not return " + nodeValue + ", but " + value, 79 value == nodeValue); 80 } else if (fieldTypes[i].equals("boolean")) { 81 assertTrue("Empty " + fieldTypes[i] + " field queried as float did not return 0, but " + value, 83 value == 0.0); 84 } else { 85 assertTrue("Empty " + fieldTypes[i] + " field queried as float did not return -1, but " + value, 86 value == -1.0); 87 } 88 } 89 } 90 91 public void testGetIntValue() { 92 for (int i = 0; i < fieldTypes.length; i++) { 93 int value = node.getIntValue(fieldTypes[i] + "field"); 94 if (fieldTypes[i].equals("node")) { 95 int nodeValue = getCloud().getNodeManager("bb").getNumber(); 96 assertTrue(fieldTypes[i] + " field queried as integer did not return " + nodeValue + ", but " + value, 98 value == nodeValue); 99 } else if (fieldTypes[i].equals("boolean")) { 100 assertTrue("Empty " + fieldTypes[i] + " field queried as integer did not return 0, but " + value, 102 value == 0); 103 } else { 104 assertTrue("Empty " + fieldTypes[i] + " field queried as integer did not return -1, but " + value, 105 value == -1); 106 } 107 } 108 } 109 110 public void testGetLongValue() { 111 for (int i = 0; i < fieldTypes.length; i++) { 112 long value = node.getLongValue(fieldTypes[i] + "field"); 113 if (fieldTypes[i].equals("node")) { 114 int nodeValue = getCloud().getNodeManager("bb").getNumber(); 115 assertTrue(fieldTypes[i] + " field queried as long did not return " + nodeValue + ", but " + value, 117 value == nodeValue); 118 } else if (fieldTypes[i].equals("boolean")) { 119 assertTrue("Empty " + fieldTypes[i] + " field queried as long did not return 0, but " + value, 121 value == 0); 122 } else { 123 assertTrue("Empty " + fieldTypes[i] + " field queried as long did not return -1, but " + value, 124 value == -1); 125 } 126 } 127 } 128 129 public void testGetStringValue() { 130 for (int i = 0; i < fieldTypes.length; i++) { 131 String value = node.getStringValue(fieldTypes[i] + "field"); 132 if (fieldTypes[i].equals("node")) { 133 String nodeValue = ""+getCloud().getNodeManager("bb").getNumber(); 134 assertTrue(fieldTypes[i] + " field queried as string did not return \"" + nodeValue + "\", but \"" + value +"\"", 136 nodeValue.equals(value)); 137 } else if (fieldTypes[i].equals("boolean")) { 138 assertTrue("Empty " + fieldTypes[i] + " field queried as string did not return \"false\", but \"" + value +"\"", 140 "false".equals(value)); 141 } else if (fieldTypes[i].equals("long") || fieldTypes[i].equals("int")) { 142 assertTrue("Empty " + fieldTypes[i] + " field queried as string did not return \"-1\", but \"" + value +"\"", 144 "-1".equals(value)); 145 } else if (fieldTypes[i].equals("double") || fieldTypes[i].equals("float")) { 146 assertTrue("Empty " + fieldTypes[i] + " field queried as string did not return \"-1.0\", but \"" + value +"\"", 148 "-1.0".equals(value)); 149 } else if (fieldTypes[i].equals("datetime")) { 150 Field field = node.getNodeManager().getField(fieldTypes[i] + "field"); 152 String dateValue = (String ) field.getDataType().getProcessor(DataType.PROCESS_GET, Field.TYPE_STRING).process(node, field, Casting.toString(new Date(-1))); 153 assertTrue("Empty " + fieldTypes[i] + " field queried as string did not return \"" + dateValue + "\", but \"" + value +"\" " , dateValue.equals(value)); 154 } else if (fieldTypes[i].equals("xml")) { 155 assertTrue("Empty " + fieldTypes[i] + " field queried as string did not return \"" + EMPTY_XML + "\", but \"" + value +"\" " + 157 "\n field: \"" + getBytesString(value.getBytes())+"\" teststring: \"" + getBytesString(EMPTY_XML.getBytes()) + "\"", 158 EMPTY_XML.equals(value)); 159 } else { 160 assertTrue("Empty " + fieldTypes[i] + " field queried as string did not return an empty string, but \"" + value +"\"", 161 "".equals(value)); 162 } 163 } 164 } 165 166 private String getBytesString(byte[] bytes){ 167 StringBuffer sb = new StringBuffer (); 168 for(int i = 0; i < bytes.length; i++){ 169 sb.append(bytes[i]); 170 sb.append(","); 171 } 172 return sb.toString(); 173 } 174 175 public void testGetXMLValue() { 176 for (int i = 0; i < fieldTypes.length; i++) { 177 Document value = node.getXMLValue(fieldTypes[i] + "field"); 178 assertTrue("Empty " + fieldTypes[i] + " field queried as XML returns null", value != null); 179 } 180 } 181 182 public void testGetNodeValue() { 183 for (int i = 0; i < fieldTypes.length; i++) { 184 Node value = node.getNodeValue(fieldTypes[i] + "field"); 185 if (fieldTypes[i].equals("node")) { 186 Node nodeValue = getCloud().getNodeManager("bb"); 187 assertTrue(fieldTypes[i] + " field queried as node did not return \"bb\", but \"" + value +"\"", nodeValue.equals(value)); 189 } else { 190 assertTrue("Empty " + fieldTypes[i] + " field queried as Node did not return null, but " + value, value == null); 191 } 192 } 193 } 194 195 public void testGetBooleanValue() { 196 for (int i = 0; i < fieldTypes.length; i++) { 197 boolean value = node.getBooleanValue(fieldTypes[i] + "field"); 198 if (fieldTypes[i].equals("node")) { 199 assertTrue("Empty " + fieldTypes[i] + " field queried as boolean did not return true, but " + value, value); 200 } else { 201 assertTrue("Empty " + fieldTypes[i] + " field queried as boolean did not return false, but " + value, !value); 202 } 203 } 204 } 205 206 public void testGetDateTimeValue() { 207 for (int i = 0; i < fieldTypes.length; i++) { 208 Date value = node.getDateValue(fieldTypes[i] + "field"); 209 assertTrue("Empty " + fieldTypes[i] + " field queried as datetime returned null", value != null); 210 Date expected = new Date(-1); 211 assertTrue("Empty " + fieldTypes[i] + " field queried as datetime did not return " + expected + ", but " + value + " value:" + node.getStringValue(fieldTypes[i] + "field"), value.equals(expected)); 212 } 213 } 214 215 public void testGetListValue() { 216 for (int i = 0; i < fieldTypes.length; i++) { 217 List value = node.getListValue(fieldTypes[i] + "field"); 218 assertTrue("Empty " + fieldTypes[i] + " field queried as list returned null", value != null); 219 if (fieldTypes[i].equals("list")) { 220 assertTrue("Empty " + fieldTypes[i] + " field queried as list did not return [], but " + value, value.size() == 0); 221 } else { 222 assertTrue("Empty " + fieldTypes[i] + " field queried as list did not return [<object>], but " + value, value.size() == 1); 223 } 224 } 225 } 226 227 228 public void setUp() { 229 Cloud cloud = getCloud(); 231 node = cloud.getNodeManager("xx").createNode(); 232 assertTrue(cloud.hasNode(cloud.getNodeManager("bb").getNumber())); 233 node.setValue("nodefield", cloud.getNodeManager("bb")); 235 node.commit(); 236 } 237 238 } 239 | Popular Tags |