Closed sageserpent-open closed 8 years ago
I'm not going to write any tests for this - it looks like the job is to create a sink interface to consume events booked in at a revision, and there is no fixed target for what the consequences of that consumption should be. Let's get on with building the thing over this spike and the following #24, then we'll see what needs to be tested.
I'm abandoning this spike as I've come to realise that the existing 'revise' method in 'World' is precisely the abstraction required to book in a revision - how obvious! :-) I have split out two sibling descendant classes from the old 'WorldImplementationCodeFactoring' class to keep the new world implementation out of the way of the existing reference and Redis-based implementations.
For now, the new implementation will be an in-memory one only. I will proceed with implementing it and find out as I go what abstractions need to be hived off, at the moment it's probably better as a big blob.
This is a prelude of #24, allowing tests to be written against a comparatively simpleminded implementation that uses the existing patch recorder and abstract event data storage. So this becomes a refactoring of the existing world implementations, wherein all state referring to abstract event datums is moved into the new incremental event recorder.