Author: clement
Date: Tue Sep 25 08:18:49 2007
New Revision: 579295

URL: http://svn.apache.org/viewvc?rev=579295&view=rev
Log:
Initial import of UTF

Added:
    felix/sandbox/clement/Tests/UTF/pom.xml
    felix/sandbox/clement/Tests/UTF/src/
    felix/sandbox/clement/Tests/UTF/src/main/
    felix/sandbox/clement/Tests/UTF/src/main/java/
    felix/sandbox/clement/Tests/UTF/src/main/java/fr/
    felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/
    felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/
    felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/
    felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/
    
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/
    
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/AssertionFailed.java
    
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestCase.java
    
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestResult.java
    
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestSuite.java
    
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/runner/
    
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/runner/ConsoleRunner.java
    
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/runner/InlineConsoleRunner.java
    felix/sandbox/clement/Tests/UTF/src/main/resources/

Added: felix/sandbox/clement/Tests/UTF/pom.xml
URL: 
http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/UTF/pom.xml?rev=579295&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/UTF/pom.xml (added)
+++ felix/sandbox/clement/Tests/UTF/pom.xml Tue Sep 25 08:18:49 2007
@@ -0,0 +1,33 @@
+<project>
+  <groupId>ipojo.utf</groupId>
+  <version>0.1.1</version>
+  <modelVersion>4.0.0</modelVersion>
+  <name>Unitary Test Framework (UTF)</name>
+  <description>Unitary Test Framework</description>
+  <artifactId>utf</artifactId>
+  <packaging>bundle</packaging>
+  
+  <dependencies>
+       <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <version>1.1.0-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+  
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            
<Export-Package>fr.imag.adele.escoffier.utf.framework;specification-version="0.1.1",fr.imag.adele.escoffier.utf.runner;specification-version="0.1.1"</Export-Package>
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Added: 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/AssertionFailed.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/AssertionFailed.java?rev=579295&view=auto
==============================================================================
--- 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/AssertionFailed.java
 (added)
+++ 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/AssertionFailed.java
 Tue Sep 25 08:18:49 2007
@@ -0,0 +1,10 @@
+package fr.imag.adele.escoffier.utf.framework;
+
+public class AssertionFailed extends RuntimeException {
+       
+       private static final long serialVersionUID = 3465374173996493787L;
+
+       public AssertionFailed(String message) { super(message); }
+       
+       public AssertionFailed() { super(); }
+}

Added: 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestCase.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestCase.java?rev=579295&view=auto
==============================================================================
--- 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestCase.java
 (added)
+++ 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestCase.java
 Tue Sep 25 08:18:49 2007
