1   package ch.ige.edossier.web.server.dao.test;
2   
3   import java.text.SimpleDateFormat;
4   import junit.framework.*;
5   import ch.ige.edossier.web.vo.*;
6   import ch.ige.edossier.web.server.dao.*;
7   import java.sql.*;
8   import java.text.*;
9   import ch.ige.edossier.util.*;
10  
11  
12  /**
13   * B32.03 - eDossier-Interceptions - Diplomarbeit an der Software-Schule Schweiz<br>
14   * Die Klasse DossierDAOTest testet die Methoden der Klasse DossierDAO
15   * <p>
16   * Copyright (c) 2004, Eidgenössisches Institut für Geistiges Eigentum
17   * @author    Anita Rueegsegger, Marc Bouquet
18   * @version   $Id: DossierDAOTest.java,v 1.1 2004/11/16 05:46:13 ruegsegger Exp $
19   */
20  public class DossierDAOTest extends TestCase
21  {
22    private DossierVO insertVO = new DossierVO();
23    private DossierDAO dao = new DossierDAO();
24    private DossierVO vo = new DossierVO();
25    private SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
26  
27    public DossierDAOTest( String s )
28    {
29      super( s );
30    }
31  
32    /**
33     * Testcase initialisieren
34     */
35    protected void setUp()
36    {
37      try
38      {
39        insertVO.setDossierId( 999 );
40        insertVO.setAccountId( selectMaxAccountId() );
41        insertVO.setTmtypeId( 1 );
42        insertVO.setLanguageCd( 1 );
43        insertVO.setGuardNr( "123/2004" );
44        insertVO.setDescription( "Marke" );
45        java.util.Date date = sdf.parse( "01.01.2004" );
46        insertVO.setBeginDat( new java.sql.Date( date.getTime() ) );
47        insertVO.setReference( "125-ar" );
48      }
49      catch( ParseException ex )
50      {
51        System.out.println(ex);
52      }
53    }
54  
55    /**
56     * Test insert-Methode
57     */
58    public void test1Insert()
59    {
60      // init
61      System.out.println( "Test INSERT DossierDAO" );
62      try
63      {
64        // insert
65        dao.insert( insertVO );
66  
67        // check
68        assertTrue( "DossierVO eingefügt ", 1 == 1 );
69      }
70      catch( Exception ex )
71      {
72        ex.printStackTrace();
73        fail( ex.toString() );
74      }
75    }
76  
77    /**
78     * Test select-Methode mit Parameter DossierId
79     */
80    public void test2Select()
81    {
82      // init
83      System.out.println( "Test SELECT DossierDAO " );
84  
85      try
86      {
87        // select
88        vo = dao.select(insertVO.getDossierId());
89  
90        // check
91        if( vo == null )
92        {
93          System.out.println( "SELECT: Datensatz existiert nicht" );
94        }
95        else
96        {
97          assertEquals( vo.getDossierId(), insertVO.getDossierId() );
98          assertEquals( vo.getAccountId(), insertVO.getAccountId() );
99          assertEquals( vo.getTmtypeId(), insertVO.getTmtypeId() );
100         assertEquals( vo.getLanguageCd(), insertVO.getLanguageCd() );
101         assertEquals( vo.getGuardNr(), insertVO.getGuardNr() );
102         assertEquals( vo.getDescription(), insertVO.getDescription() );
103         assertEquals( vo.getBeginDat(), insertVO.getBeginDat() );
104         assertEquals( vo.getReference(), insertVO.getReference() );
105       }
106     }
107     catch( Exception ex )
108     {
109       ex.printStackTrace();
110       fail( ex.toString() );
111     }
112   }
113 
114   /**
115    * Test delete-Methode
116    */
117   public void test3Delete()
118   {
119     int ret = 0;
120 
121     // init
122     System.out.println( "Test DELETE DossierDAO" );
123 
124     try
125     {
126       // delete
127       ret = dao.delete( insertVO.getDossierId() );
128 
129       // check
130       assertEquals( "Anzahl gelöschte Datensätze: ", 1, ret );
131     }
132     catch( SQLException ex )
133     {
134       ex.printStackTrace();
135       fail( ex.toString() );
136     }
137   }
138 
139   /**
140    * Gibt die zuletzt eingefügte account_id zurück
141    * @return int zuletzt eingefügte account_id zurück
142    */
143   private int selectMaxAccountId()
144   {
145     Connection con = null;
146     PreparedStatement ps = null;
147     ResultSet rs = null;
148     int maxValue = 0;
149 
150     try
151     {
152       con = DBHelper.getInstance().getEsolutionConnection();
153 
154       ps = con.prepareStatement( "SELECT MAX(account_id) max_value from account" );
155       rs = ps.executeQuery();
156 
157       if( rs.next() )
158       {
159         maxValue = rs.getInt( "max_value" );
160       }
161     }
162     catch( Exception ex )
163     {
164       ex.printStackTrace();
165       fail( ex.toString() );
166     }
167     return maxValue;
168   }
169 }
170