1   ////////////////////////////////////////////////////////////////////////////////
2   //CabaWeb
3   //Copyright (C) 2004  Thomas Vogt <Thomas.Vogt@TVC-Software.com>
4   //
5   //This library is free software; you can redistribute it and/or
6   //modify it under the terms of the GNU Lesser General Public
7   //License as published by the Free Software Foundation; either
8   //version 2.1 of the License, or (at your option) any later version.
9   //
10  //This library is distributed in the hope that it will be useful,
11  //but WITHOUT ANY WARRANTY; without even the implied warranty of
12  //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  //Lesser General Public License for more details.
14  //
15  //You should have received a copy of the GNU Lesser General Public
16  //License along with this library; if not, write to the Free Software
17  //Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  ////////////////////////////////////////////////////////////////////////////////
19  
20  package org.fhw.cabaweb.junittests;
21  
22  import java.sql.Timestamp;
23  import java.util.Collection;
24  
25  import org.apache.ojb.broker.PersistenceBroker;
26  import org.apache.ojb.broker.PersistenceBrokerFactory;
27  
28  import org.fhw.cabaweb.ojb.UseCaseBenutzerrollen;
29  import org.fhw.cabaweb.ojb.UseCaseGruppenmitglieder;
30  import org.fhw.cabaweb.ojb.UseCaseProjekte;
31  import org.fhw.cabaweb.ojb.UseCaseProjektgruppen;
32  import org.fhw.cabaweb.ojb.dataobjects.Benutzerrollen;
33  import org.fhw.cabaweb.ojb.dataobjects.Gruppenmitglieder;
34  import org.fhw.cabaweb.ojb.dataobjects.Projekte;
35  import org.fhw.cabaweb.ojb.dataobjects.Projektgruppen;
36  import org.fhw.cabaweb.ojb.interfaces.UseCase;
37  import org.fhw.cabaweb.tools.Password;
38  
39  import junit.framework.TestCase;
40  
41  /***
42   * Klasse f&uuml;r den Test der Funktionen des UseCases Gruppenmitglieder
43   *
44   * @author  <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
45   * @version 13.04.2004
46   */
47  public class UseCaseGruppenmitgliederTest extends TestCase
48  {
49      private PersistenceBroker broker;
50      private UseCase testCase;
51      private Gruppenmitglieder test;
52  
53      public static void main(String[] args)
54      {
55          //      junit.swingui.TestRunner.run(UseCaseGruppenmitgliederTest.class);
56          junit.textui.TestRunner.run(UseCaseGruppenmitgliederTest.class);
57      }
58  
59  	/*
60  	 * @see TestCase#setUp()
61  	 */
62  	protected void setUp() throws Exception
63  	{
64          super.setUp();
65  
66          broker = null;
67          try
68          {
69              broker = PersistenceBrokerFactory.defaultPersistenceBroker();
70  
71              testCase = (UseCase) new UseCaseGruppenmitglieder(broker);
72          
73              test = new Gruppenmitglieder();
74  
75              Projekte prj = new Projekte(new Integer(1), null, null, null);
76              UseCase prjCase = (UseCase) new UseCaseProjekte(broker);
77  
78              prj = (Projekte) prjCase.sucheObjekt(prj);
79  
80              Projektgruppen prjgruppen = new Projektgruppen(new Integer(1), prj, "Test", null, new Boolean(true));
81              UseCase prjgruppenCase = (UseCase) new UseCaseProjektgruppen(broker);
82              prjgruppenCase.erzeugen(prjgruppen);
83          }
84          catch (Throwable t)
85          {
86              t.printStackTrace();
87          }
88  	}
89  
90  	/*
91  	 * @see TestCase#tearDown()
92  	 */
93  	protected void tearDown() throws Exception
94  	{
95          super.tearDown();
96          
97          try
98          {
99              Projekte prj = new Projekte(new Integer(1), null, null, null);
100             UseCase prjCase = (UseCase) new UseCaseProjekte(broker);
101 
102             prj = (Projekte) prjCase.sucheObjekt(prj);
103 
104             Projektgruppen prjgruppen = new Projektgruppen(new Integer(1), prj, null, null, null);
105             UseCase prjgruppenCase = (UseCase) new UseCaseProjektgruppen(broker);
106             prjgruppenCase.loeschen(prjgruppen);
107 
108             broker.close();
109         }
110         catch (Throwable t)
111         {
112             t.printStackTrace();
113         }
114 	}
115 
116     public void testErzeugen()
117     {
118         Projekte prj = new Projekte(new Integer(1), null, null, null);
119         UseCase prjCase = (UseCase) new UseCaseProjekte(broker);
120         
121         prj = (Projekte) prjCase.sucheObjekt(prj);
122 
123         Projektgruppen prjgruppen = new Projektgruppen(new Integer(1), prj, null, null, null);
124         UseCase prjgruppenCase = (UseCase) new UseCaseProjektgruppen(broker);
125         Benutzerrollen bnr = new Benutzerrollen(new Integer(1), null, null, null, null);
126         UseCase bnrCase = (UseCase) new UseCaseBenutzerrollen(broker);
127 
128         prjgruppen = (Projektgruppen) prjgruppenCase.sucheObjekt(prjgruppen);
129         bnr = (Benutzerrollen) bnrCase.sucheObjekt(bnr);
130         
131         test = new Gruppenmitglieder(new Integer(1), bnr, prjgruppen, new Boolean(false), "LoginName Test", "Testnachname", "Testvorame", 
132                                      "Testadresse 1", "Testadresse 2", new Integer(12345), "Testort", "Testkennzeichen", "TestEMailAdresse", 
133                                      Password.generateMD5("Testpasswort"), new Boolean(true), new Timestamp(System.currentTimeMillis()));
134 
135         testCase.erzeugen(test);
136 
137         Gruppenmitglieder test2 = new Gruppenmitglieder(new Integer(1), bnr, prjgruppen, null, null, null, null, null, null, null, null, null, 
138         null, null, null, null);
139  
140         assertEquals(test.toString(), ((Gruppenmitglieder) testCase.sucheObjekt(test2)).toString());
141 
142         test = new Gruppenmitglieder();       
143     }
144 
145     public void testEditieren()
146     {
147         Timestamp time = new Timestamp(System.currentTimeMillis());
148         
149         Projekte prj = new Projekte(new Integer(1), null, null, null);
150         UseCase prjCase = (UseCase) new UseCaseProjekte(broker);
151         
152         prj = (Projekte) prjCase.sucheObjekt(prj);
153 
154         Projektgruppen prjgruppen = new Projektgruppen(new Integer(1), prj, null, null, null);
155         UseCase prjgruppenCase = (UseCase) new UseCaseProjektgruppen(broker);
156         Benutzerrollen bnr = new Benutzerrollen(new Integer(1), null, null, null, null);
157         UseCase bnrCase = (UseCase) new UseCaseBenutzerrollen(broker);
158 
159         prjgruppen = (Projektgruppen) prjgruppenCase.sucheObjekt(prjgruppen);
160         bnr = (Benutzerrollen) bnrCase.sucheObjekt(bnr);
161 
162         test = new Gruppenmitglieder(new Integer(1), bnr, prjgruppen, new Boolean(false), "LoginName Test", "Testnachname", "Testvorame", 
163                                      "Testadresse 1", "Testadresse 2", new Integer(12345), "Testort", "Testkennzeichen", "TestEMailAdresse", 
164                                      Password.generateMD5("Testpasswort"), new Boolean(true), new Timestamp(System.currentTimeMillis()));
165         testCase.erzeugen(test);
166         
167         test = new Gruppenmitglieder(new Integer(1), bnr, prjgruppen, new Boolean(true), "LoginName Test ABC", "Testnachname", "Testvorame", 
168                                      "Testadresse 1", "Testadresse 2", new Integer(12345), "Testort", "Testkennzeichen", "TestEMailAdresse", 
169                                      Password.generateMD5("Testpasswort"), new Boolean(true), time);
170 
171         testCase.editieren(test);
172 
173         Gruppenmitglieder test2 = new Gruppenmitglieder(new Integer(1), bnr, prjgruppen, null, null, null, null, null, null, null, null, null, 
174                                                         null, null, null, null);
175  
176         assertEquals(test.toString(), ((Gruppenmitglieder) testCase.sucheObjekt(test2)).toString());
177 
178         test = new Gruppenmitglieder();       
179     }
180 
181     public void testSucheObjekt()
182     {
183         Timestamp time = new Timestamp(System.currentTimeMillis());
184 
185         Projekte prj = new Projekte(new Integer(1), null, null, null);
186         UseCase prjCase = (UseCase) new UseCaseProjekte(broker);
187         
188         prj = (Projekte) prjCase.sucheObjekt(prj);
189 
190         Projektgruppen prjgruppen = new Projektgruppen(new Integer(1), prj, null, null, null);
191         UseCase prjgruppenCase = (UseCase) new UseCaseProjektgruppen(broker);
192         Benutzerrollen bnr = new Benutzerrollen(new Integer(1), null, null, null, null);
193         UseCase bnrCase = (UseCase) new UseCaseBenutzerrollen(broker);
194 
195         prjgruppen = (Projektgruppen) prjgruppenCase.sucheObjekt(prjgruppen);
196         bnr = (Benutzerrollen) bnrCase.sucheObjekt(bnr);
197 
198         test = new Gruppenmitglieder(new Integer(1), bnr, prjgruppen, new Boolean(true), "LoginName Test ABC", "Testnachname", "Testvorame", 
199                                      "Testadresse 1", "Testadresse 2", new Integer(12345), "Testort", "Testkennzeichen", "TestEMailAdresse", 
200                                      Password.generateMD5("Testpasswort"), new Boolean(true), time);
201         testCase.erzeugen(test);      
202         
203         test = new Gruppenmitglieder(new Integer(1), bnr, prjgruppen, null, null, null, null, null, null, null, null, null, 
204                                      null, null, null, null);
205 
206         Gruppenmitglieder objekt = (Gruppenmitglieder) testCase.sucheObjekt(test);
207         
208         Gruppenmitglieder test2 = new Gruppenmitglieder(new Integer(1), bnr, prjgruppen, new Boolean(true), "LoginName Test ABC", 
209                                                         "Testnachname", "Testvorame",  "Testadresse 1", "Testadresse 2", 
210                                                         new Integer(12345), "Testort", "Testkennzeichen", "TestEMailAdresse", 
211                                                         Password.generateMD5("Testpasswort"), new Boolean(true), time);
212  
213         assertEquals(test2.toString(), objekt.toString());
214 
215         test = new Gruppenmitglieder();        
216     }
217 
218     public void testSucheObjekte()
219     {
220         Timestamp time = new Timestamp(System.currentTimeMillis());
221 
222         Projekte prj = new Projekte(new Integer(1), null, null, null);
223         UseCase prjCase = (UseCase) new UseCaseProjekte(broker);
224         
225         prj = (Projekte) prjCase.sucheObjekt(prj);
226 
227         Projektgruppen prjgruppen = new Projektgruppen(new Integer(1), prj, null, null, null);
228         UseCase prjgruppenCase = (UseCase) new UseCaseProjektgruppen(broker);
229         Benutzerrollen bnr = new Benutzerrollen(new Integer(1), null, null, null, null);
230         UseCase bnrCase = (UseCase) new UseCaseBenutzerrollen(broker);
231 
232         prjgruppen = (Projektgruppen) prjgruppenCase.sucheObjekt(prjgruppen);
233         bnr = (Benutzerrollen) bnrCase.sucheObjekt(bnr);
234 
235         test = new Gruppenmitglieder(new Integer(1), bnr, prjgruppen, new Boolean(true), "LoginName Test ABC", "Testnachname", "Testvorame", 
236                                      "Testadresse 1", "Testadresse 2", new Integer(12345), "Testort", "Testkennzeichen", "TestEMailAdresse", 
237                                      Password.generateMD5("Testpasswort"), new Boolean(true), time);
238         testCase.erzeugen(test);      
239 
240         test = new Gruppenmitglieder(null, null, null, null, "LoginName Test ABC", null, null, null, null, null, null, null, 
241                                      null, null, null, null);
242 
243         Collection objekte = testCase.sucheObjekte(test);
244         
245         java.util.Iterator iter = objekte.iterator();
246         while (iter.hasNext())
247         {
248 //          System.out.println(iter.next());
249             iter.next();
250         }         
251 
252         assertEquals(true, objekte.size() == 1);
253     }
254 
255     public void testSucheAlle()
256     {
257         Timestamp time = new Timestamp(System.currentTimeMillis());
258 
259         Projekte prj = new Projekte(new Integer(1), null, null, null);
260         UseCase prjCase = (UseCase) new UseCaseProjekte(broker);
261         
262         prj = (Projekte) prjCase.sucheObjekt(prj);
263 
264         Projektgruppen prjgruppen = new Projektgruppen(new Integer(1), prj, null, null, null);
265         UseCase prjgruppenCase = (UseCase) new UseCaseProjektgruppen(broker);
266         Benutzerrollen bnr = new Benutzerrollen(new Integer(1), null, null, null, null);
267         UseCase bnrCase = (UseCase) new UseCaseBenutzerrollen(broker);
268 
269         prjgruppen = (Projektgruppen) prjgruppenCase.sucheObjekt(prjgruppen);
270         bnr = (Benutzerrollen) bnrCase.sucheObjekt(bnr);
271 
272         test = new Gruppenmitglieder(new Integer(1), bnr, prjgruppen, new Boolean(true), "LoginName Test ABC", "Testnachname", "Testvorame", 
273                                      "Testadresse 1", "Testadresse 2", new Integer(12345), "Testort", "Testkennzeichen", "TestEMailAdresse", 
274                                      Password.generateMD5("Testpasswort"), new Boolean(true), time);
275         testCase.erzeugen(test);      
276 
277         Collection alleObjekte = testCase.sucheAlle(Gruppenmitglieder.class);
278         
279         java.util.Iterator iter = alleObjekte.iterator();
280         while (iter.hasNext())
281         {
282 //          System.out.println(iter.next());
283             iter.next();
284         }         
285 
286         assertEquals(true, alleObjekte.size() == 1);
287     }
288 
289     public void testLoeschen()
290     {
291         Projekte prj = new Projekte(new Integer(1), null, null, null);
292         UseCase prjCase = (UseCase) new UseCaseProjekte(broker);
293         
294         prj = (Projekte) prjCase.sucheObjekt(prj);
295 
296         Projektgruppen prjgruppen = new Projektgruppen(new Integer(1), prj, null, null, null);
297         UseCase prjgruppenCase = (UseCase) new UseCaseProjektgruppen(broker);
298         Benutzerrollen bnr = new Benutzerrollen(new Integer(1), null, null, null, null);
299         UseCase bnrCase = (UseCase) new UseCaseBenutzerrollen(broker);
300 
301         prjgruppen = (Projektgruppen) prjgruppenCase.sucheObjekt(prjgruppen);
302         bnr = (Benutzerrollen) bnrCase.sucheObjekt(bnr);
303 
304         test = new Gruppenmitglieder(new Integer(1), bnr, prjgruppen, null, null, null, null, null, null, null, null, null, 
305                                      null, null, null, null);
306 
307         testCase.loeschen(test);
308 
309         Gruppenmitglieder test2 = new Gruppenmitglieder(new Integer(1), bnr, prjgruppen, null, null, null, null, null, null, null, null, null, 
310                                                         null, null, null, null);
311  
312         assertNull(testCase.sucheObjekt(test2));
313 
314         test = new Gruppenmitglieder();       
315     }
316 }