db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From karan malhi <karan.ma...@gmail.com>
Subject Re: [Jdo Wiki] Update of "QueryTests" by MichaelWatzek
Date Thu, 22 Sep 2005 15:26:58 GMT
Hi Michael,

I saw the wiki on query tests. Neat work. I had a question, what is the 
difference between the positive test and negative test. Does that have 
any affect on the way the testcase code is written?

Regards

Apache Wiki wrote:

>Dear Wiki user,
>
>You have subscribed to a wiki page or wiki category on "Jdo Wiki" for change notification.
>
>The following page has been changed by MichaelWatzek:
>http://wiki.apache.org/jdo/QueryTests
>
>------------------------------------------------------------------------------
>  ||<|3> '''A14.6.11-2:''' The default Unique setting is `true` for aggregate results
without a grouping expression, and `false` otherwise. || '''`true:`'''[[BR]]`SELECT COUNT(THIS)
FROM company.Person` ||<|3> `result.`[[BR]]`DefaultUnique` ||<|3> Positive test.
||
>  || '''`false grouping:`'''[[BR]]`SELECT FROM company.Person` `GROUP BY lastname` ||
>  || '''`false:`'''[[BR]]`SELECT FROM company.Person` ||
>- ||<|14> '''A14.6.12-1:''' The result class may be one of ... ... Portable result
classes do not invoke any persistence behavior during their no-args constructor or set methods.
|| '''`valid, result class is String:`'''[[BR]]`SELECT stringNull INTO String FROM mylib.PrimitiveTypes`[[BR]]''`TBD
for all supported JDK classes.`''||<|14> `result.`[[BR]]`ResultClassRequirements` ||<|14>
Positive and negative test.[[BR]]New result class required. ||
>+ ||<|14> '''A14.6.12-1:'''The result class may be one of the `java.lang` classes
`Character`, `Boolea`, `Byte`, `Short`, `Integer`, `Long`, `Float`, `Double`, `String`, or
`Object[]`; or one of the `java.math` classes `BigInteger` or `BigDecimal`; or the `java.util`
class `Date`; or the `java.util` interface `Map`; or one of the `java.sql` classes `Date`,
`Time`, or `Timestamp`; or a user-defined class.[[BR]]- If there are multiple result expressions,
the result class must be able to hold all elements of the result specification or a `JDOUserException`
is thrown.[[BR]]- If there is only one result expression, the result class must be assignable
from the type of the result expression or must be able to hold all elements of the result
specification. A single value must be able to be coerced into the specified result class (treating
wrapper classes as equivalent to their unwrapped primitive types) or by matching. If the result
class does not satisfy these conditions, a `JDOUser
> Exception` is thrown.[[BR]]- A constructor of a result class specified in the setResult
method will be used if the results specification matches the parameters of the constructor
by position and type. If more than one constructor satisfies the requirements, the JDO implementation
chooses one of them. If no constructor satisfies the results requirements, or if the result
class is specified via the `setResultClass` method, the following requirements apply:[[BR]]--
A user-defined result class must have a no-args constructor and one or more public “set”
or “put” methods or fields.[[BR]]-- Each result expression must match one of:[[BR]]---
a public field that matches the name of the result expression and is of the type (treating
wrapper types the same as primitive types) of the result expression;[[BR]]--- or if no public
field matches the name and type, a public “set” method that returns `void` and matches
the name of the result expression and takes a single parameter
>  which is the exact type of the result expression;[[BR]]--- or if neither of the above
applies, a public method must be found with the signature `void put(Object, Object)` in which
the first argument is the name of the result expression and the second argument is the value
from the query result.[[BR]]-- Portable result classes do not invoke any persistence behavior
during their no-args constructor or set methods. || '''`valid, result class is String:`'''[[BR]]`SELECT
stringNull INTO String FROM mylib.PrimitiveTypes`[[BR]]''`TBD for all supported JDK classes.`''||<|14>
`result.`[[BR]]`ResultClassRequirements` ||<|14> Positive and negative test.[[BR]]New
result class required. ||
>  || '''`valid, result class is TCK class:`'''[[BR]]`SELECT stringNull AS s, intNotNull
AS i` `INTO ...StringIntResult` `FROM mylib.PrimitiveTypes`||
>  || '''`invalid, result class is TCK class` `not having Long property:`'''[[BR]]`SELECT
stringNull AS s, longNotNull AS l` `INTO ...StringIntResult` `FROM mylib.PrimitiveTypes`||
>  || '''`invalid, result class is JDK class:`'''[[BR]]`SELECT stringNull, intNotNull`
`INTO String` `FROM mylib.PrimitiveTypes`||
>@@ -214, +214 @@
>
>  || '''`invalid, result class is TCK class` `not having an no-arg constructor:`'''[[BR]]`SELECT
stringNull INTO ...NoArgConstructor` `FROM mylib.PrimitiveTypes`||
>  || '''`invalid, result class is TCK class` `not having public fields and methods:`'''[[BR]]`SELECT
stringNull INTO ...NoFieldsNoMethods` `FROM mylib.PrimitiveTypes`||
>  || '''`valid, result class is TCK class` `having public fields and set methods:`'''[[BR]]`SELECT
stringNull AS s INTO ...FieldsAndSetMethods` `FROM mylib.PrimitiveTypes`||
>- || '''`valid, result class is TCK class` `having public fields and put method:`'''[[BR]]`SELECT
stringNull AS s INTO ...FieldsAndPutMethod` `FROM mylib.PrimitiveTypes`||
>+ || '''`valid, result class is TCK class` `having public fields and a put method:`'''[[BR]]`SELECT
stringNull AS s INTO ...FieldsAndPutMethod` `FROM mylib.PrimitiveTypes`||
>  || '''`valid, result class is TCK class` `having put method:`'''[[BR]]`SELECT stringNull
AS s INTO ...PutMethod` `FROM mylib.PrimitiveTypes`||
>  || '''A14.6.12-2:''' Table 6: Shape of Result (C is the candidate class) || `...` ||
`result.`[[BR]]`ShapeOfResult` || Positive test. ||
>  
>
>  
>

-- 
Karan Singh



Mime
View raw message