From 0b35a034d72342ae120859a130ed245dfd63048e Mon Sep 17 00:00:00 2001 From: wisberg Date: Mon, 30 Dec 2002 15:35:02 +0000 Subject: [PATCH] minor Tester API tests brought down from attic --- .../testsrc/TestingClientModuleTests.java | 4 +- .../org/aspectj/testing/TesterTest.java | 234 ++++++++++++++++++ .../org/aspectj/testing/TestingTests.java | 32 +++ 3 files changed, 268 insertions(+), 2 deletions(-) create mode 100644 testing-client/testsrc/org/aspectj/testing/TesterTest.java create mode 100644 testing-client/testsrc/org/aspectj/testing/TestingTests.java diff --git a/testing-client/testsrc/TestingClientModuleTests.java b/testing-client/testsrc/TestingClientModuleTests.java index 7148e03e5..2abb09fe4 100644 --- a/testing-client/testsrc/TestingClientModuleTests.java +++ b/testing-client/testsrc/TestingClientModuleTests.java @@ -16,16 +16,16 @@ import junit.framework.*; import junit.framework.Test; +import org.aspectj.testing.TestingTests; public class TestingClientModuleTests extends TestCase { public static Test suite() { TestSuite suite = new TestSuite(TestingClientModuleTests.class.getName()); - suite.addTestSuite(TestingClientModuleTests.class); // minimum 1 test (testNothing) + suite.addTest(TestingTests.suite()); return suite; } public TestingClientModuleTests(String name) { super(name); } - public void testNothing() {} } diff --git a/testing-client/testsrc/org/aspectj/testing/TesterTest.java b/testing-client/testsrc/org/aspectj/testing/TesterTest.java new file mode 100644 index 000000000..5acce235d --- /dev/null +++ b/testing-client/testsrc/org/aspectj/testing/TesterTest.java @@ -0,0 +1,234 @@ +/* ******************************************************************* + * Copyright (c) 1999-2001 Xerox Corporation, + * 2002 Palo Alto Research Center, Incorporated (PARC). + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * Xerox/PARC initial implementation + * ******************************************************************/ + + +package org.aspectj.testing; + +import org.aspectj.bridge.IMessage; +import org.aspectj.bridge.IMessageHandler; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import junit.framework.TestCase; +import junit.textui.TestRunner; + +/** + * Test the Tester client API's. + * See also tests/harness/*.java and tests/ajcHarnessTests.xml for harness- + * driven Tester tests. + * @author isberg + */ +public class TesterTest extends TestCase { + + + private static final String ME + = "org.aspectj.testing.TesterTest"; + + /** @param args ignored */ + public static void main(String[] args) { + TestRunner.main(new String[] {ME}); + } + + /** + * Constructor for TesterTest. + * @param arg0 + */ + public TesterTest(String arg0) { + super(arg0); + } + + /** + * Test the usage pattern + *
Tester.event("foo");
+     * Tester.checkEvents(new String[] { "foo" }); 
+ */ + public void testEventArrayPattern() { + MyTestReporter reporter = new MyTestReporter(); + Tester.setMessageHandler(reporter); + + //--------- positive test - got expected events + reporter.clear(); + Tester.clear(); + Tester.event("one"); + Tester.event("two"); + Tester.checkEvents(new String[] { "one", "two"}); + reporter.assertSize(0); + + //--------- failed to get expected events + reporter.clear(); + Tester.clear(); + Tester.checkEvents(new String[] { "one"}); + assertTrue(reporter.gotFail("one")); + reporter.assertSize(1); + + //--------- got and didn't get expected events + reporter.clear(); + Tester.clear(); + Tester.event("one"); + Tester.event("two"); + Tester.checkEvents(new String[] { "one", "two", "three"}); + reporter.assertSize(1); + assertTrue(reporter.gotFail("three")); + } + + /** + * Test the usage pattern + *
Tester.event("foo");
+     * Tester.expectEvent("foo");
+     * Tester.checkAllEvents();
+ */ + public void testEventStringPattern() { + MyTestReporter reporter = new MyTestReporter(); + Tester.setMessageHandler(reporter); + + //--------- positive test - got expected events + reporter.clear(); + Tester.clear(); + Tester.event("one"); + Tester.event("two"); + Tester.expectEvent("one"); + Tester.expectEvent("two"); + Tester.checkAllEvents(); + reporter.assertSize(0); + + //--------- failed to get expected events + reporter.clear(); + Tester.clear(); + Tester.expectEvent("one"); + Tester.checkAllEvents(); + assertTrue(reporter.gotFail("one")); + reporter.assertSize(1); + + //--------- got and didn't get expected events + reporter.clear(); + Tester.clear(); + Tester.expectEvent("one"); + Tester.expectEvent("two"); + Tester.expectEvent("three"); + Tester.event("one"); + Tester.event("two"); + Tester.checkAllEvents(); + assertTrue(reporter.gotFail("three")); + reporter.assertSize(1); + } + + /** + * Test the usage pattern + *
Tester.note("foo");
+     * Tester.check("foo");
+ */ + public void testNotePattern() { + MyTestReporter reporter = new MyTestReporter(); + Tester.setMessageHandler(reporter); + + //--------- positive test - got expected events + reporter.clear(); + Tester.clear(); + Tester.note("one"); + Tester.note("two"); + Tester.check("one"); + Tester.check("two"); + reporter.assertSize(0); + + //--------- failed to get expected events + reporter.clear(); + Tester.clear(); + Tester.check("one"); + Tester.checkAllEvents(); + assertTrue(reporter.gotFail("one")); + reporter.assertSize(1); + + //--------- got and didn't get expected events + reporter.clear(); + Tester.clear(); + Tester.note("one"); + Tester.check("one"); + Tester.note("two"); + Tester.check("two"); + Tester.check("three"); + assertTrue(reporter.gotFail("three")); + reporter.assertSize(1); + } + + /** + * Stub to record failures emitted by Tester. + * @author isberg + */ + public static class MyTestReporter implements IMessageHandler { + public ArrayList failures = new ArrayList(); + public ArrayList passes = new ArrayList(); + + public void clear() { + failures.clear(); + passes.clear(); + } + + void assertSize(int size) { + assertTrue(-1 < size); + assertTrue("failures: " + failures, size == failures.size()); + } + + boolean gotPass(String substring) { + return gotItem(passes, substring); + } + + boolean gotFail(String substring) { + return gotItem(failures, substring); + } + + boolean gotItem(List list, String substring) { + for (Iterator iterator = list.iterator(); iterator.hasNext(); ) { + IMessage element = (IMessage) iterator.next(); + String s = element.getMessage(); + if ((null != s) && (-1 != s.indexOf(substring))) { + return true; + } + } + return false; + } + + public boolean isIgnoring(IMessage.Kind kind) { + return false; + } + + public boolean handleMessage(IMessage message) { + (message.isFailed() ? failures : passes).add(message); + return true; + } + + } +} +// /** +// * @see ReporterI#abortWithFailure(String, Throwable) +// */ +// public void abortWithFailure(String message, Throwable exception) { +// if (null == exception) { +// check(message, true); +// } else { +// String s = message + Util.unqualifiedClassName(exception) +// + ": " + exception.getMessage(); +// check(s, false); +// } +// } +// +// /** +// * @see ReporterI#check(String, boolean) +// */ +// public boolean check(String message, boolean passed) { +// (!passed ? failures : passes).add(message); +// return passed; +// } +// + diff --git a/testing-client/testsrc/org/aspectj/testing/TestingTests.java b/testing-client/testsrc/org/aspectj/testing/TestingTests.java new file mode 100644 index 000000000..99ac8678c --- /dev/null +++ b/testing-client/testsrc/org/aspectj/testing/TestingTests.java @@ -0,0 +1,32 @@ +/* ******************************************************************* + * Copyright (c) 1999-2001 Xerox Corporation, + * 2002 Palo Alto Research Center, Incorporated (PARC). + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * Xerox/PARC initial implementation + * ******************************************************************/ + + +package org.aspectj.testing; + +import junit.framework.*; + +public class TestingTests extends TestCase { + + public static Test suite() { + TestSuite suite = new TestSuite(TestingTests.class.getName()); + // for now, do not include SuiteTest because it would take 15 minutes + //$JUnit-BEGIN$ + suite.addTestSuite(TesterTest.class); + //$JUnit-END$ + return suite; + } + + public TestingTests(String name) { super(name); } + +} -- 2.39.5