1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package fr.ifremer.isisfish.simulator.sensitivity;
25
26 import java.lang.reflect.InvocationTargetException;
27 import java.lang.reflect.Method;
28 import java.util.Properties;
29
30 import org.apache.commons.lang3.StringUtils;
31 import org.apache.commons.logging.Log;
32 import org.apache.commons.logging.LogFactory;
33 import org.junit.Assert;
34 import org.junit.Test;
35 import org.nuiton.topia.TopiaContext;
36 import org.nuiton.topia.TopiaContextFactory;
37 import org.nuiton.topia.TopiaException;
38 import org.nuiton.topia.TopiaNotFoundException;
39 import org.nuiton.topia.persistence.TopiaDAO;
40 import org.nuiton.topia.persistence.TopiaEntity;
41
42 import fr.ifremer.isisfish.IsisFishDAOHelper;
43 import fr.ifremer.isisfish.datastore.IsisH2Config;
44
45
46
47
48
49
50
51
52
53
54 public class SensitivityUtilsTest {
55
56
57 private static final Log log = LogFactory.getLog(SensitivityUtilsTest.class);
58
59
60
61
62 @Test
63 public void testEspaceFactorName() {
64 Assert.assertEquals("test_factor_pour_R", SensitivityUtils.espaceFactorName("test factor pour R"));
65 Assert.assertEquals("factor2_selectivite", SensitivityUtils.espaceFactorName("factor2.sélectivité"));
66 }
67
68
69
70
71
72
73 protected TopiaContext getTopiaContext() throws TopiaNotFoundException {
74 Properties config = new Properties();
75 IsisH2Config.addMemDatabaseConfig(config, "test");
76 IsisH2Config.addHibernateMapping(config);
77 TopiaContext context = TopiaContextFactory.getContext(config);
78 return context;
79 }
80
81
82
83
84
85
86
87
88
89
90
91
92
93 @Test
94 public void testFactorExistence() throws InstantiationException, IllegalAccessException,
95 ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException,
96 InvocationTargetException, TopiaException {
97 Properties factors = SensitivityUtils.getProperties();
98
99 TopiaContext testTC = getTopiaContext();
100 TopiaContext context = testTC.beginTransaction();
101 for (String factorName : factors.stringPropertyNames()) {
102 String className = factorName.substring(0, factorName.indexOf("."));
103 String propertyName = StringUtils.capitalize(factorName.substring(factorName.indexOf(".") + 1));
104
105
106
107 Method mStatic = IsisFishDAOHelper.class.getMethod("get" + className + "DAO", TopiaContext.class);
108 TopiaDAO<TopiaEntity> dao = (TopiaDAO<TopiaEntity>) mStatic.invoke(null, new Object[] { context });
109 Assert.assertNotNull("No DOA found for factor " + factorName, dao);
110
111
112 if (log.isDebugEnabled()) {
113 log.debug(" and call get" + propertyName + "() on " + className);
114 }
115 Method m = dao.getEntityClass().getMethod("get" + propertyName);
116 Assert.assertNotNull("getter not found for " + factorName, m);
117 }
118 context.closeContext();
119 }
120 }