Exemple #1
0
        public Process_actor_should_execute_async_processes_with_block(ITestOutputHelper output)
        {
            var logger  = new XUnitAutoTestLoggerConfiguration(output).CreateLogger();
            var creator = new AsyncLongRunningProcessManagerFactory();

            _localAkkaEventBusTransport = Sys.InitLocalTransportExtension().Transport;
            var blackHole = Sys.ActorOf(BlackHoleActor.Props);

            var messageProcessActor = Sys.ActorOf(Props.Create(() => new HandlersPipeActor(new HandlersDefaultProcessor(), blackHole)));

            _processId = Guid.NewGuid().ToString();

            var container = new ContainerBuilder();

            container.Register <ProcessStateActor <TestState> >(c =>
                                                                new ProcessStateActor <TestState>(CommandAggregateHandler.New <ProcessStateAggregate <TestState> >(),
                                                                                                  new EachMessageSnapshotsPersistencePolicy(),
                                                                                                  AggregateFactory.Default,
                                                                                                  AggregateFactory.Default,
                                                                                                  messageProcessActor));
            Sys.AddDependencyResolver(new AutoFacDependencyResolver(container.Build(), Sys));
            Sys.AttachSerilogLogging(logger);
            //for process state retrival
            var processStateActor = Sys.ActorOf(Props.Create(() => new ProcessStateHubActor <TestState>(new DefaultRecycleConfiguration())), typeof(TestState).BeautyName() + "_Hub");
            var name = EntityActorName.New <ProcessStateAggregate <TestState> >(_processId).Name;

            _processActor = ActorOfAsTestActorRef(() => new ProcessActor <TestState>(new AsyncLongRunningProcess(), creator),
                                                  name);
        }
        public virtual void Setup(BenchmarkContext context)
        {
            _counter = context.GetCounter(TotalCommandsExecutedCounter);
            var aggregateId = Guid.NewGuid().ToString();

            _commands = CreateAggregatePlan(100, aggregateId).ToArray();


            _actorSystem = ActorSystem.Create("test", _actorSystemConfig);
            _actorSystem.InitLocalTransportExtension();
            _actorSystem.InitDomainEventsSerialization(new EventsAdaptersCatalog());
            var log = new XUnitAutoTestLoggerConfiguration(_testOutputHelper, LogEventLevel.Warning, GetType().Name).CreateLogger();

            _actorSystem.AttachSerilogLogging(log);

            var dummy = _actorSystem.ActorOf <CustomHandlersActorDummy>();

            _aggregateActor = _actorSystem.ActorOf(Props.Create(
                                                       () => new AggregateActor <Balloon>(new BalloonCommandHandler(),
                                                                                          new EachMessageSnapshotsPersistencePolicy(),
                                                                                          AggregateFactory.Default,
                                                                                          AggregateFactory.Default,
                                                                                          dummy)),
                                                   EntityActorName.New <Balloon>(aggregateId).ToString());
        }
        public SchedulerActorTests(ITestOutputHelper helper)
        {
            var containerBuilder = new ContainerBuilder();
            var log = new XUnitAutoTestLoggerConfiguration(helper, LogEventLevel.Verbose, this.GetType().Name).CreateLogger();

            containerBuilder.RegisterInstance <ILogger>(log);
            var publisherMoq = new Mock <IPublisher>();

            containerBuilder.RegisterInstance(publisherMoq.Object);

            Sys.AddDependencyResolver(new AutoFacDependencyResolver(containerBuilder.Build(), Sys));
            Sys.InitLocalTransportExtension();
            var ext = Sys.InitSchedulingExtension(new InMemoryQuartzConfig(), log, new Mock <IPublisher>().Object, new Mock <ICommandExecutor>().Object);

            _scheduler       = ext.SchedulingActor;
            _quartzScheduler = ext.Scheduler;
        }
        public async Task It_fires_after_node_restart()
        {
            var logger = new XUnitAutoTestLoggerConfiguration(_testOutputHelper, LogEventLevel.Warning).CreateLogger();

            var node = await new FutureEventsFixture(_testOutputHelper, new PersistedQuartzConfig())
                       .UseSqlPersistence()
                       .CreateNode(logger);

            var cmd = new ScheduleEventInFutureCommand(BusinessDateTime.UtcNow.AddSeconds(5), Guid.NewGuid().ToString(), "test value");

            await node.Execute(cmd);

            await node.Stop();

            node = await new FutureEventsFixture(_testOutputHelper, new PersistedQuartzConfig(), false).UseSqlPersistence(false).CreateNode();
            _testOutputHelper.WriteLine("starting waiter creation");
            var res = await node.NewWaiter(TimeSpan.FromSeconds(30))
                      .Expect <FutureEventOccuredEvent>(e => e.SourceId == cmd.AggregateId)
                      .Create();

            var evt = res.Message <FutureEventOccuredEvent>();

            Assert.True(evt.CreatedTime - cmd.RaiseTime <= TimeSpan.FromSeconds(2));
        }
Exemple #5
0
 public Given_instance_process_When_recovering(ITestOutputHelper output)
 {
     _logger = new XUnitAutoTestLoggerConfiguration(output).CreateLogger();
 }
Exemple #6
0
 public Given_processActor_When_valid_Transitions(ITestOutputHelper output)
 {
     _log = new XUnitAutoTestLoggerConfiguration(output).CreateLogger();
 }