public static ICommandDispatcher RegisterMemoryObjectStore(this ICommandDispatcher commandDispatcherMock, ITime timeMock)
        {
            var memoryObjectStoreData = new MemoryObjectStore();

            commandDispatcherMock
            .Register(new MemoryListObjectKeysCommandHandler(memoryObjectStoreData))
            .Register(new MemoryRetrieveObjectCommandHandler(memoryObjectStoreData))
            .Register(new MemoryStoreObjectCommandHandler(timeMock, memoryObjectStoreData));

            return(commandDispatcherMock);
        }
        public override INakedObjectPersistor CreateObjectPersistor() {
            Log.Info("installing " + GetType().FullName);

            var inMemoryObjectStore = new MemoryObjectStore();
            var persistor = new ObjectStorePersistor {
                ObjectStore = inMemoryObjectStore,
                PersistAlgorithm = new DefaultPersistAlgorithm(),
                OidGenerator = SimpleOidGeneratorStart.HasValue ? new SimpleOidGenerator(SimpleOidGeneratorStart.Value) : new TimeBasedOidGenerator()
            };
            var identityMapImpl = new IdentityMapImpl {
                IdentityAdapterMap = identityAdapterMap,
                PocoAdapterMap = new CreateIfNullPocoAdapterDecorator(inMemoryObjectStore, pocoAdapterMap ?? new PocoAdapterHashMap())
            };
            inMemoryObjectStore.IdentityMap = identityMapImpl;
            persistor.IdentityMap = identityMapImpl;
            return persistor;
        }
 public CreateIfNullPocoAdapterDecorator(MemoryObjectStore objectStore, IPocoAdapterMap decorated) {
     this.objectStore = objectStore;
     this.decorated = decorated;
 }