Project

General

Profile

Download (8.01 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.strategy.cache.agent;
10

    
11
import static org.junit.Assert.assertNotNull;
12

    
13
import org.apache.commons.lang3.StringUtils;
14
import org.apache.log4j.Logger;
15
import org.junit.Assert;
16
import org.junit.Before;
17
import org.junit.Test;
18

    
19
import eu.etaxonomy.cdm.model.agent.Person;
20
import eu.etaxonomy.cdm.model.agent.Team;
21

    
22
/**
23
 * @author a.mueller
24
 * @since 29.09.2009
25
 */
26
public class TeamDefaultCacheStrategyTest {
27

    
28
    @SuppressWarnings("unused")
29
	private static final Logger logger = Logger.getLogger(TeamDefaultCacheStrategyTest.class);
30

    
31
	private static Team team1;
32
	private static Team team2;
33
	private static Team team3;
34

    
35
	private static Person person1;
36
	private static Person person2;
37
	private static Person person3;
38
	private static Person person4;
39

    
40
	@Before
41
	public void setUp() throws Exception {
42
		team1 = Team.NewInstance();
43
		team2 = Team.NewInstance();
44
		team3 = Team.NewInstance(); //empty team
45

    
46
		person1 = Person.NewInstance();
47

    
48
		person1.setGivenName("P1FN");
49
		person1.setFamilyName("P1LN");
50
		person1.setPrefix("Dr1.");
51
		person1.setSuffix("Suff1");
52

    
53
		person2 = Person.NewInstance();
54
		person2.setNomenclaturalTitle("P2NomT");
55
		person2.setFamilyName("P2LN");
56
		person2.setGivenName("P2FN");
57
		person2.setSuffix("P2Suff");
58

    
59
		person3 = Person.NewInstance();
60
		person3.setNomenclaturalTitle("P3NomT");
61

    
62
	    person4 = Person.NewInstance();
63
	    person4.setNomenclaturalTitle("P4NomT");
64
	    person4.setFamilyName("P4LN");
65

    
66
		team1.addTeamMember(person1);
67

    
68
		team2.addTeamMember(person2);
69
		team2.addTeamMember(person1);
70
		team2.addTeamMember(person3);
71
		team2.addTeamMember(person4);
72
	}
73

    
74
//**************************************** TESTS **************************************
75

    
76
	@Test
77
	public final void testNewInstance() {
78
		TeamDefaultCacheStrategy cacheStrategy = TeamDefaultCacheStrategy.NewInstance();
79
		assertNotNull(cacheStrategy);
80
	}
81

    
82
	@Test
83
	public final void testGetNomenclaturalTitleCache(){
84
		Assert.assertNotNull("team1 nomenclatural title must not to be null",
85
		        team1.getNomenclaturalTitle());
86
		Assert.assertEquals("team1 nomenclatural title should be created by elements",
87
		        "P1LN, P.", team1.getNomenclaturalTitle());
88
		person1.setSuffix(null);
89
		Assert.assertEquals("team1 nomenclatural title should be P1LN, P.",
90
		        "P1LN, P.", team1.getNomenclaturalTitle());
91

    
92
		//team2
93
		Assert.assertEquals("team2 nomenclatural title should be 'P2NomT, P1LN, P., P3NomT & P4NomT'",
94
		        "P2NomT, P1LN, P., P3NomT & P4NomT", team2.getNomenclaturalTitle());
95
		//more
96
		team2.setHasMoreMembers(true);
97
        Assert.assertEquals("team2 nomenclatural title should be 'P2NomT, P1LN, P., P3NomT & al.'",
98
                "P2NomT, P1LN, P., P3NomT & al.", team2.getNomenclaturalTitle());
99
        team2.setHasMoreMembers(false);
100
        //3 members
101
		team2.setCacheStrategy(TeamDefaultCacheStrategy.NewInstanceNomEtAl(3));
102
        team2.setTitleCache(null, false);
103
        Assert.assertEquals("team2 nomenclatural title should still be 'P2NomT, P1LN, P. & al.' now.",
104
                "P2NomT, P1LN, P. & al.", team2.getNomenclaturalTitle());
105
        //4 members
106
        team2.setCacheStrategy(TeamDefaultCacheStrategy.NewInstanceNomEtAl(4));
107
        team2.setTitleCache(null, false);
108
        Assert.assertEquals("team2 nomenclatural title should still be 'P2NomT, P1LN, P., P3NomT & P4NomT' now.",
109
                "P2NomT, P1LN, P., P3NomT & P4NomT", team2.getNomenclaturalTitle());
110

    
111

    
112
		//team3/empty team
113
		Assert.assertNotNull("team3 nomenclatural title must not to be null",
114
		        team3.getNomenclaturalTitle());
115
		Assert.assertTrue("team3 nomenclatural title must not be empty",
116
		        StringUtils.isNotBlank(team3.getNomenclaturalTitle()));
117

    
118
		//don't take next test to serious, may be also something different, but not empty
119
		Assert.assertEquals("team3 nomenclatural title should be empty team replacement string", TeamDefaultCacheStrategy.EMPTY_TEAM, team3.getNomenclaturalTitle());
120
	}
121

    
122
	@Test
123
	public final void testGetTitleCache(){
124
		Assert.assertNotNull("team1 title cache must not to be null",
125
		        team1.getTitleCache());
126
		Assert.assertEquals("team1 title cache should be created by members titleCache",
127
		        "P1LN, P.", team1.getTitleCache());
128
		person1.setSuffix(null);
129
		Assert.assertEquals("team1 title cache should be P1LN, P.",
130
		        "P1LN, P.", team1.getTitleCache());
131
		//peson2
132
		Assert.assertEquals("team2 title cache should be 'P2LN, P., P1LN, P., P3NomT & P4LN'",
133
		        "P2LN, P., P1LN, P., P3NomT & P4LN", team2.getTitleCache());
134
        team2.setHasMoreMembers(true);
135

    
136
        Assert.assertEquals("team2 title cache should be 'P2LN, P., P1LN, P., P3NomT, P4LN & al.'",
137
                "P2LN, P., P1LN, P., P3NomT, P4LN & al.", team2.getTitleCache());
138
        team2.setHasMoreMembers(false);
139

    
140
		team2.setCacheStrategy(TeamDefaultCacheStrategy.NewInstanceTitleEtAl(3));
141
		team2.setTitleCache(null, false);
142
        Assert.assertEquals("team2 nomenclatural title should still be 'P2LN, P., P1LN, P. & al.' now.",
143
                "P2LN, P., P1LN, P. & al.", team2.getTitleCache());
144

    
145
        team2.setCacheStrategy(TeamDefaultCacheStrategy.NewInstanceTitleEtAl(4));
146
        team2.setTitleCache(null, false);
147
        Assert.assertEquals("team2 nomenclatural title should still be 'P2LN, P., P1LN, P., P3NomT & P4LN' now.",
148
                "P2LN, P., P1LN, P., P3NomT & P4LN", team2.getTitleCache());
149
        team2.setHasMoreMembers(true);
150
        team2.setTitleCache(null, false);
151
        Assert.assertEquals("team2 nomenclatural title should still be 'P2LN, P., P1LN, P., P3NomT & al.' now.",
152
                "P2LN, P., P1LN, P., P3NomT & al.", team2.getTitleCache());
153

    
154

    
155
		//person3
156
		Assert.assertNotNull("team3 title cache must not to be null",
157
		        team3.getTitleCache());
158
		Assert.assertTrue("team3 title cache must not be empty",
159
		        StringUtils.isNotBlank(team3.getTitleCache()));
160

    
161
		//don't take to exact, may be also something different, but not empty
162
		Assert.assertEquals("team3 title cache should be empty team replacement string",
163
		        TeamDefaultCacheStrategy.EMPTY_TEAM, team3.getTitleCache());
164
	}
165

    
166
    @Test
167
    public final void testFullTitle(){
168
        Assert.assertNotNull("team1 full title must not to be null", team1.getFullTitle());
169
        Assert.assertEquals("team1 full title should be created by elements",
170
                "Dr1. P1FN P1LN Suff1", team1.getFullTitle());
171
        person1.setSuffix(null);
172
        Assert.assertEquals("team1 full title should be Dr1. P1FN P1LN", "Dr1. P1FN P1LN",
173
                team1.getFullTitle());
174
        //team2
175
        Assert.assertEquals("team2 full title should be 'P2FN P2LN P2Suff, Dr1. P1FN P1LN, P3NomT & P4LN'",
176
                "P2FN P2LN P2Suff, Dr1. P1FN P1LN, P3NomT & P4LN", team2.getFullTitle());
177
        team2.setHasMoreMembers(true);
178
        Assert.assertEquals("team2 full title should be 'P2FN P2LN P2Suff, Dr1. P1FN P1LN, P3NomT, P4LN & al.'",
179
                "P2FN P2LN P2Suff, Dr1. P1FN P1LN, P3NomT, P4LN & al.", team2.getFullTitle());
180

    
181
        //team3
182
        Assert.assertNotNull("team3 full title must not to be null",
183
                team3.getFullTitle());
184
        Assert.assertTrue("team3 full title must not be empty",
185
                StringUtils.isNotBlank(team3.getFullTitle()));
186

    
187
        //don't take to serious, may be also something different, but not empty
188
        Assert.assertEquals("team3 full title should should be empty team replacement string",
189
                TeamDefaultCacheStrategy.EMPTY_TEAM, team3.getFullTitle());
190
    }
191

    
192
	@Test
193
	public final void testListenersOnMembers(){
194
		Assert.assertNotNull("team1 title cache must not to be null", team1.getTitleCache());
195
		Assert.assertEquals("team1 title cache should be created by elements",
196
		        "P1LN, P.", team1.getTitleCache());
197
		person1.setGivenName("O.");
198
		Assert.assertEquals("team1 title cache should be P1LN, O.", "P1LN, O.", team1.getTitleCache());
199
	}
200
}
(2-2/2)