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); }
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()); }