public SourcedProcessTest(ITestOutputHelper output)
        {
            var converter = new Converter(output);

            Console.SetOut(converter);

            _world = World.StartWithDefaults("five-step-process-test");

            var queue = new AsyncMessageQueue(null);

            _exchange   = new LocalExchange(queue);
            _dispatcher = new MockJournalDispatcher();
            _journal    = new InMemoryJournal <string>(_dispatcher, _world);

            _sourcedTypeRegistry = new SourcedTypeRegistry(_world);

            RegisterSourcedTypes <FiveStepSendingSourcedProcess>();
            RegisterSourcedTypes <FiveStepEmittingSourcedProcess>();

            _exchangeReceivers = new ExchangeReceivers();
            _exchangeSender    = new LocalExchangeSender(queue);

            var processTypeRegistry = new ProcessTypeRegistry(_world);

            processTypeRegistry.Register(new SourcedProcessInfo <FiveStepSendingSourcedProcess, PorcessObjectState>(nameof(FiveStepSendingSourcedProcess), _exchange, _sourcedTypeRegistry));
            processTypeRegistry.Register(new SourcedProcessInfo <FiveStepEmittingSourcedProcess, PorcessObjectState>(nameof(FiveStepEmittingSourcedProcess), _exchange, _sourcedTypeRegistry));

            RegisterExchangeCoveys();
        }
Beispiel #2
0
        public EventSourcedTest(ITestOutputHelper output)
        {
            var converter = new Converter(output);

            Console.SetOut(converter);

            var testWorld = TestWorld.StartWithDefaults("test-es");

            _world = testWorld.World;

            _dispatcher = new MockJournalDispatcher();

            var entryAdapterProvider = EntryAdapterProvider.Instance(_world);

            entryAdapterProvider.RegisterAdapter(new Test1HappenedAdapter());
            entryAdapterProvider.RegisterAdapter(new Test2HappenedAdapter());
            entryAdapterProvider.RegisterAdapter(new Test3HappenedAdapter());

            var journal = _world.ActorFor <IJournal <string> >(() => new InMemoryJournalActor <string>(_dispatcher));

            var registry = new SourcedTypeRegistry(_world);

            registry.Register(Info.RegisterSourced <TestEventSourcedEntity>(journal));
            registry.Register(Info.RegisterSourced <ProductEntity>(journal));
            registry.Register(Info.RegisterSourced <ProductParent>(journal));
            registry.Register(Info.RegisterSourced <ProductGrandparent>(journal));

            _result = new Result();
            _entity = _world.ActorFor <IEntity>(() => new TestEventSourcedEntity(_result));
        }
Beispiel #3
0
        public CommandSourcedTest(ITestOutputHelper output)
        {
            var converter = new Converter(output);

            Console.SetOut(converter);

            _world = World.StartWithDefaults("test-cs");

            _dispatcher = new MockJournalDispatcher();

            _journal = _world.ActorFor <IJournal <string> >(() => new InMemoryJournalActor <string>(_dispatcher));

            _registry = new SourcedTypeRegistry(_world);
            _registry.Register(Info.RegisterSourced <TestCommandSourcedEntity>(_journal));
            _registry.Info <TestCommandSourcedEntity>()
            ?.RegisterEntryAdapter(new DoCommand1Adapter())
            .RegisterEntryAdapter(new DoCommand2Adapter())
            .RegisterEntryAdapter(new DoCommand3Adapter());

            _result = new Result();
            _entity = _world.ActorFor <IEntity>(() => new TestCommandSourcedEntity(_result));
        }
Beispiel #4
0
 /// <summary>
 /// Construct my default state.
 /// </summary>
 /// <param name="processName">The name of the current process</param>
 /// <param name="exchange">The <see cref="IExchange"/></param>
 /// <param name="registry">The <see cref="SourcedTypeRegistry"/> used by the <see cref="SourcedProcess{T}"/></param>
 public SourcedProcessInfo(string processName, IExchange exchange, SourcedTypeRegistry registry) : base(typeof(TProcess), processName, exchange)
     => Registry = registry;