1 package org.cateproject.service.enumeration;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNotNull;
5 import static org.junit.Assert.fail;
6
7 import java.util.HashSet;
8 import java.util.Set;
9 import java.util.UUID;
10
11 import org.cateproject.service.enumeration.impl.NamedAreaLevelsFactory;
12 import org.easymock.EasyMock;
13 import org.junit.Before;
14 import org.junit.Ignore;
15 import org.junit.Test;
16 import org.springframework.transaction.PlatformTransactionManager;
17 import org.springframework.transaction.TransactionStatus;
18 import org.springframework.transaction.support.DefaultTransactionDefinition;
19 import org.springframework.transaction.support.SimpleTransactionStatus;
20 import org.unitils.easymock.annotation.Mock;
21 import org.unitils.inject.annotation.InjectInto;
22 import org.unitils.inject.annotation.TestedObject;
23
24 import eu.etaxonomy.cdm.model.common.TermVocabulary;
25 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
26 import eu.etaxonomy.cdm.persistence.dao.common.ITermVocabularyDao;
27 import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
28
29 @Ignore
30 public class NamedAreaLevelsFactoryTest extends CdmIntegrationTest {
31
32 @Mock
33 @InjectInto(property="termVocabularyDao")
34 private ITermVocabularyDao termVocabularyDao;
35
36 @Mock
37 @InjectInto(property="transactionManager")
38 private PlatformTransactionManager transactionManager;
39
40 @TestedObject
41 private NamedAreaLevelsFactory namedAreaLevelsFactory;
42
43 private TermVocabulary<NamedAreaLevel> vocabulary;
44
45 private NamedAreaLevel continent;
46
47 private NamedAreaLevel region;
48
49 private NamedAreaLevel country;
50
51 private TransactionStatus txStatus;
52
53 @Before
54 public void setUp() {
55 termVocabularyDao = EasyMock.createMock(ITermVocabularyDao.class);
56 transactionManager = EasyMock.createMock(PlatformTransactionManager.class);
57 namedAreaLevelsFactory = new NamedAreaLevelsFactory();
58 Set<NamedAreaLevel> terms = new HashSet<NamedAreaLevel>();
59 continent = new NamedAreaLevel();
60 continent.setUuid(UUID.fromString("0F5AA87B-9FA8-1014-BBAE-D278B2177AB6"));
61
62 region = new NamedAreaLevel();
63 region.setUuid(UUID.fromString("0F535531-9FA8-1014-BBAE-D278B2177AB6"));
64 txStatus = new SimpleTransactionStatus();
65
66 country = new NamedAreaLevel();
67 country.setUuid(UUID.fromString("0F5BC15B-9FA8-1014-BBAE-D278B2177AB6"));
68 vocabulary = new TermVocabulary<NamedAreaLevel>();
69 vocabulary.addTerm(continent);
70 vocabulary.addTerm(region);
71 vocabulary.addTerm(country);
72 }
73
74 @Test
75 public void testInit() {
76 EasyMock.expect(termVocabularyDao.findByUri(EasyMock.eq(NamedAreaLevelsFactory.ENUM_URI), EasyMock.eq(NamedAreaLevel.class))).andReturn(vocabulary);
77 EasyMock.expect(transactionManager.getTransaction(EasyMock.isA(DefaultTransactionDefinition.class))).andReturn(txStatus);
78 transactionManager.commit(txStatus);
79 EasyMock.replay(termVocabularyDao,transactionManager);
80
81 NamedAreaLevels namedAreaLevels = null;
82
83 try {
84 namedAreaLevels = (NamedAreaLevels)namedAreaLevelsFactory.getObject();
85 } catch(Exception e) {
86 fail("No Exception expected here");
87 }
88
89 EasyMock.verify(termVocabularyDao,transactionManager);
90
91 assertNotNull("NamedAreaLevelsFactory.getObject should return a NamedAreaLevels",namedAreaLevels);
92 assertNotNull("NamedAreaLevels.CONTINENT() should not be null",namedAreaLevels.CONTINENT());
93 assertEquals("NamedAreaLevels.CONTINENT() should be the expected NamedAreaLevel",continent,namedAreaLevels.CONTINENT());
94 assertNotNull("NamedAreaLevels.COUNTRY() should not be null",namedAreaLevels.COUNTRY());
95 assertEquals("NamedAreaLevels.COUNTRY() should be the expected NamedAreaLevel",country,namedAreaLevels.COUNTRY());
96 assertNotNull("NamedAreaLevels.REGION() should not be null",namedAreaLevels.REGION());
97 assertEquals("NamedAreaLevels.REGION() should be the expected NamedAreaLevel",region,namedAreaLevels.REGION());
98 }
99
100 }