You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by vt...@apache.org on 2004/02/26 19:35:03 UTC

svn commit: rev 6881 - in incubator/directory/janus/trunk/sandbox: . src/java/org/apache/janus/authentication src/test/org/apache/janus/authentication/realm

Author: vtence
Date: Thu Feb 26 10:35:02 2004
New Revision: 6881

Added:
   incubator/directory/janus/trunk/sandbox/maven.xml
   incubator/directory/janus/trunk/sandbox/project.xml
   incubator/directory/janus/trunk/sandbox/src/test/org/apache/janus/authentication/realm/UsernamePasswordAuthTest.groovy
Modified:
   incubator/directory/janus/trunk/sandbox/src/java/org/apache/janus/authentication/CredentialSet.java
   incubator/directory/janus/trunk/sandbox/src/test/org/apache/janus/authentication/realm/UsernamePasswordAuthenticationTest.java
Log:
o Added sample test case in groovy
o Added maven goals to run groovy tests

Added: incubator/directory/janus/trunk/sandbox/maven.xml
==============================================================================
--- (empty file)
+++ incubator/directory/janus/trunk/sandbox/maven.xml	Thu Feb 26 10:35:02 2004
@@ -0,0 +1,100 @@
+<project xmlns:j="jelly:core" xmlns:u="jelly:util">
+
+    <postGoal name="test:compile">
+        <attainGoal name="setclasspath"/>
+        <attainGoal name="compile-groovy-tests"/>
+    </postGoal>
+
+    <goal name="setclasspath">
+        <path id="test.classpath">
+            <pathelement path="${maven.build.dest}"/>
+            <pathelement path="target/classes"/>
+            <pathelement path="target/test-classes"/>
+            <path refid="maven.dependency.classpath"/>
+        </path>
+        <taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc" classpathref="test.classpath"/>
+    </goal>
+
+
+    <goal name="compile-groovy-tests" prereqs="setclasspath"
+        description="Compiles the Groovy unit test cases">
+        <!-- lets copy and touch all the groovy files to ensure they all recompile -->
+        <mkdir dir="${basedir}/target/test-classes"/>
+        <copy todir="${basedir}/target/test-classes">
+            <fileset dir="${basedir}/src/test">
+                <include name="**/*.groovy"/>
+                <exclude name=".svn/*"/>
+            </fileset>
+        </copy>
+        <touch>
+            <fileset dir="${basedir}/target/test-classes" includes="**/*.groovy"/>
+        </touch>
+        <groovyc destdir="${basedir}/target/test-classes" srcdir="${basedir}/target/test-classes" listfiles="true">
+            <classpath refid="test.classpath"/>
+        </groovyc>
+    </goal>
+
+    <goal name="run-tests"
+        description="Test the application with any Java or Groovy unit tests"
+        prereqs="test:compile">
+
+        <j:if test="${unitTestSourcesPresent == 'true' and context.getVariable('maven.test.skip') != 'true'}">
+            <taskdef
+                name="junit"
+                classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"/>
+
+            <j:set var="testPlugin" value="${pom.getPluginContext('maven-test-plugin')}"/>
+            <j:set var="reportsDirectory">${testPlugin.findVariable('maven.test.reportsDirectory')}</j:set>
+
+            <mkdir dir="${reportsDirectory}"/>
+
+            <junit printSummary="yes"
+                failureProperty="maven.test.failure"
+                fork="${maven.junit.fork}"
+                dir="${maven.junit.dir}">
+                <sysproperty key="basedir" value="${basedir}"/>
+
+                <u:tokenize var="listOfProperties" delim=" ">${maven.junit.sysproperties}</u:tokenize>
+                <j:forEach var="someProperty" items="${listOfProperties}">
+                    <sysproperty key="${someProperty}" value="${context.getVariable(someProperty)}"/>
+                </j:forEach>
+                <u:tokenize var="listOfJvmArgs" delim=" ">${maven.junit.jvmargs}</u:tokenize>
+                <j:forEach var="somejvmarg" items="${listOfJvmArgs}">
+                    <jvmarg value="${somejvmarg}"/>
+                </j:forEach>
+                <formatter type="xml"/>
+                <formatter type="plain" usefile="${maven.junit.usefile}"/>
+                <classpath>
+                    <path refid="maven.dependency.classpath"/>
+                    <pathelement location="${basedir}/target/classes"/>
+                    <pathelement location="${basedir}/target/test-classes"/>
+                    <pathelement path="${plugin.getDependencyPath('junit')}"/>
+                </classpath>
+                <batchtest todir="${reportsDirectory}">
+                    <fileset dir="${basedir}/target/test-classes">
+                        <j:forEach var="pat" items="${pom.build.unitTest.includes}">
+                            <include name="${pat}"/>
+                        </j:forEach>
+                        <j:forEach var="pat" items="${pom.build.unitTest.excludes}">
+                            <exclude name="${pat}"/>
+                        </j:forEach>
+                        <!-- KEEP ALL ABSTRACT TESTS FROM BEING RUN! -->
+                        <exclude name="**/*AbstractTestCase.*"/>
+                    </fileset>
+                </batchtest>
+            </junit>
+
+            <j:if test="${maven.test.failure}">
+                <j:set var="ignore__" value="${maven.test.failure.ignore}X"/>
+                <j:if test="${ignore__ == 'X'}">
+                    <fail message="There were test failures."/>
+                </j:if>
+            </j:if>
+
+        </j:if>
+
+        <j:if test="${!unitTestSourcesPresent}">
+            <echo>No tests to run.</echo>
+        </j:if>
+    </goal>
+</project>

