Bonjour à tous,

Je suis passé récemment en Grails 2.0RC1 (avant, j'étais en 2.0M2) et certains bouts de codes ne fonctionnent plus.
Voilà mon problème, j'ai 2 classes: Application et Company avec une relation one-to-many classique (une compagnie à plusieurs application et une appli est liè à une seule compagnie). Pour l'ajout d'une application dans une société, j'ai externalisé le code dans un service mais, le bout de code qui fonctionne dans le controller ne fonctionne pas avec le service.

J'ai fais un projet de test pour montrer le problème.
Comme classe de domaine, j'ai Company et Application:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package org.test
 
class Application {
 
	String name
 
    static constraints = {
		name(blank: false, nullable: false)
    }
 
	static belongsTo = [ compagny : Company ]
}
 
package org.test
 
class Company {
 
	String name
 
    static constraints = {
		name(blank: false, nullable: false)
    }
 
	static hasMany = [ applications : Application ]
}
Et voici le code du service:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package org.test.svc
 
import org.test.Application
import org.test.Company
 
class ApplicationManagementService {
 
    def addApplicationToCompany(Application a, Company c) { 
		if (a.validate(['name'])) {
			c.addToApplications(a).save()
 
			return a
		} else {
			return null
		}
    }
}
Et enfin, le code du test d'intégration pour montrer le problème:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package addtoproblem
 
import static org.junit.Assert.*
import org.junit.*
import org.test.Application;
import org.test.Company;
import org.test.svc.ApplicationManagementService
 
 
class ApplicationManagementIntegrationTestTests {
	def applicationManagementService
 
	Company c
 
    @Before
    void setUp() {
        c = new Company(name: 'My Company')
		c.save()
    }
 
    @After
    void tearDown() {
        // Tear down logic here
    }
 
    @Test
    void testApplicationManagement() {
		assert applicationManagementService
 
		// checks company is well saved into db 
        assert Company.list().size() == 1
 
		// creates application for adding
		Application a = new Application(name: 'My Application')
 
		applicationManagementService.addApplicationToCompany a, c
 
		assert Application.list().size() == 1
    }
}
Merci par avance de votre aide

Chris