marcorosi / regola-kit

Automatically exported from code.google.com/p/regola-kit
1 stars 2 forks source link

Completare i test dei GenericDao #7

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Testare tutte le annotazioni di filtro.

Testare i metodi Finder (dipende da issue #6).

Testare mapping più complessi dei dati di test (Customer, Invoice, Item,
Product).

Original issue reported on code.google.com by l.bragag...@gmail.com on 18 Sep 2007 at 10:45

GoogleCodeExporter commented 9 years ago

Original comment by l.bragag...@gmail.com on 1 Oct 2007 at 10:10

GoogleCodeExporter commented 9 years ago
Completati solo i test di base di GenericDao e FinderExecutor, mancano test del
mapping completo dei dati hsqldb.
Alcuni test sono disabilitati in alcune implementazioni tramite @IfProfileValue 
e
system properties impostate nel pom. 

Original comment by l.bragag...@gmail.com on 20 Oct 2007 at 11:06

GoogleCodeExporter commented 9 years ago
Ho aggiunto le classi di modello di test mancanti. I test passano ancora tutti, 
ma
incredibilmente anche per un caso di esempio così semplice, effettuare il 
mapping su
6 ORM differenti pone sfide interessanti.

Un primo problema riguarda la relazione esistente tra Invoice -> Item: la 
tabella
ITEM infatti ha una chiave primaria composta da INVOICEID,ITEM. Il primo campo 
deve
essere anche mappato come riferimento many-to-one a Invoice. Il secondo è
teoricamente trasparente visto che rappresenta solo la posizione di Item in
Invoice.items. La gestione delle chiavi composite sembra piuttosto differente 
da ORM
a ORM, in particolare JDO ha dei requisiti piuttosto stringenti al riguardo.

Per ora è implementato con una classe Item.ItemId con una property di tipo
Invoice.InvoiceId (che wrappa un Integer, ma JDO lo richiede espressamente) e 
una
property itemNumber. Queste property sono poi "specchiate" nella classe Item 
(pure
questo è un requisito JDO) con la differenza che la property invoice in 
realtà è di
tipo Invoice. Con JPA questo modello non sembra funzionare però :-( Hibernate 
non si
lamenta troppo, ma francamente temo che non funzionerà (ho usato un 
composite-id)...
Per JPA ho momentaneamente tolto il mapping relativo per far passare comunque i 
test.

Ho aggiunto i mapping essenziali anche a iBatis, che pure dà qualche noia: mi 
ha
costretto a impostare il tipo Customer.invoices a Collection anziché a Set e 
inoltre
non supporta le associazioni bidirezionali per cui ho dovuto togliere il 
mapping di
Invoice.customer che generava un bel loop che terminava in OutOfMemory :-(

Original comment by davide.r...@gmail.com on 25 Oct 2007 at 9:37