@@ -0,0 +1,132 @@
+package fr.imag.adele.escoffier.utf.framework;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.osgi.framework.BundleContext;
+
+public class TestCase {
+       
+       protected BundleContext context;
+       
+       public TestCase(BundleContext bc) {
+               context = bc;
+       }
+       
+       public void setUp() { }
+       
+       public void tearDown() { }
+       
+       public void assertTrue(String name, boolean bool) throws 
AssertionFailed {
+               if(bool) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+       
+       public void assertFalse(String name, boolean bool) throws 
AssertionFailed {
+               if(!bool) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+       
+       public void assertNotNull(String name, Object o) throws AssertionFailed 
{
+               if(o != null) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+               
+       public void assertNull(String name, Object o) throws AssertionFailed {
+               if(o == null) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+       
+       public void assertEquals(String name, Object o1, Object o2) throws 
AssertionFailed {
+               if(o1.equals(o2)) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+       
+       public void assertEquals(String name, int o1, int o2) throws 
AssertionFailed {
+               if(o1 == o2) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+       
+       public void assertEquals(String name, long o1, long o2) throws 
AssertionFailed {
+               if(o1 == o2) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+       
+       public void assertEquals(String name, double o1, double o2) throws 
AssertionFailed {
+               if(o1 == o2) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+       
+       public void assertNotEquals(String name, int o1, int o2) throws 
AssertionFailed {
+               if(o1 != o2) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+       
+       public void assertNotEquals(String name, long o1, long o2) throws 
AssertionFailed {
+               if(o1 != o2) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+       
+       public void assertNotEquals(String name, Object o1, Object o2) throws 
AssertionFailed {
+        if(!o1.equals(o2)) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+       
+       public void assertNotSame(String name, Object o1, Object o2) throws 
AssertionFailed {
+               if(o1 != o2) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+       
+       public void assertSame(String name, Object o1, Object o2) throws 
AssertionFailed {
+               if(o1 == o2) { return; }
+               else { throw new AssertionFailed(name); }
+       }
+       
+       public void fail() throws AssertionFailed {
+               throw new AssertionFailed();
+       }
+       
+       public void fail(String name) throws AssertionFailed {
+               throw new AssertionFailed(name);
+       }
+       
+       public List execute() {
+               List result = new ArrayList();
+               // Get the list of test of the test case
+               String clazz = this.getClass().getName();
+               Method[] all_methods = this.getClass().getMethods();
+               for(int i = 0; i < all_methods.length; i++) {
+                       if(all_methods[i].getName().startsWith("test")) {
+                               // We need to execute the test
+                               long begin = 0;
+                               this.setUp();
+                               try {
+                                       begin = System.currentTimeMillis();
+                                       all_methods[i].invoke(this, new 
Object[0]);
+                                       long duration = 
System.currentTimeMillis() - begin;
+                                       result.add(new 
TestResult(clazz+":"+all_methods[i].getName(),"success", duration, 
TestResult.SUCCESS, null));
+                               } catch (IllegalArgumentException e) {
+                                       long duration = 
System.currentTimeMillis() - begin;
+                                       result.add(new 
TestResult(clazz+":"+all_methods[i].getName(),"test method cannot be called -> 
" + e.getMessage(), duration, TestResult.FAILED, null));
+                               } catch (IllegalAccessException e) {
+                                       long duration = 
System.currentTimeMillis() - begin;
+                                       result.add(new 
TestResult(clazz+":"+all_methods[i].getName(),"test method cannot be called -> 
" + e.getMessage(), duration, TestResult.FAILED, null));
+                               } catch (InvocationTargetException e) {
+                                       long duration = 
System.currentTimeMillis() - begin;
+                                       if((e.getCause() instanceof 
AssertionFailed)) {
+                                               result.add(new 
TestResult(clazz+":"+all_methods[i].getName(),"Assertion Failed -> " + 
e.getCause().getMessage(), duration, TestResult.FAILED, null));
+                                       } else {
+                                               result.add(new 
TestResult(clazz+":"+all_methods[i].getName(),"The test method thrown an 
exception -> " + e.getCause().getMessage(), duration, TestResult.FAILED, 
e.getCause()));
+                                       }
+                               }
+                               this.tearDown();
+                       }
+               }
+               return result;
+       }
+                       
+                       
+
+}

Added: 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestResult.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestResult.java?rev=579295&view=auto
==============================================================================
--- 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestResult.java
 (added)
+++ 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestResult.java
 Tue Sep 25 08:18:49 2007
@@ -0,0 +1,37 @@
+package fr.imag.adele.escoffier.utf.framework;
+
+public class TestResult {
+       
+       public static final String FAILED = "failed";
+       public static final String SUCCESS = "success";
+       
+       private String name;
+       private String message;
+       private String status;
+       private long duration;
+       private Throwable exception;
+       
+       public TestResult(String name, String message, long duration, String 
status, Throwable e) {
+               this.name = name;
+               this.message = message;
+               this.duration = duration;
+               this.status = status;
+               this.exception = e;
+       }
+       
+       public Throwable getException() {
+           return exception;
+       }
+       
+       public String toString() {
+               if(status.equals(SUCCESS)) {
+                       return name + " -> " + status + " [" + duration + " 
ms]";
+               }
+               else {
+                       return name + " -> " + status + " : " + message +  " [" 
+ duration + " ms]";
+               }
+       }
+       
+       public boolean isSuccess() { return status.equals(SUCCESS); }
+
+}

Added: 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestSuite.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestSuite.java?rev=579295&view=auto
==============================================================================
--- 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestSuite.java
 (added)
+++ 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/framework/TestSuite.java
 Tue Sep 25 08:18:49 2007
@@ -0,0 +1,65 @@
+package fr.imag.adele.escoffier.utf.framework;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.osgi.framework.BundleContext;
+
+public abstract class TestSuite extends TestCase {
+       
+       protected BundleContext context;
+       
+       public TestSuite(BundleContext bc) {
+               super(bc);
+               context = bc;
+       }
+       
+       public abstract List suite();
+       
+       public List execute() {
+               List result = new ArrayList();
+               // Get the list of test of the test case
+               String clazz = this.getClass().getName();
+               Method[] all_methods = this.getClass().getMethods();
+               for(int i = 0; i < all_methods.length; i++) {
+                       if(all_methods[i].getName().startsWith("test")) {
+                               // We need to execute the test
+                               long begin = 0;
+                               this.setUp();
+                               try {
+                                       begin = System.currentTimeMillis();
+                                       all_methods[i].invoke(this, new 
Object[0]);
+                                       long duration = 
System.currentTimeMillis() - begin;
+                                       result.add(new 
TestResult(clazz+":"+all_methods[i].getName(),"success", duration, 
TestResult.SUCCESS, null));
+                               } catch (IllegalArgumentException e) {
+                                       long duration = 
System.currentTimeMillis() - begin;
+                                       result.add(new 
TestResult(clazz+":"+all_methods[i].getName(),"test method cannot be called -> 
" + e.getMessage(), duration, TestResult.FAILED, null));
+                               } catch (IllegalAccessException e) {
+                                       long duration = 
System.currentTimeMillis() - begin;
+                                       result.add(new 
TestResult(clazz+":"+all_methods[i].getName(),"test method cannot be called -> 
" + e.getMessage(), duration, TestResult.FAILED, null));
+                               } catch (InvocationTargetException e) {
+                                       long duration = 
System.currentTimeMillis() - begin;
+                                       if((e.getCause() instanceof 
AssertionFailed)) {
+                                               result.add(new 
TestResult(clazz+":"+all_methods[i].getName(),"Assertion Failed -> " + 
e.getCause().getMessage(), duration, TestResult.FAILED, e.getCause()));
+                                       } else {
+                                               result.add(new 
TestResult(clazz+":"+all_methods[i].getName(),"The test method thrown an 
exception -> " + e.getCause().getMessage(), duration, TestResult.FAILED, null));
+                                               e.printStackTrace();
+                                       }
+                               }
+                               this.tearDown();
+                       }
+               }
+               
+               // Then get the list of TestCase of the test suite
+               List testcases = this.suite();
+               for(int i = 0; i < testcases.size(); i++) {
+                       TestCase tc = (TestCase) testcases.get(i);
+                       result.addAll(tc.execute());
+               }
+               
+               return result;
+       }
+
+}

Added: 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/runner/ConsoleRunner.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/runner/ConsoleRunner.java?rev=579295&view=auto
==============================================================================
--- 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/runner/ConsoleRunner.java
 (added)
+++ 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/runner/ConsoleRunner.java
 Tue Sep 25 08:18:49 2007
@@ -0,0 +1,44 @@
+package fr.imag.adele.escoffier.utf.runner;
+
+import java.util.List;
+
+import fr.imag.adele.escoffier.utf.framework.TestCase;
+import fr.imag.adele.escoffier.utf.framework.TestResult;
+
+public class ConsoleRunner {
+       
+       public static void run(List tests, boolean stopOnFailed) {
+               System.out.println("Tests ...");
+        long t1 = System.currentTimeMillis();
+               int cases = 0;
+               int ut = 0;
+               int failed = 0;
+               int sucess = 0;
+               for(int i = 0; i < tests.size(); i++) {
+                       cases++;
+                       TestCase tc = (TestCase) tests.get(i);
+                       List result = tc.execute();
+                       for(int j = 0; j < result.size(); j++) {
+                               ut++;
+                               TestResult tr = (TestResult) result.get(j);
+                               if(tr.isSuccess()) { 
+                                       sucess++;
+                                       System.out.println(tr);
+                               } else { 
+                                       failed++;
+                                       System.err.println(tr);
+                                       if(stopOnFailed) { 
+                                           if(tr.getException() != null) {
+                               tr.getException().printStackTrace();
+                           }
+                                           return;
+                                       }
+                               }
+                               
+                       }
+               }
+        long t2 = System.currentTimeMillis();
+               System.out.println("\n Summary : " + cases + " test cases, " + 
ut + " unitary tests, " + sucess + " success, " + failed + " failures " + "[" + 
(t2-t1) + " ms]");
+       }
+
+}

Added: 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/runner/InlineConsoleRunner.java
URL: 
http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/runner/InlineConsoleRunner.java?rev=579295&view=auto
==============================================================================
--- 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/runner/InlineConsoleRunner.java
 (added)
+++ 
felix/sandbox/clement/Tests/UTF/src/main/java/fr/imag/adele/escoffier/utf/runner/InlineConsoleRunner.java
 Tue Sep 25 08:18:49 2007
@@ -0,0 +1,61 @@
+package fr.imag.adele.escoffier.utf.runner;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import fr.imag.adele.escoffier.utf.framework.TestCase;
+import fr.imag.adele.escoffier.utf.framework.TestResult;
+import fr.imag.adele.escoffier.utf.framework.TestSuite;
+
+public class InlineConsoleRunner {
+       
+       public static void run(List tests, boolean stopOnFailed) {
+           List inlined = new ArrayList();
+           InlineTests(tests, inlined);
+               System.out.println("Executing " + inlined.size() + " tests 
...");
+        long t1 = System.currentTimeMillis();
+               int cases = 0;
+               int ut = 0;
+               int failed = 0;
+               int sucess = 0;
+               for(int i = 0; i < inlined.size(); i++) {
+                       cases++;
+                       TestCase tc = (TestCase) inlined.get(i);
+                       List result = tc.execute();
+                       for(int j = 0; j < result.size(); j++) {
+                               ut++;
+                               TestResult tr = (TestResult) result.get(j);
+                               if(tr.isSuccess()) { 
+                                       sucess++;
+                                       System.out.println(tr);
+                               } else { 
+                                       failed++;
+                                       System.err.println(tr);
+                                       if(stopOnFailed) { 
+                                           if(tr.getException() != null) {
+                               tr.getException().printStackTrace();
+                           }
+                                           return;
+                                       }
+                               }
+                               
+                       }
+               }
+        long t2 = System.currentTimeMillis();
+               System.out.println("\n Summary : " + cases + " test cases, " + 
ut + " unitary tests, " + sucess + " success, " + failed + " failures " + "[" + 
(t2-t1) + " ms]");
+       }
+
+    private static void InlineTests(List tests, List inlined) {
+        for(int i = 0; i <tests.size(); i++) {
+            if(tests.get(i) instanceof TestSuite) {
+                List inlined2 = new ArrayList();
+                TestSuite ts = (TestSuite) tests.get(i);
+                InlineTests(ts.suite(), inlined2);
+                inlined.addAll(inlined2);
+            } else {
+                inlined.add(tests.get(i));
+            }
+        }
+    }
+
+}


Reply via email to