Ejemplo n.º 1
0
        public async Task Action_with_tail_returns_final_state()
        {
            // Arrange
            var host = new REstateHost();

            host.Agent().Configuration
            .RegisterConnector <ProcessAction>();

            var schematic = host.Agent()
                            .CreateSchematic <string, string>(
                schematicName: nameof(Action_with_tail_returns_final_state))
                            .WithState("Idle", idle => idle
                                       .AsInitialState())
                            .WithState("Processing", processing => processing
                                       .WithTransitionFrom("Idle", "Process")
                                       .WithAction <ProcessAction>())
                            .WithState("StillProcessing", stillProcessing => stillProcessing
                                       .WithTransitionFrom("Processing", "Continue"))
                            .WithState("Complete", complete => complete
                                       .WithTransitionFrom("StillProcessing", "Complete"));

            var engine  = host.Agent().GetStateEngine <string, string>();
            var machine = await engine.CreateMachineAsync(schematic);

            // Act
            var status = await machine.SendAsync("Process");

            // Assert
            Assert.Equal("Complete", status.State);
            Assert.Equal(3, status.CommitNumber);
        }
Ejemplo n.º 2
0
        public async Task ProvisioningTest()
        {
            var host = new REstateHost();

            var machine = await host.Agent()
                          .GetNaturalStateEngine()
                          .CreateMachineAsync <ProvisioningSystem>();

            var newState = await machine.SignalAsync(new ReserveSignal());

            newState = await machine.SignalAsync(new ReleaseSignal());

            newState = await machine.SignalAsync(new DeprovisionSignal());
        }
Ejemplo n.º 3
0
        public Task Given_a_new_host_with_custom_ComponentContainer(IComponentContainer componentContainer)
        {
            CurrentHost = new REstateHost(componentContainer);

            return(Task.CompletedTask);
        }
Ejemplo n.º 4
0
        public Task Given_a_new_host()
        {
            CurrentHost = new REstateHost();

            return(Task.CompletedTask);
        }