source: src/test/java/geniusweb/profilesserver/DefaultProfilesFactoryTest.java@ 23

Last change on this file since 23 was 23, checked in by bart, 4 years ago

minor fixes to improve extendability

File size: 4.5 KB
Line 
1package geniusweb.profilesserver;
2
3import static org.junit.Assert.assertEquals;
4import static org.junit.Assert.assertFalse;
5import static org.junit.Assert.assertTrue;
6import static org.mockito.Mockito.mock;
7import static org.mockito.Mockito.when;
8
9import java.io.IOException;
10import java.util.LinkedList;
11import java.util.List;
12
13import org.junit.Before;
14import org.junit.Test;
15
16import geniusweb.issuevalue.Domain;
17import geniusweb.profile.Profile;
18import geniusweb.profilesserver.events.ChangeEvent;
19import geniusweb.profilesserver.events.DomainChangeEvent;
20import geniusweb.profilesserver.events.ProfileChangeEvent;
21import tudelft.utilities.listener.Listener;
22
23public class DefaultProfilesFactoryTest {
24
25 private static final String PROFILE1 = "profile1";
26 private static final String DOMAIN1 = "domain1";
27 private Domain domain1 = mock(Domain.class);
28 private List<ChangeEvent> events = new LinkedList<>();
29 private DefaultProfilesRepository factory;
30
31 private Profile profile1 = mock(Profile.class);
32 private Profile profile1a = mock(Profile.class);
33
34 @Before
35 public void before() {
36 when(domain1.getName()).thenReturn(DOMAIN1);
37 when(profile1.getDomain()).thenReturn(domain1);
38 when(profile1.getName()).thenReturn(PROFILE1);
39 // profile1 is not equal to profile1a but domain and name are same.
40 when(profile1a.getDomain()).thenReturn(domain1);
41 when(profile1a.getName()).thenReturn(PROFILE1);
42 factory = new DefaultProfilesRepository();
43 factory.addListener(new Listener<ChangeEvent>() {
44
45 @Override
46 public void notifyChange(ChangeEvent data) {
47 System.out.println("event:" + data);
48 events.add(data);
49 }
50 });
51 }
52
53 @Test
54 public void testAddEvent() throws IOException, InterruptedException {
55 factory.add(domain1);
56 assertEquals(1, events.size());
57 assertTrue(events.get(0) instanceof DomainChangeEvent);
58 }
59
60 @Test(expected = IllegalArgumentException.class)
61 public void getDomainNullTest() {
62 factory.getDomain(null);
63 }
64
65 @Test
66 public void getDomainTest() {
67 factory.add(domain1);
68 assertEquals(domain1, factory.getDomain(DOMAIN1));
69 assertEquals(null, factory.getDomain("unknowndomain"));
70 }
71
72 @Test
73 public void isSimpleNameTest() {
74 assertTrue(factory.isSimpleName(DOMAIN1));
75 assertTrue(factory.isSimpleName("12k12iuASIU"));
76 assertFalse(factory.isSimpleName(""));
77 assertFalse(factory.isSimpleName("_"));
78 assertFalse(factory.isSimpleName("\"12\""));
79
80 }
81
82 @Test(expected = IllegalArgumentException.class)
83 public void nullTest() {
84 factory.add((Domain) null);
85 }
86
87 @Test
88 public void getAddProfile() {
89 factory.add(domain1);
90 factory.add(profile1);
91 assertEquals(2, events.size());
92
93 assertEquals(profile1, factory.getProfile(DOMAIN1 + "/" + PROFILE1));
94 }
95
96 @Test
97 public void readdProfileTest() {
98 factory.add(domain1);
99 factory.add(profile1);
100 events.clear();
101
102 factory.add(profile1);
103 // same profile, nothing should happen
104 assertEquals(0, events.size());
105 }
106
107 @Test
108 public void readdProfileTest1() {
109 factory.add(domain1);
110 factory.add(profile1);
111 events.clear();
112
113 factory.add(profile1a);
114 // changed version of profile1 should triggern change event
115 assertEquals(1, events.size());
116 }
117
118 @Test(expected = IllegalArgumentException.class)
119 public void getAddProfileUnknownDomain() {
120 factory.add(profile1);
121 }
122
123 @Test
124 public void getAddNullProfile() {
125 factory.add((Profile) null); // is just ignored
126 }
127
128 @Test
129 public void removeDomainTest() {
130 factory.add(domain1);
131 factory.add(profile1);
132 events.clear();
133 factory.remove(profile1);
134 assertEquals(1, events.size());
135 assertTrue(events.get(0) instanceof ProfileChangeEvent);
136 }
137
138 @Test
139 public void removeDomainTest2() {
140 factory.add(domain1);
141 factory.add(profile1);
142 events.clear();
143 factory.remove(domain1);
144 assertEquals(2, events.size());
145 assertTrue(events.get(0) instanceof ProfileChangeEvent);
146 assertTrue(events.get(1) instanceof DomainChangeEvent);
147 }
148
149 @Test(expected = IllegalArgumentException.class)
150 public void getProfileNullTest() {
151 factory.getProfile(null);
152 }
153
154 @Test
155 public void getProfileWrongNameTest() {
156 assertEquals(null, factory.getProfile("unknowndomain/" + PROFILE1));
157 }
158
159 @Test(expected = IllegalArgumentException.class)
160 public void getProfileWrongNameTest2() {
161 assertEquals(null, factory.getProfile("unknowndomain"));
162 }
163
164 @Test
165 public void getProfilesTest() {
166 assertEquals(0, factory.getProfiles("unknowndomain").size());
167 }
168
169 @Test
170 public void getProfilesTest1() {
171 factory.add(domain1);
172 factory.add(profile1);
173 assertEquals(1, factory.getProfiles(DOMAIN1).size());
174 }
175
176}
Note: See TracBrowser for help on using the repository browser.