DynamicReturnValue - yes, I'd looked at this, but didn't quite see how to make it do what I want - I shall read the instructions on it more carefully, thanks.
boo - What the SaladStore would typically do is persist the object (possibly setting an Id on it, but that being a persistance thing it's not really important to the 'makeFruitSalad' method).
I'm testing the 'makeFruitSalad' method - and I don't want the SaladStore to hit the database, it can mock the behaviour by simply returning the same object it was given.
Perhaps I'm coming at this the wrong way, and I should capture and verify the object passed to the fake salad store, rather than the salad returned from the makeSalad method...