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:
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
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 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 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 } } }
Merci par avance de votre aide
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 } }
Chris
Partager