You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(13) |
Aug
(151) |
Sep
(21) |
Oct
(6) |
Nov
(70) |
Dec
(8) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(47) |
Feb
(66) |
Mar
(23) |
Apr
(115) |
May
(24) |
Jun
(53) |
Jul
(10) |
Aug
(279) |
Sep
(84) |
Oct
(149) |
Nov
(138) |
Dec
(52) |
2003 |
Jan
(22) |
Feb
(20) |
Mar
(29) |
Apr
(106) |
May
(170) |
Jun
(122) |
Jul
(70) |
Aug
(64) |
Sep
(27) |
Oct
(71) |
Nov
(49) |
Dec
(9) |
2004 |
Jan
(7) |
Feb
(38) |
Mar
(3) |
Apr
(9) |
May
(22) |
Jun
(4) |
Jul
(1) |
Aug
(2) |
Sep
(2) |
Oct
|
Nov
(15) |
Dec
(2) |
2005 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
(1) |
May
(28) |
Jun
(3) |
Jul
(11) |
Aug
(5) |
Sep
(1) |
Oct
(5) |
Nov
(2) |
Dec
(3) |
2006 |
Jan
(8) |
Feb
(3) |
Mar
(8) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Steve F. <sm...@us...> - 2003-11-18 23:12:55
|
Update of /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic In directory sc8-pr-cvs1:/tmp/cvs-serv345/src/core/com/mockobjects/dynamic Modified Files: Invocation.java Invokable.java DynamicMockError.java LIFOInvocationDispatcher.java VoidStub.java C.java CoreMock.java ReturnStub.java InvocationMatcher.java InvocationDispatcher.java InvocationMocker.java Stub.java ThrowStub.java Log Message: Added better error reporting. Shows invocation and invokables. Index: Invocation.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/Invocation.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Invocation.java 20 Aug 2003 21:51:27 -0000 1.2 +++ Invocation.java 18 Nov 2003 23:12:50 -0000 1.3 @@ -15,14 +15,16 @@ // TODO Simplify this (smgf) public class Invocation { + private Class declaringClass; private String name; private List parameterTypes; private Class returnType; private List parameterValues; - public Invocation( String name, Class[] parameterTypes, + public Invocation( Class declaringClass, String name, Class[] parameterTypes, Class returnType, Object[] parameterValues ) { + this.declaringClass = declaringClass; this.name = name; this.parameterTypes = Arrays.asList(parameterTypes); this.returnType = returnType; @@ -34,7 +36,7 @@ } public Invocation( Method method, Object[] parameterValues ) { - this( method.getName(), method.getParameterTypes(), + this( method.getDeclaringClass(), method.getName(), method.getParameterTypes(), method.getReturnType(), parameterValues ); } @@ -58,12 +60,8 @@ return DynamicUtil.methodToString( name, parameterValues.toArray() ); } - public boolean equals( Object o ) { - if( o instanceof Invocation ) { - return this.equals((Invocation)o); - } else { - return false; - } + public boolean equals( Object other ) { + return ( other instanceof Invocation ) && this.equals((Invocation)other); } public int hashCode() { @@ -100,4 +98,17 @@ return name.equals("getMockName") && parameterValues.size() == 0; } + + public StringBuffer writeTo(StringBuffer buffer) { + buffer.append("Invocation: "); + writeDeclaringClassName(buffer).append(".") + .append(name).append("("); + DynamicUtil.join(parameterValues.toArray(), buffer); + buffer.append(")\n"); + return buffer; + } + + private StringBuffer writeDeclaringClassName(StringBuffer buffer) { + return buffer.append(declaringClass.getName().substring(declaringClass.getPackage().getName().length())); + } } Index: Invokable.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/Invokable.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Invokable.java 20 Aug 2003 21:47:58 -0000 1.1 +++ Invokable.java 18 Nov 2003 23:12:50 -0000 1.2 @@ -10,5 +10,7 @@ boolean matches(Invocation invocation); - Object invoke(Invocation invocation) throws Throwable; + Object invoke(Invocation invocation) throws Throwable; + + StringBuffer writeTo(StringBuffer buffer); } Index: DynamicMockError.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/DynamicMockError.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DynamicMockError.java 20 Aug 2003 21:47:58 -0000 1.1 +++ DynamicMockError.java 18 Nov 2003 23:12:50 -0000 1.2 @@ -8,11 +8,24 @@ import junit.framework.AssertionFailedError; public class DynamicMockError extends AssertionFailedError { - public final Invocation invocation; - - public DynamicMockError(Invocation invocation, String message) { + public final InvocationDispatcher dispatcher; + + public DynamicMockError(Invocation invocation, InvocationDispatcher dispatcher, String message) { super(message); this.invocation = invocation; + this.dispatcher = dispatcher; + } + + public StringBuffer writeTo(StringBuffer buffer) { + buffer.append(super.getMessage()).append("\n"); + invocation.writeTo(buffer); + buffer.append("in:\n"); + dispatcher.writeTo(buffer); + return buffer; + } + + public String getMessage() { + return writeTo(new StringBuffer()).toString(); } } Index: LIFOInvocationDispatcher.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/LIFOInvocationDispatcher.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- LIFOInvocationDispatcher.java 4 Oct 2003 22:56:45 -0000 1.2 +++ LIFOInvocationDispatcher.java 18 Nov 2003 23:12:50 -0000 1.3 @@ -23,7 +23,7 @@ return invokable.invoke(invocation); } } - throw new DynamicMockError(invocation, "No match found"); + throw new DynamicMockError(invocation, this, "No match found"); } public void add(Invokable invokable) { @@ -40,5 +40,12 @@ public void clear() { invokables.clear(); } + + public void writeTo(StringBuffer buffer) { + Iterator iterator = invokables.iterator(); + while (iterator.hasNext()) { + ((Invokable)iterator.next()).writeTo(buffer); + } + } } Index: VoidStub.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/VoidStub.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- VoidStub.java 8 Oct 2003 23:47:14 -0000 1.8 +++ VoidStub.java 18 Nov 2003 23:12:50 -0000 1.9 @@ -5,13 +5,12 @@ public class VoidStub extends CallStub { - - public String getDescription() { - return "returns <void>"; - } - public Object invoke(Invocation invocation) throws Throwable { return null; + } + + public StringBuffer writeTo(StringBuffer buffer) { + return buffer.append("returns <void>"); } } Index: C.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/C.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- C.java 29 Oct 2003 22:11:35 -0000 1.8 +++ C.java 18 Nov 2003 23:12:51 -0000 1.9 @@ -23,11 +23,13 @@ public static final InvocationMatcher NO_ARGS = new StatelessInvocationMatcher() { public boolean matches(Invocation invocation) { return invocation.getParameterValues().isEmpty();} + public StringBuffer writeTo(StringBuffer buffer) { return buffer.append("No arguments"); } }; public static final InvocationMatcher ANY_ARGS = new StatelessInvocationMatcher() { public boolean matches(Invocation invocation) { return true;} + public StringBuffer writeTo(StringBuffer buffer) { return buffer.append("Any arguments"); } }; public static Constraint same( Object o ) { Index: CoreMock.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/CoreMock.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- CoreMock.java 29 Oct 2003 22:11:35 -0000 1.14 +++ CoreMock.java 18 Nov 2003 23:12:51 -0000 1.15 @@ -15,8 +15,6 @@ this.proxy = Proxy.newProxyInstance(getClass().getClassLoader(), new Class[] { mockedClass }, this); this.name = name; this.invocationDispatcher = invocationDispatcher; - - // callables.addStub(new ProxyIsEqual(this.proxy)); } public Object proxy() { @@ -35,8 +33,12 @@ } else { return invocationDispatcher.dispatch(invocation); } + } catch (DynamicMockError error) { + DynamicMockError newError = new DynamicMockError(invocation, invocationDispatcher, name); + newError.fillInStackTrace(); + throw newError; } catch (AssertionFailedError ex) { - DynamicMockError error = new DynamicMockError(invocation, name + ": " + ex.getMessage()); + DynamicMockError error = new DynamicMockError(invocation, invocationDispatcher, ex.getMessage()); error.fillInStackTrace(); throw error; } Index: ReturnStub.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/ReturnStub.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- ReturnStub.java 5 Oct 2003 09:28:15 -0000 1.8 +++ ReturnStub.java 18 Nov 2003 23:12:51 -0000 1.9 @@ -17,7 +17,7 @@ return result; } - public String getDescription() { - return "returns <" + result + ">"; + public StringBuffer writeTo(StringBuffer buffer) { + return buffer.append("returns <").append(result).append(">"); } } Index: InvocationMatcher.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/InvocationMatcher.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- InvocationMatcher.java 29 Oct 2003 22:11:35 -0000 1.4 +++ InvocationMatcher.java 18 Nov 2003 23:12:51 -0000 1.5 @@ -11,4 +11,5 @@ { boolean matches(Invocation invocation); void invoked(Invocation invocation); + StringBuffer writeTo(StringBuffer buffer); } Index: InvocationDispatcher.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/InvocationDispatcher.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- InvocationDispatcher.java 11 Sep 2003 21:39:01 -0000 1.3 +++ InvocationDispatcher.java 18 Nov 2003 23:12:51 -0000 1.4 @@ -11,4 +11,5 @@ Object dispatch(Invocation invocation) throws Throwable; void add(Invokable invokable); void clear(); + void writeTo(StringBuffer buffer); } Index: InvocationMocker.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/InvocationMocker.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- InvocationMocker.java 13 Nov 2003 00:58:07 -0000 1.8 +++ InvocationMocker.java 18 Nov 2003 23:12:51 -0000 1.9 @@ -66,4 +66,13 @@ public void setStub(Stub stub) { this.stub = stub; } + + public StringBuffer writeTo(StringBuffer buffer) { + Iterator it = matchers.iterator(); + while (it.hasNext()) { + ((InvocationMatcher)it.next()).writeTo(buffer).append(", "); + } + stub.writeTo(buffer); + return buffer.append("\n"); + } } Index: Stub.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/Stub.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- Stub.java 29 Oct 2003 22:11:35 -0000 1.7 +++ Stub.java 18 Nov 2003 23:12:51 -0000 1.8 @@ -25,5 +25,5 @@ */ Object invoke( Invocation invocation ) throws Throwable; - String getDescription(); + StringBuffer writeTo(StringBuffer buffer); } Index: ThrowStub.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/ThrowStub.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ThrowStub.java 8 Oct 2003 23:47:14 -0000 1.9 +++ ThrowStub.java 18 Nov 2003 23:12:51 -0000 1.10 @@ -16,7 +16,7 @@ throw throwable; } - public String getDescription() { - return "throws <" + throwable + ">"; + public StringBuffer writeTo(StringBuffer buffer) { + return buffer.append("throws <").append(throwable).append(">"); } } |
From: Steve F. <sm...@us...> - 2003-11-18 23:12:55
|
Update of /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/matchers In directory sc8-pr-cvs1:/tmp/cvs-serv345/src/core/com/mockobjects/dynamic/matchers Modified Files: CallOnceMatcher.java MethodNameMatcher.java ArgumentsMatcher.java Log Message: Added better error reporting. Shows invocation and invokables. Index: CallOnceMatcher.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/matchers/CallOnceMatcher.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- CallOnceMatcher.java 29 Oct 2003 22:11:35 -0000 1.1 +++ CallOnceMatcher.java 18 Nov 2003 23:12:51 -0000 1.2 @@ -23,4 +23,8 @@ Assert.assertTrue("Should have been invoked", wasInvoked); } + public StringBuffer writeTo(StringBuffer buffer) { + return buffer.append("Call once"); + } + } Index: MethodNameMatcher.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/matchers/MethodNameMatcher.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MethodNameMatcher.java 29 Oct 2003 22:11:35 -0000 1.1 +++ MethodNameMatcher.java 18 Nov 2003 23:12:51 -0000 1.2 @@ -22,4 +22,7 @@ public boolean matches(Invocation invocation) { return constraint.eval(invocation.getMethodName()); } + public StringBuffer writeTo(StringBuffer buffer) { + return buffer.append("Method ").append(constraint); + } } Index: ArgumentsMatcher.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/matchers/ArgumentsMatcher.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ArgumentsMatcher.java 29 Oct 2003 22:11:35 -0000 1.1 +++ ArgumentsMatcher.java 18 Nov 2003 23:12:51 -0000 1.2 @@ -38,15 +38,19 @@ } public String toString() { - StringBuffer result = new StringBuffer(); - result.append("ArgumentMatcher: "); - for (int i = 0; i < constraints.length; ++i) { - result.append(constraints[i]).append(", "); - } - return result.toString(); + return writeTo(new StringBuffer()).toString(); } public boolean equals(Object other) { return other != null && toString().equals(other.toString()); + } + + public StringBuffer writeTo(StringBuffer buffer) { + buffer.append("Arguments ["); + for (int i = 0; i < constraints.length; ++i) { + buffer.append(constraints[i]).append(", "); + } + buffer.append("]"); + return buffer; } } |
From: Steve F. <sm...@us...> - 2003-11-14 16:57:50
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance/tests/mockobjects/talks/fruitshop In directory sc8-pr-cvs1:/tmp/cvs-serv25546/talks/fruitshop/src/acceptance/tests/mockobjects/talks/fruitshop Modified Files: Tag: nat_0001 FruitShopAcceptanceTest.java Log Message: Index: FruitShopAcceptanceTest.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance/tests/mockobjects/talks/fruitshop/Attic/FruitShopAcceptanceTest.java,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -u -r1.1.2.1 -r1.1.2.2 --- FruitShopAcceptanceTest.java 14 Nov 2003 16:18:04 -0000 1.1.2.1 +++ FruitShopAcceptanceTest.java 14 Nov 2003 16:57:47 -0000 1.1.2.2 @@ -56,7 +56,7 @@ } private void findAnOfferForCheapestFruit() { - offer = directory.findCheapestFruit(REQUIRED_FRUIT); + offer = directory.findCheapest(REQUIRED_FRUIT); } private void testThatFoundOfferIsForLowPrice() { |
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop In directory sc8-pr-cvs1:/tmp/cvs-serv25546/talks/fruitshop/src/com/mockobjects/talks/fruitshop Modified Files: Tag: nat_0001 Directory.java Shop.java Added Files: Tag: nat_0001 DirectoryTest.java FruitShop.java Log Message: --- NEW FILE: DirectoryTest.java --- package com.mockobjects.talks.fruitshop; import com.mockobjects.dynamic.Mock; import junit.framework.TestCase; public class DirectoryTest extends TestCase { public void testFindsCheapestFruitFromMultipleShops() { final String REQUIRED_FRUIT = "required fruit"; Directory directory = new Directory(); Mock mockExpensiveShop = new Mock(FruitShop.class, "expensive"); Mock mockEmptyShop = new Mock(FruitShop.class, "empty"); Mock mockCheapShop = new Mock(FruitShop.class, "cheap"); Offer emptyOffer = new Offer(); Offer cheapOffer = new Offer(); Offer expensiveOffer = new Offer(); directory.addShop((FruitShop)mockEmptyShop.proxy()); directory.addShop((FruitShop)mockExpensiveShop.proxy()); directory.addShop((FruitShop)mockCheapShop.proxy()); mockEmptyShop.expectAndReturn( "makeOffer", REQUIRED_FRUIT, emptyOffer ); mockCheapShop.expectAndReturn( "makeOffer", REQUIRED_FRUIT, cheapOffer ); mockExpensiveShop.expectAndReturn( "makeOffer", REQUIRED_FRUIT, expensiveOffer ); assertSame( "should be cheap offer", cheapOffer, directory.findCheapest(REQUIRED_FRUIT)); } } --- NEW FILE: FruitShop.java --- /* * Created on 14-Nov-2003 */ package com.mockobjects.talks.fruitshop; /** * @author steve.freeman */ public interface FruitShop { public void addFruit(String required_fruit, int high_price); } Index: Directory.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop/Attic/Directory.java,v retrieving revision 1.2.6.1 retrieving revision 1.2.6.2 diff -u -r1.2.6.1 -r1.2.6.2 --- Directory.java 14 Nov 2003 16:18:04 -0000 1.2.6.1 +++ Directory.java 14 Nov 2003 16:57:47 -0000 1.2.6.2 @@ -1,23 +1,26 @@ -/* - * Created on 14-Nov-2003 - */ package com.mockobjects.talks.fruitshop; -/** - * @author steve.freeman - */ +import java.util.ArrayList; +import java.util.Iterator; + public class Directory { + private ArrayList shops = new ArrayList(); + public Directory() { super(); // TODO Generated constructor stub } - public Offer findCheapestFruit(String required_fruit) { - return null; // TODO Generated body + public Offer findCheapest(String required_fruit) { + Iterator allShops = shops.iterator(); + while (allShops.hasNext()) { + FruitShop shop = (FruitShop)allShops.next(); + } + return null; } - public void addShop(Shop emptyShop) { - // TODO Generated body + public void addShop(FruitShop shop) { + shops.add(shop); } } Index: Shop.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop/Shop.java,v retrieving revision 1.1.6.1 retrieving revision 1.1.6.2 diff -u -r1.1.6.1 -r1.1.6.2 --- Shop.java 14 Nov 2003 16:18:04 -0000 1.1.6.1 +++ Shop.java 14 Nov 2003 16:57:47 -0000 1.1.6.2 @@ -6,7 +6,7 @@ /** * @author steve.freeman */ -public class Shop { +public class Shop implements FruitShop { public Shop() { super(); // TODO Generated constructor stub |
From: Steve F. <sm...@us...> - 2003-11-14 16:57:24
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/doc In directory sc8-pr-cvs1:/tmp/cvs-serv25410/talks/fruitshop/doc Modified Files: Mock Objects.ppt Log Message: |
From: Steve F. <sm...@us...> - 2003-11-14 16:18:08
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance/tests/mockobjects/talks/fruitshop In directory sc8-pr-cvs1:/tmp/cvs-serv16656/talks/fruitshop/src/acceptance/tests/mockobjects/talks/fruitshop Added Files: Tag: nat_0001 FruitShopAcceptanceTest.java Log Message: --- NEW FILE: FruitShopAcceptanceTest.java --- /* * Created on 14-Nov-2003 */ package acceptance.tests.mockobjects.talks.fruitshop; import com.mockobjects.talks.fruitshop.*; import junit.framework.TestCase; public class FruitShopAcceptanceTest extends TestCase { Directory directory; Shop cheapShop; Shop expensiveShop; Shop emptyShop; Offer offer; static final String REQUIRED_FRUIT = "required fruit"; static final int HIGH_PRICE = 2; static final int LOW_PRICE = 1; public void setUp() { directory = new Directory(); cheapShop = new Shop(); expensiveShop = new Shop(); emptyShop = new Shop(); } public void testGetCheapestFruit() { addAShopWithoutTheRequiredFruit(); addAShopWithAHighPricedFruit(); addAShopWithALowPricedFruit(); findAnOfferForCheapestFruit(); testThatFoundOfferIsForRequiredFruit(); testThatFoundOfferIsForLowPrice(); testThatFoundOfferIsFromCheapShop(); } private void addAShopWithoutTheRequiredFruit() { directory.addShop( emptyShop ); } private void addAShopWithAHighPricedFruit() { expensiveShop.addFruit( REQUIRED_FRUIT, HIGH_PRICE ); directory.addShop(expensiveShop); } private void addAShopWithALowPricedFruit() { cheapShop.addFruit( REQUIRED_FRUIT, LOW_PRICE ); directory.addShop(cheapShop); } private void findAnOfferForCheapestFruit() { offer = directory.findCheapestFruit(REQUIRED_FRUIT); } private void testThatFoundOfferIsForLowPrice() { assertEquals( "offer is at low price", LOW_PRICE, offer.getPrice() ); } private void testThatFoundOfferIsFromCheapShop() { assertSame( "offer is from cheap shop", cheapShop, offer.getShop() ); } private void testThatFoundOfferIsForRequiredFruit() { assertEquals( "offer is for required fruit", REQUIRED_FRUIT, offer.getFruit() ); } } |
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop In directory sc8-pr-cvs1:/tmp/cvs-serv16656/talks/fruitshop/src/com/mockobjects/talks/fruitshop Modified Files: Tag: nat_0001 Shop.java Added Files: Tag: nat_0001 Directory.java Offer.java Removed Files: Tag: nat_0001 FruitSearcher.java FruitSearcherTest.java Log Message: --- NEW FILE: Directory.java --- /* * Created on 14-Nov-2003 */ package com.mockobjects.talks.fruitshop; /** * @author steve.freeman */ public class Directory { public Directory() { super(); // TODO Generated constructor stub } public Offer findCheapestFruit(String required_fruit) { return null; // TODO Generated body } public void addShop(Shop emptyShop) { // TODO Generated body } } --- NEW FILE: Offer.java --- /* * Created on 14-Nov-2003 */ package com.mockobjects.talks.fruitshop; /** * @author steve.freeman */ public class Offer { public Offer() { super(); // TODO Generated constructor stub } public int getPrice() { return 0; // TODO Generated body } public Shop getShop() { return null; // TODO Generated body } public String getFruit() { return null; // TODO Generated body } } Index: Shop.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop/Shop.java,v retrieving revision 1.1 retrieving revision 1.1.6.1 diff -u -r1.1 -r1.1.6.1 --- Shop.java 14 Nov 2003 14:18:10 -0000 1.1 +++ Shop.java 14 Nov 2003 16:18:04 -0000 1.1.6.1 @@ -6,6 +6,14 @@ /** * @author steve.freeman */ -public interface Shop { +public class Shop { + + public Shop() { + super(); // TODO Generated constructor stub + } + + public void addFruit(String required_fruit, int high_price) { + // TODO Generated body + } } --- FruitSearcher.java DELETED --- --- FruitSearcherTest.java DELETED --- |
From: Steve F. <sm...@us...> - 2003-11-14 16:18:02
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance/tests In directory sc8-pr-cvs1:/tmp/cvs-serv16572/talks/fruitshop/src/acceptance/tests Log Message: Directory /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance/tests added to the repository |
From: Steve F. <sm...@us...> - 2003-11-14 16:18:01
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance/tests/mockobjects/talks/fruitshop In directory sc8-pr-cvs1:/tmp/cvs-serv16572/talks/fruitshop/src/acceptance/tests/mockobjects/talks/fruitshop Log Message: Directory /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance/tests/mockobjects/talks/fruitshop added to the repository |
From: Steve F. <sm...@us...> - 2003-11-14 16:18:00
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance/tests/mockobjects/talks In directory sc8-pr-cvs1:/tmp/cvs-serv16572/talks/fruitshop/src/acceptance/tests/mockobjects/talks Log Message: Directory /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance/tests/mockobjects/talks added to the repository |
From: Steve F. <sm...@us...> - 2003-11-14 16:18:00
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance/tests/mockobjects In directory sc8-pr-cvs1:/tmp/cvs-serv16572/talks/fruitshop/src/acceptance/tests/mockobjects Log Message: Directory /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance/tests/mockobjects added to the repository |
From: Steve F. <sm...@us...> - 2003-11-14 16:18:00
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance In directory sc8-pr-cvs1:/tmp/cvs-serv16572/talks/fruitshop/src/acceptance Log Message: Directory /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/acceptance added to the repository --> Using per-directory sticky tag `nat_0001' |
From: Steve F. <sm...@us...> - 2003-11-14 15:44:01
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop In directory sc8-pr-cvs1:/tmp/cvs-serv9993/talks/fruitshop/src/com/mockobjects/talks/fruitshop Modified Files: Tag: steve_0001 DirectoryTest.java Shop.java Added Files: Tag: steve_0001 FruitShop.java Log Message: --- NEW FILE: FruitShop.java --- package com.mockobjects.talks.fruitshop; public class FruitShop implements Shop { String fruitName; public void makeOffer(Shopper shopper, String requestedFruit) { if (requestedFruit.equals(fruitName)) { shopper.isOffered(new Offer() {}); } } public void addFruit(String fruitName) { this.fruitName = fruitName; } } Index: DirectoryTest.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop/Attic/DirectoryTest.java,v retrieving revision 1.3.2.1 retrieving revision 1.3.2.2 diff -u -r1.3.2.1 -r1.3.2.2 --- DirectoryTest.java 14 Nov 2003 15:17:46 -0000 1.3.2.1 +++ DirectoryTest.java 14 Nov 2003 15:43:53 -0000 1.3.2.2 @@ -18,15 +18,24 @@ mockShopper.verify(); } - public void testOneShopHasRightFruit() { + public void testNoOfferWhenOneShopHasNoFruit() { Mock mockShopper= new Mock(Shopper.class); Directory directory = new Directory(); - directory.addShop(new Shop() { - public void makeOffer(Shopper shopper, String fruitName) { - shopper.isOffered(new Offer() {}); - } - }); + directory.addShop(new FruitShop()); + + directory.askForLowestPrice((Shopper)mockShopper.proxy(), "fruit name"); + + mockShopper.verify(); + } + + public void testOneOfferWhenOneShopHasRightFruit() { + Mock mockShopper= new Mock(Shopper.class); + + Directory directory = new Directory(); + FruitShop shop = new FruitShop(); + shop.addFruit("fruit name"); + directory.addShop(shop); mockShopper.expect("isOffered", C.isA(Offer.class)); directory.askForLowestPrice((Shopper)mockShopper.proxy(), "fruit name"); Index: Shop.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop/Shop.java,v retrieving revision 1.1.4.1 retrieving revision 1.1.4.2 diff -u -r1.1.4.1 -r1.1.4.2 --- Shop.java 14 Nov 2003 15:17:46 -0000 1.1.4.1 +++ Shop.java 14 Nov 2003 15:43:55 -0000 1.1.4.2 @@ -7,5 +7,5 @@ * @author steve.freeman */ public interface Shop { - void makeOffer(Shopper shoppper, String fruitName); + void makeOffer(Shopper shopper, String fruitName); } |
From: Steve F. <sm...@us...> - 2003-11-14 15:17:49
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop In directory sc8-pr-cvs1:/tmp/cvs-serv4248/talks/fruitshop/src/com/mockobjects/talks/fruitshop Modified Files: Tag: steve_0001 Shop.java Added Files: Tag: steve_0001 DirectoryTest.java Shopper.java Directory.java Offer.java Removed Files: Tag: steve_0001 FruitSearcher.java FruitSearcherTest.java Log Message: --- NEW FILE: DirectoryTest.java --- /* * Created on 14-Nov-2003 */ package com.mockobjects.talks.fruitshop; import com.mockobjects.dynamic.*; import junit.framework.TestCase; public class DirectoryTest extends TestCase { public void testNothingFoundWhenNoShops() { Mock mockShopper= new Mock(Shopper.class); Directory directory = new Directory(); directory.askForLowestPrice((Shopper)mockShopper.proxy(), "fruit name"); mockShopper.verify(); } public void testOneShopHasRightFruit() { Mock mockShopper= new Mock(Shopper.class); Directory directory = new Directory(); directory.addShop(new Shop() { public void makeOffer(Shopper shopper, String fruitName) { shopper.isOffered(new Offer() {}); } }); mockShopper.expect("isOffered", C.isA(Offer.class)); directory.askForLowestPrice((Shopper)mockShopper.proxy(), "fruit name"); mockShopper.verify(); } } --- NEW FILE: Shopper.java --- /* * Created on 14-Nov-2003 */ package com.mockobjects.talks.fruitshop; /** * @author steve.freeman */ public interface Shopper { public void isOffered(Offer offer); } --- NEW FILE: Directory.java --- /* * Created on 14-Nov-2003 */ package com.mockobjects.talks.fruitshop; /** * @author steve.freeman */ public class Directory { public Directory() { super(); // TODO Generated constructor stub } private Shop shop; public void askForLowestPrice(Shopper shopper, String fruitName) { if (shop != null) { shop.makeOffer(shopper, fruitName); } } public void addShop(Shop shop) { this.shop = shop; } } --- NEW FILE: Offer.java --- /* * Created on 14-Nov-2003 */ package com.mockobjects.talks.fruitshop; /** * @author steve.freeman */ public interface Offer { } Index: Shop.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop/Shop.java,v retrieving revision 1.1 retrieving revision 1.1.4.1 diff -u -r1.1 -r1.1.4.1 --- Shop.java 14 Nov 2003 14:18:10 -0000 1.1 +++ Shop.java 14 Nov 2003 15:17:46 -0000 1.1.4.1 @@ -7,5 +7,5 @@ * @author steve.freeman */ public interface Shop { - + void makeOffer(Shopper shoppper, String fruitName); } --- FruitSearcher.java DELETED --- --- FruitSearcherTest.java DELETED --- |
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop In directory sc8-pr-cvs1:/tmp/cvs-serv542/talks/fruitshop/src/com/mockobjects/talks/fruitshop Modified Files: Tag: joe0001 FruitSearcher.java FruitSearcherTest.java Added Files: Tag: joe0001 Directory.java Offer.java Log Message: --- NEW FILE: Directory.java --- /* * Created on 14-Nov-2003 */ package com.mockobjects.talks.fruitshop; import java.util.Iterator; /** * @author steve.freeman */ public interface Directory { Iterator getShops(); } --- NEW FILE: Offer.java --- /* * Created on 14-Nov-2003 */ package com.mockobjects.talks.fruitshop; /** * @author steve.freeman */ public interface Offer { } Index: FruitSearcher.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop/FruitSearcher.java,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1 --- FruitSearcher.java 14 Nov 2003 14:18:10 -0000 1.1 +++ FruitSearcher.java 14 Nov 2003 14:59:08 -0000 1.1.2.1 @@ -7,12 +7,15 @@ * @author steve.freeman */ public class FruitSearcher { - - public FruitSearcher() { - super(); // TODO Generated constructor stub + private Directory directory; + + + public FruitSearcher(Directory directory) { + this.directory = directory; } - public Shop findShopWithCheapest(String fruitName) { + public Offer findCheapest(String fruitName) { + directory.getShops(); return null; } Index: FruitSearcherTest.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop/FruitSearcherTest.java,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1 --- FruitSearcherTest.java 14 Nov 2003 14:18:10 -0000 1.1 +++ FruitSearcherTest.java 14 Nov 2003 14:59:08 -0000 1.1.2.1 @@ -3,14 +3,37 @@ */ package com.mockobjects.talks.fruitshop; +import java.util.Arrays; +import java.util.List; + +import com.mockobjects.dynamic.Mock; + import junit.framework.TestCase; public class FruitSearcherTest extends TestCase { + Mock mockDirectory; + FruitSearcher fruitSearcher; + + public void setUp() { + mockDirectory = new Mock(Directory.class); + fruitSearcher = new FruitSearcher((Directory)mockDirectory.proxy()); + } + public void testReturnsNullIfNoShops() { - FruitSearcher fruitSearcher = new FruitSearcher(); - - assertNull("Should be null shop", fruitSearcher.findShopWithCheapest("fruit name")); + assertNull("Should be null offer", fruitSearcher.findCheapest("fruit name")); } + public void testReturnsNullIfShopDoesNotContainRequiredFruit() { + Mock shopStub = new Mock(Shop.class); + shopStub.matchAndReturn("sellsFruit", false); + + List shopList = Arrays.asList( new Object[] { + shopStub.proxy() + } ); + mockDirectory.expectAndReturn("getShops", shopList.iterator() ); + + assertNull("Should be null offer", fruitSearcher.findCheapest("fruit name")); + mockDirectory.verify(); + } } |
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop In directory sc8-pr-cvs1:/tmp/cvs-serv24637/talks/fruitshop/src/com/mockobjects/talks/fruitshop Added Files: FruitSearcher.java FruitSearcherTest.java Shop.java Removed Files: DirectoryTest.java Directory.java Log Message: Joe's version --- NEW FILE: FruitSearcher.java --- /* * Created on 14-Nov-2003 */ package com.mockobjects.talks.fruitshop; /** * @author steve.freeman */ public class FruitSearcher { public FruitSearcher() { super(); // TODO Generated constructor stub } public Shop findShopWithCheapest(String fruitName) { return null; } } --- NEW FILE: FruitSearcherTest.java --- /* * Created on 14-Nov-2003 */ package com.mockobjects.talks.fruitshop; import junit.framework.TestCase; public class FruitSearcherTest extends TestCase { public void testReturnsNullIfNoShops() { FruitSearcher fruitSearcher = new FruitSearcher(); assertNull("Should be null shop", fruitSearcher.findShopWithCheapest("fruit name")); } } --- NEW FILE: Shop.java --- /* * Created on 14-Nov-2003 */ package com.mockobjects.talks.fruitshop; /** * @author steve.freeman */ public interface Shop { } --- DirectoryTest.java DELETED --- --- Directory.java DELETED --- |
From: Steve F. <sm...@us...> - 2003-11-13 00:58:11
|
Update of /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic In directory sc8-pr-cvs1:/tmp/cvs-serv19664/src/core/com/mockobjects/dynamic Modified Files: InvocationMocker.java DynaMock.java Added Files: ExpectationBuilder.java StubBuilder.java InvocationMockerBuilder.java Removed Files: MethodExpectation.java Log Message: changed name of MethodExpectation to InvocationMockerBuilder Added stub assignment builder --- NEW FILE: ExpectationBuilder.java --- /* * Created on 12-Nov-2003 */ package com.mockobjects.dynamic; public interface ExpectationBuilder { } --- NEW FILE: StubBuilder.java --- /* * copyright Mockobjects.com 17-Oct-2003 * */ package com.mockobjects.dynamic; public interface StubBuilder { ExpectationBuilder isVoid(); ExpectationBuilder returns(Object returnValue); ExpectationBuilder willThrow(Throwable throwable); } --- NEW FILE: InvocationMockerBuilder.java --- /* * Created on 12-Nov-2003 */ package com.mockobjects.dynamic; public class InvocationMockerBuilder implements StubBuilder, ExpectationBuilder { private InvocationMocker mocker; public InvocationMockerBuilder(InvocationMocker mocker) { this.mocker = mocker; } public ExpectationBuilder isVoid() { mocker.setStub(new VoidStub()); return this; } public ExpectationBuilder returns(Object returnValue) { mocker.setStub(new ReturnStub(returnValue)); return this; } public ExpectationBuilder willThrow(Throwable throwable) { mocker.setStub(new ThrowStub(throwable)); return this; } } Index: InvocationMocker.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/InvocationMocker.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- InvocationMocker.java 29 Oct 2003 22:11:35 -0000 1.7 +++ InvocationMocker.java 13 Nov 2003 00:58:07 -0000 1.8 @@ -62,4 +62,8 @@ matchers.add(matcher); return this; } + + public void setStub(Stub stub) { + this.stub = stub; + } } Index: DynaMock.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/dynamic/DynaMock.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- DynaMock.java 12 Nov 2003 20:38:47 -0000 1.3 +++ DynaMock.java 13 Nov 2003 00:58:07 -0000 1.4 @@ -28,9 +28,9 @@ coreMock.verify(); } - public MethodExpectation method(String methodName, Object arg1, Object arg2) { + public StubBuilder method(String methodName, Object arg1, Object arg2) { InvocationMocker mocker = new InvocationMocker(methodName, C.eq(arg1, arg2), new VoidStub()); coreMock.add(mocker); - return new MethodExpectation(mocker); + return new InvocationMockerBuilder(mocker); } } --- MethodExpectation.java DELETED --- |
From: Steve F. <sm...@us...> - 2003-11-13 00:58:11
|
Update of /cvsroot/mockobjects/mockobjects-java/src/core/test/mockobjects/dynamic In directory sc8-pr-cvs1:/tmp/cvs-serv19664/src/core/test/mockobjects/dynamic Added Files: InvocationMockerBuilderTest.java Removed Files: MethodExpectationTest.java Log Message: changed name of MethodExpectation to InvocationMockerBuilder Added stub assignment builder --- NEW FILE: InvocationMockerBuilderTest.java --- /* * Copyright mockobjects.com 17-Oct-2003 */ package test.mockobjects.dynamic; import junit.framework.TestCase; import com.mockobjects.ExpectationValue; import com.mockobjects.dynamic.*; import com.mockobjects.util.Verifier; public class InvocationMockerBuilderTest extends TestCase { public class MockInvocationMocker extends InvocationMocker { public MockInvocationMocker() { super(new InvocationMatcher[0], new VoidStub()); } public ExpectationValue setStubType = new ExpectationValue("setStub type"); public void setStub(Stub stub) { setStubType.setActual(stub.getClass()); } public void verifyExpectations() { Verifier.verifyObject(this); } } private MockInvocationMocker mocker = new MockInvocationMocker(); private InvocationMockerBuilder builder = new InvocationMockerBuilder(mocker); public void testIsVoidSetsVoidStub() { mocker.setStubType.setExpected(VoidStub.class); assertNotNull("Should be expectation builder", builder.isVoid()); mocker.verifyExpectations(); } public void testReturnsSetsReturnStub() { mocker.setStubType.setExpected(ReturnStub.class); assertNotNull("Should be expectation builder", builder.returns("return value")); mocker.verifyExpectations(); } public void testThrowsSetsThrowStub() { mocker.setStubType.setExpected(ThrowStub.class); assertNotNull("Should be expectation builder", builder.willThrow(new Exception("thrown value"))); mocker.verifyExpectations(); } } --- MethodExpectationTest.java DELETED --- |
From: Steve F. <sm...@us...> - 2003-11-12 21:26:38
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop In directory sc8-pr-cvs1:/tmp/cvs-serv11515/talks/fruitshop/src/com/mockobjects/talks/fruitshop Modified Files: DirectoryTest.java Added Files: Directory.java Log Message: first test --- NEW FILE: Directory.java --- /* * Mockobjects.com 12-Nov-2003 */ package com.mockobjects.talks.fruitshop; public class Directory { public Object findCheapestFruit(String fruitname) { return null; } } Index: DirectoryTest.java =================================================================== RCS file: /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop/DirectoryTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DirectoryTest.java 12 Nov 2003 21:18:07 -0000 1.1 +++ DirectoryTest.java 12 Nov 2003 21:26:35 -0000 1.2 @@ -7,5 +7,9 @@ public class DirectoryTest extends TestCase { - + public void testReturnsNullWhenHasNoShops() { + Directory directory = new Directory(); + + assertNull("No shop returned", directory.findCheapestFruit("orange")); + } } |
From: Steve F. <sm...@us...> - 2003-11-12 21:18:10
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop In directory sc8-pr-cvs1:/tmp/cvs-serv9549/talks/fruitshop/src/com/mockobjects/talks/fruitshop Added Files: DirectoryTest.java Log Message: --- NEW FILE: DirectoryTest.java --- /* * Copyright mockobjects.com 12-Nov-2003 */ package com.mockobjects.talks.fruitshop; import junit.framework.TestCase; public class DirectoryTest extends TestCase { } |
From: Steve F. <sm...@us...> - 2003-11-12 21:18:01
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks In directory sc8-pr-cvs1:/tmp/cvs-serv9442/talks/fruitshop/src/com/mockobjects/talks Log Message: Directory /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks added to the repository |
From: Steve F. <sm...@us...> - 2003-11-12 21:18:01
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop In directory sc8-pr-cvs1:/tmp/cvs-serv9442/talks/fruitshop/src/com/mockobjects/talks/fruitshop Log Message: Directory /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects/talks/fruitshop added to the repository |
From: Steve F. <sm...@us...> - 2003-11-12 21:18:00
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects In directory sc8-pr-cvs1:/tmp/cvs-serv9442/talks/fruitshop/src/com/mockobjects Log Message: Directory /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com/mockobjects added to the repository |
From: Steve F. <sm...@us...> - 2003-11-12 21:18:00
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com In directory sc8-pr-cvs1:/tmp/cvs-serv9442/talks/fruitshop/src/com Log Message: Directory /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/src/com added to the repository |
From: Steve F. <sm...@us...> - 2003-11-12 21:16:02
|
Update of /cvsroot/mockobjects/mockobjects_education/talks/fruitshop/lib In directory sc8-pr-cvs1:/tmp/cvs-serv9018/talks/fruitshop/lib Added Files: .keepit Log Message: --- NEW FILE: .keepit --- |