Added: incubator/directory/janus/trunk/sandbox/project.xml
==============================================================================
--- (empty file)
+++ incubator/directory/janus/trunk/sandbox/project.xml	Thu Feb 26 10:35:02 2004
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project>
+    <extend>${basedir}/../project.xml</extend>
+
+    <name>Janus Sandbox</name>
+    <id>janus-sandbox</id>
+    <package>org.apache.janus</package>
+
+    <shortDescription>Janus Sandbox Space</shortDescription>
+
+    <description>
+    A playground for all sorts of ideas
+    </description>
+
+    <dependencies>
+        <dependency>
+            <groupId>groovy</groupId>
+            <artifactId>groovy</artifactId>
+            <version>1.0-beta-3</version>
+        </dependency>
+
+        <dependency>
+          <id>asm</id>
+          <version>1.4.1</version>
+          <url>http://asm.objectweb.org/</url>
+        </dependency>
+
+        <dependency>
+          <id>asm+util</id>
+          <version>1.4.1</version>
+          <url>http://asm.objectweb.org/</url>
+        </dependency>
+        
+    </dependencies>
+
+</project>
\ No newline at end of file

Modified: incubator/directory/janus/trunk/sandbox/src/java/org/apache/janus/authentication/CredentialSet.java
==============================================================================
--- incubator/directory/janus/trunk/sandbox/src/java/org/apache/janus/authentication/CredentialSet.java	(original)
+++ incubator/directory/janus/trunk/sandbox/src/java/org/apache/janus/authentication/CredentialSet.java	Thu Feb 26 10:35:02 2004
@@ -41,7 +41,7 @@
         this( credentials.elements() );
     }
 
-    public CredentialSet( Set credentials )
+    public CredentialSet( Collection credentials )
     {
         m_credentials = new HashSet( credentials );
     }

