View Javadoc

1   /**
2    * 
3    */
4   package de.tivsource.lib.jcyradm.test;
5   
6   import java.io.IOException;
7   import java.io.InputStream;
8   import java.util.Properties;
9   
10  import junit.framework.TestCase;
11  import de.tivsource.lib.jcyradm.JCyrAdm;
12  import de.tivsource.lib.jcyradm.exception.AuthenticationFailure;
13  import de.tivsource.lib.jcyradm.exception.NoLogMessagesFile;
14  import de.tivsource.lib.jcyradm.exception.NoPropertiesFile;
15  import de.tivsource.lib.jcyradm.exception.NoServerAnswerFile;
16  import de.tivsource.lib.jcyradm.exception.NoServerResponse;
17  import de.tivsource.lib.jcyradm.exception.NoServerStream;
18  import de.tivsource.lib.jcyradm.exception.UnexpectedServerAnswer;
19  
20  /**
21   * In diesem Test werden die Methode login() und logout() der Klasse JCyrAdm
22   * getestet.
23   *
24   * @author Marc Michele
25   *
26   */
27  public class JCyrAdmLoginTest extends TestCase {
28  
29      private JCyrAdm jcyradm;
30      private Properties props;
31  
32      /**
33       * Konstruktor des Tests.
34       *
35       * @param testName - Name des Tests
36       */
37      public JCyrAdmLoginTest(String testName) {
38          super(testName);
39      }// Ende JCyrAdmLoginTest()
40  
41      protected void setUp() throws NoPropertiesFile, IOException, NoServerAnswerFile, NoLogMessagesFile {
42  
43  
44          props = new Properties();
45          InputStream inputStream = getClass().getClassLoader()
46                  .getResourceAsStream("JCyrAdmTest.properties");
47          try {
48              props.load(inputStream);
49              inputStream.close();
50          } catch( Exception ex ) {
51            fail("Fehler: Properties-Datei fehlt.");
52          }
53  
54          System.setProperty("javax.net.ssl.trustStore", props.getProperty("trustStore"));
55          System.setProperty("javax.net.ssl.trustStorePassword", props.getProperty("trustStorePassword"));
56  
57          jcyradm = new JCyrAdm();
58          jcyradm.setAdministrator(props.getProperty("administrator"));
59          jcyradm.setPassword(props.getProperty("password"));
60          jcyradm.setHost(props.getProperty("testServer"));
61          jcyradm.connect(true);
62          jcyradm.capability();
63      }// Ende setUp()
64  
65      protected void tearDown() throws IOException {
66          jcyradm.disconnect();
67      }// Ende tearDown()
68  
69      /**
70       * Dieser Test überprüft ob die Anmeldung mit gültigen Zugangsdaten möglich
71       * ist dabei wird eine SSL-Verbindung benutzt.
72       *
73       */
74      public void testLoginSSL() {
75          try {
76              jcyradm.login();
77          } catch (NoServerResponse e) {
78              fail( "Fehler: keine Antwort vom Server erhalten." );
79          } catch (UnexpectedServerAnswer e) {
80              fail( "Fehler: unerwartete Antwort vom Server erhalten." );
81          } catch (AuthenticationFailure e) {
82              fail( "Fehler: falscher Benutzername oder falsches Passwort." );
83          }
84  
85      }// Ende testLoginSSL()
86  
87      /**
88       * Dieser Test
89       *
90       */
91      public void testLogoutSSL() {
92          try {
93              jcyradm.login();
94          } catch (NoServerResponse e) {
95              fail( "Fehler: keine Antwort vom Server erhalten." );
96          } catch (UnexpectedServerAnswer e) {
97              fail( "Fehler: unerwartete Antwort vom Server erhalten." );
98          } catch (AuthenticationFailure e) {
99          	fail( "Fehler: falscher Benutzername oder falsches Passwort." );
100         }
101 
102         try {
103             jcyradm.logout();
104         } catch (NoServerResponse e) {
105             fail( "Fehler: keine Antwort vom Server erhalten." );
106         } catch (NoServerStream e) {
107             // TODO Auto-generated catch block
108             e.printStackTrace();
109         } catch (UnexpectedServerAnswer e) {
110             fail( "Fehler: unerwartete Antwort vom Server erhalten." );
111         }
112     }// Ende testLogoutSSL()
113 
114     public void testLoginSSLWrongPassword() {
115         try {
116             jcyradm.setPassword("FALSCHES");
117             jcyradm.login();
118             fail( "Fehler: es sollte eine Ausnahme geworfen werden." );
119         } catch (NoServerResponse e) {
120             fail( "Fehler: keine Antwort vom Server erhalten." );
121         } catch (UnexpectedServerAnswer e) {
122             fail( "Fehler: unerwartete Antwort vom Server erhalten." );
123         } catch (AuthenticationFailure e) {
124             assertTrue("Erwartetes Ergebnis: das angegebene Passwort ist falsch.", true);
125         }
126     }// Ende testLoginSSLWrongPassword()
127 
128     public void testLoginSSLWrongUser() {
129         try {
130             jcyradm.setPassword(props.getProperty("password"));
131             jcyradm.setAdministrator("root");
132             jcyradm.login();
133             fail( "Fehler: es sollte eine Ausnahme geworfen werden." );
134         } catch (NoServerResponse e) {
135             fail( "Fehler: keine Antwort vom Server erhalten." );
136         } catch (UnexpectedServerAnswer e) {
137             fail( "Fehler: unerwartete Antwort vom Server erhalten." );
138         } catch (AuthenticationFailure e) {
139             assertTrue("Erwartetes Ergebnis: der angegebene Benutzer ist falsch.", true);
140         }
141     }// Ende testLoginSSLWrongUser()
142 
143 
144 }// Ende class