blob: 1f27a9d299f8d0c4e4659c98d8c1739d56ec1811 [file] [log] [blame]
package groovy.sql
import java.util.LinkedHashMap
class GroovyRowResultTest extends GroovyTestCase {
void testMap() {
def row = createRow();
def row2 = createRow();
/**
* Test for implementing Map
*/
assert row instanceof Map, "GroovyRowResult doesn't implement Map interface"
/**
* Test for put and accessing the new property
*/
row.put("john","Doe")
assert row.john=="Doe"
assert row["john"]=="Doe"
assert row['john']=='Doe'
assert row.containsKey("john")
assert !row2.containsKey("john")
assert row.containsValue("Doe")
assert !row2.containsKey("Doe")
/**
* Test for equality (1) and size
*/
assert row!=row2, "rows unexpectedly equal"
assert row.size()==7
assert row2.size()==6
/**
* Test for remove, equality (2) and isEmpty (1)
*/
row.remove("john")
assert row==row2, "rows different after remove"
assert !row.isEmpty(), "row empty after remove"
/**
* Test for clear, equality (3) and isEmpty (2)
*/
row.clear()
row2.clear()
assert row==row2, "rows different after clear"
assert row.isEmpty(), "row not empty after clear"
}
void testProperties() {
def row = createRow()
assert row.miXed == "quick"
assert row.lower == "brown"
assert row.upper == "fox"
assert row.UPPER == "fox"
try {
assert row.LOWER == "brown"
assert false
} catch (MissingPropertyException mpe) {
} catch (Exception e) {
assert false
}
try {
println row.foo
assert false
} catch (MissingPropertyException mpe) {
} catch (Exception e) {
assert false
}
/**
* This is for GROOVY-1296
*/
assert row.nullMixed==null
assert row[1]==null
assert row.nulllower==null
assert row[3]==null
assert row.NULLUPPER==null
assert row[5]==null
}
void testOrder() {
def row = createRow()
assert row[0] == "quick"
assert row[1] == null
assert row[2] == "brown"
assert row[3] == null
assert row[4] == "fox"
assert row[5] == null
assert row[27] == null
assert row[-1] == null
assert row[-2] == "fox"
}
protected def createRow() {
def map = new LinkedHashMap()
assert map != null , "failed to load LinkedHashMap class"
map.put("miXed", "quick")
map.put("nullMixed", null)
map.put("lower", "brown")
map.put("nulllower", null)
map.put("UPPER", "fox")
map.put("NULLUPPER", null)
def row = new GroovyRowResult(map)
assert row != null , "failed to load GroovyRowResult class"
return row
}
}