Added: incubator/directory/janus/trunk/sandbox/src/test/org/apache/janus/authentication/realm/UsernamePasswordAuthTest.groovy
==============================================================================
--- (empty file)
+++ incubator/directory/janus/trunk/sandbox/src/test/org/apache/janus/authentication/realm/UsernamePasswordAuthTest.groovy	Thu Feb 26 10:35:02 2004
@@ -0,0 +1,88 @@
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.janus.authentication.realm;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.apache.janus.authentication.Credential;
+import org.apache.janus.authentication.CredentialSet;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import groovy.util.GroovyTestCase;
+
+/**
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ */
+class UsernamePasswordAuthTest extends GroovyTestCase
+{
+    UsernamePasswordAuthentication m_auth
+
+    void setUp()
+    {
+        m_auth = new UsernamePasswordAuthentication();
+    }
+
+    void testCredentialsWithNoUsernameAreNotSupported()
+    {
+        assert !m_auth.supports(new CredentialSet([new Credential("password", "bar")]))
+    }
+
+    void testCredentialsWithNoPasswordAreNotSupported()
+    {
+        assert !m_auth.supports(new CredentialSet([new Credential("username", "foo")]))
+    }
+
+    CredentialSet extraCreds()
+    {
+      return new CredentialSet([
+            new Credential("username", "john"),
+            new Credential("password", "doe"),
+            new Credential("password", "baz"),
+            new Credential("foo", "bar")])
+    }
+
+    void testSetsWithAllValidCredentialsPlusExtraOnesAreNotSupported()
+    {
+        assert !m_auth.supports(extraCreds())
+    }
+
+    CredentialSet validCreds()
+    {
+        return new CredentialSet([
+            new Credential("username", "john"),
+            new Credential("password", "doe")])
+    }
+
+    void testAUsernameAndAPaswordIsAValidCredentialSet()
+    {
+        assert m_auth.supports(validCreds())
+    }
+
+    public void testCredentialsMatchIfEqual()
+    {
+        assert m_auth.matcher(validCreds()).matches(validCreds())
+        assert !m_auth.matcher(extraCreds()).matches(validCreds())
+    }
+
+    public void testPrincipalsCreatedAreUsernamePrincipals()
+    {
+        assert new UsernamePrincipal("john") == m_auth.getPrincipal(validCreds())
+    }
+}

Modified: incubator/directory/janus/trunk/sandbox/src/test/org/apache/janus/authentication/realm/UsernamePasswordAuthenticationTest.java
==============================================================================
--- incubator/directory/janus/trunk/sandbox/src/test/org/apache/janus/authentication/realm/UsernamePasswordAuthenticationTest.java	(original)
+++ incubator/directory/janus/trunk/sandbox/src/test/org/apache/janus/authentication/realm/UsernamePasswordAuthenticationTest.java	Thu Feb 26 10:35:02 2004
@@ -65,24 +65,24 @@
         assertFalse( "Reports it supports credentials with no password", m_auth.supports( new CredentialSet( Collections.singleton( new Credential( "username", "foo" ) ) ) ) );
     }
 
-    public void testExtraCredentialsAreNotSupported()
+    public void testSetsWithAllValidCredentialsPlusExtraOnesAreNotSupported()
     {
         assertFalse( "Reports it supports extra credentials", m_auth.supports( extraCredentials() ) );
     }
 
-    public void testUsernameAndPaswordAreValidCredentials()
+    public void testAUsernameAndAPaswordIsAValidCredentialSet()
     {
-        assertFalse( "Reports it does not support credentials with a username and a password", m_auth.supports( extraCredentials() ) );
+        assertTrue( "Reports it does not support credentials with a username and a password", m_auth.supports( validCredentials() ) );
     }
 
-    public void testCredentialsMatchesIfEqual()
+    public void testCredentialsMatchIfEqual()
     {
         assertTrue( "Equal sets of credentials do not match", m_auth.matcher( validCredentials() ).matches( validCredentials() ) );
         assertFalse( "Different sets of credentials were matched", m_auth.matcher( extraCredentials() ).matches( validCredentials() ) );
     }
 
-    public void testCreatesUsernamePrincipals()
+    public void testPrincipalsCreatedAreUsernamePrincipals()
     {
-        Assert.assertEquals( "Created wrong principal", new UsernamePrincipal( "john" ), m_auth.getPrincipal( validCredentials() ) );
+        assertEquals( "Created wrong principal", new UsernamePrincipal( "john" ), m_auth.getPrincipal( validCredentials() ) );
     }
 }