/*
* $Id$
*
* Java unit tests for Lasso library
*
* Copyright (C) 2004-2007 Entr'ouvert
* http://lasso.entrouvert.org
*
* Authors: See AUTHORS file in top-level directory.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// To run it:
// $ export LD_LIBRARY_PATH=../
// $ javac -classpath /usr/share/java/junit.jar:../lasso.jar:. BindingTests.java
// $ java -classpath /usr/share/java/junit.jar:../lasso.jar:. BindingTests
// or for gcj:
// $ export LD_LIBRARY_PATH=../
// $ gcj -C -classpath /usr/share/java/junit.jar:../lasso.jar:. BindingTests.java
// $ gij -classpath /usr/share/java/junit.jar:../lasso.jar:. BindingTests
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import com.entrouvert.lasso.*;
public class BindingTests extends TestCase {
public static void main(String args[]) {
junit.textui.TestRunner.run(suite());
}
public static Test suite() {
return new TestSuite(BindingTests.class);
}
public void test01() {
// Create and delete nodes.
LibAuthnRequest authnRequest = new LibAuthnRequest();
authnRequest = null;
}
public void test02() {
// Get & set simple attributes of nodes.
LibAuthnRequest authnRequest = new LibAuthnRequest();
// Test a string attribute.
assertNull(authnRequest.getConsent());
authnRequest.setConsent(lasso.LIB_CONSENT_OBTAINED);
assertEquals(authnRequest.getConsent(), lasso.LIB_CONSENT_OBTAINED);
authnRequest.setConsent(null);
assertNull(authnRequest.getConsent());
// Test a renamed string attribute.
assertNull(authnRequest.getRelayState());
authnRequest.setRelayState("Hello World!");
assertEquals(authnRequest.getRelayState(), "Hello World!");
authnRequest.setRelayState(null);
assertNull(authnRequest.getRelayState());
// Test an integer attribute.
assertEquals(authnRequest.getMajorVersion(), 0);
authnRequest.setMajorVersion(314);
assertEquals(authnRequest.getMajorVersion(), 314);
authnRequest = null;
}
public void test03() {
// Get & set attributes of nodes of type string list.
LibAuthnRequest authnRequest = new LibAuthnRequest();
assertNull(authnRequest.getRespondWith());
StringList respondWith = new StringList();
assertEquals(respondWith.length(), 0);
respondWith.append("first string");
assertEquals(respondWith.length(), 1);
assertEquals(respondWith.getItem(0), "first string");
assertEquals(respondWith.getItem(0), "first string");
respondWith.append("second string");
assertEquals(respondWith.length(), 2);
assertEquals(respondWith.getItem(0), "first string");
assertEquals(respondWith.getItem(1), "second string");
respondWith.append("third string");
assertEquals(respondWith.length(), 3);
assertEquals(respondWith.getItem(0), "first string");
assertEquals(respondWith.getItem(1), "second string");
assertEquals(respondWith.getItem(2), "third string");
authnRequest.setRespondWith(respondWith);
assertEquals(authnRequest.getRespondWith().getItem(0), "first string");
assertEquals(authnRequest.getRespondWith().getItem(1), "second string");
assertEquals(authnRequest.getRespondWith().getItem(2), "third string");
assertEquals(respondWith.getItem(0), "first string");
assertEquals(respondWith.getItem(1), "second string");
assertEquals(respondWith.getItem(2), "third string");
respondWith = null;
assertEquals(authnRequest.getRespondWith().getItem(0), "first string");
assertEquals(authnRequest.getRespondWith().getItem(1), "second string");
assertEquals(authnRequest.getRespondWith().getItem(2), "third string");
respondWith = authnRequest.getRespondWith();
assertEquals(respondWith.getItem(0), "first string");
assertEquals(respondWith.getItem(1), "second string");
assertEquals(respondWith.getItem(2), "third string");
respondWith = null;
assertEquals(authnRequest.getRespondWith().getItem(0), "first string");
assertEquals(authnRequest.getRespondWith().getItem(1), "second string");
assertEquals(authnRequest.getRespondWith().getItem(2), "third string");
authnRequest.setRespondWith(null);
assertNull(authnRequest.getRespondWith());
authnRequest = null;
}
public void test04() {
// Get & set attributes of nodes of type node list.
SamlpResponse response = new SamlpResponse();
assertNull(response.getAssertion());
NodeList assertions = new NodeList();
assertEquals(assertions.length(), 0);
SamlAssertion assertion1 = new SamlAssertion();
assertion1.setAssertionId("assertion 1");
assertions.append(assertion1);
assertEquals(assertions.length(), 1);
assertEquals(((SamlAssertion) assertions.getItem(0)).getAssertionId(), "assertion 1");
assertEquals(((SamlAssertion) assertions.getItem(0)).getAssertionId(), "assertion 1");
SamlAssertion assertion2 = new SamlAssertion();
assertion2.setAssertionId("assertion 2");
assertions.append(assertion2);
assertEquals(assertions.length(), 2);
assertEquals(((SamlAssertion) assertions.getItem(0)).getAssertionId(), "assertion 1");
assertEquals(((SamlAssertion) assertions.getItem(1)).getAssertionId(), "assertion 2");
SamlAssertion assertion3 = new SamlAssertion();
assertion3.setAssertionId("assertion 3");
assertions.append(assertion3);
assertEquals(assertions.length(), 3);
assertEquals(((SamlAssertion) assertions.getItem(0)).getAssertionId(), "assertion 1");
assertEquals(((SamlAssertion) assertions.getItem(1)).getAssertionId(), "assertion 2");
assertEquals(((SamlAssertion) assertions.getItem(2)).getAssertionId(), "assertion 3");
response.setAssertion(assertions);
assertEquals(((SamlAssertion) response.getAssertion().getItem(0)).getAssertionId(),
"assertion 1");
assertEquals(((SamlAssertion) response.getAssertion().getItem(1)).getAssertionId(),
"assertion 2");
assertEquals(((SamlAssertion) response.getAssertion().getItem(2)).getAssertionId(),
"assertion 3");
assertEquals(((SamlAssertion) assertions.getItem(0)).getAssertionId(), "assertion 1");
assertEquals(((SamlAssertion) assertions.getItem(1)).getAssertionId(), "assertion 2");
assertEquals(((SamlAssertion) assertions.getItem(2)).getAssertionId(), "assertion 3");
assertions = null;;
assertEquals(((SamlAssertion) response.getAssertion().getItem(0)).getAssertionId(),
"assertion 1");
assertEquals(((SamlAssertion) response.getAssertion().getItem(1)).getAssertionId(),
"assertion 2");
assertEquals(((SamlAssertion) response.getAssertion().getItem(2)).getAssertionId(),
"assertion 3");
assertions = response.getAssertion();
assertEquals(((SamlAssertion) assertions.getItem(0)).getAssertionId(), "assertion 1");
assertEquals(((SamlAssertion) assertions.getItem(1)).getAssertionId(), "assertion 2");
assertEquals(((SamlAssertion) assertions.getItem(2)).getAssertionId(), "assertion 3");
assertions = null;
assertEquals(((SamlAssertion) response.getAssertion().getItem(0)).getAssertionId(),
"assertion 1");
assertEquals(((SamlAssertion) response.getAssertion().getItem(1)).getAssertionId(),
"assertion 2");
assertEquals(((SamlAssertion) response.getAssertion().getItem(2)).getAssertionId(),
"assertion 3");
response.setAssertion(null);
assertNull(response.getAssertion());
response = null;
}
public void test05() {
// Get & set attributes of nodes of type XML list.
LibAuthnRequest authnRequest = new LibAuthnRequest();
assertNull(authnRequest.getExtension());
String actionString1 = "\n"
+ " do 1\n"
+ "";
String actionString2 = "\n"
+ " do 2\n"
+ "";
String actionString3 = "\n"
+ " do 3\n"
+ "";
StringList extension = new StringList();
assertEquals(extension.length(), 0);
extension.append(actionString1);
assertEquals(extension.length(), 1);
assertEquals(extension.getItem(0), actionString1);
assertEquals(extension.getItem(0), actionString1);
extension.append(actionString2);
assertEquals(extension.length(), 2);
assertEquals(extension.getItem(0), actionString1);
assertEquals(extension.getItem(1), actionString2);
extension.append(actionString3);
assertEquals(extension.length(), 3);
assertEquals(extension.getItem(0), actionString1);
assertEquals(extension.getItem(1), actionString2);
assertEquals(extension.getItem(2), actionString3);
authnRequest.setExtension(extension);
assertEquals(authnRequest.getExtension().getItem(0), actionString1);
assertEquals(authnRequest.getExtension().getItem(1), actionString2);
assertEquals(authnRequest.getExtension().getItem(2), actionString3);
assertEquals(extension.getItem(0), actionString1);
assertEquals(extension.getItem(1), actionString2);
assertEquals(extension.getItem(2), actionString3);
extension = null;
assertEquals(authnRequest.getExtension().getItem(0), actionString1);
assertEquals(authnRequest.getExtension().getItem(1), actionString2);
assertEquals(authnRequest.getExtension().getItem(2), actionString3);
extension = authnRequest.getExtension();
assertEquals(extension.getItem(0), actionString1);
assertEquals(extension.getItem(1), actionString2);
assertEquals(extension.getItem(2), actionString3);
extension = null;
assertEquals(authnRequest.getExtension().getItem(0), actionString1);
assertEquals(authnRequest.getExtension().getItem(1), actionString2);
assertEquals(authnRequest.getExtension().getItem(2), actionString3);
authnRequest.setExtension(null);
assertNull(authnRequest.getExtension());
authnRequest = null;
}
public void test06() {
// Get & set attributes of nodes of type node.
Login login = new Login(new Server(null, null, null, null));
assertNull(login.getRequest());
login.setRequest((SamlpRequestAbstract) new LibAuthnRequest());
((LibAuthnRequest) login.getRequest()).setConsent(lasso.LIB_CONSENT_OBTAINED);
assertEquals(((LibAuthnRequest) login.getRequest()).getConsent(),
lasso.LIB_CONSENT_OBTAINED);
login.setRequest(null);
assertNull(login.getRequest());
login = null;
}
}