public void StartTest() { var service = _container.GetService <ISMService>(); var param = new SMParametersCollection(); param.Add("int", "5"); param.Add("str", "str"); var sm = service.Start <StateMachine4Test>(param, Definition); Assert.IsNotNull(sm); Assert.AreEqual(sm.Context.TestPropInt, 5); Assert.AreEqual(sm.Context.TestPropStr, "str"); var paramPush = new SMParametersCollection(); paramPush.Add("TargetState", "state2"); service.Push(sm, paramPush); Assert.IsTrue(sm.CurrentState.id == "state2"); var paramPush2 = new SMParametersCollection(); paramPush2.Add("TargetState", "state3"); service.Push(sm, paramPush2); Assert.IsTrue(sm.CurrentState.id == "state3"); Assert.AreEqual(sm.Context.TestPropInt, 15); }
static void Main(string[] args) { var serviceCollection = new ServiceCollection(); serviceCollection.AddSingleton <ISMService, SMService>(); serviceCollection.AddSingleton <IPersistenceService>(_ => new DataContractPersistenceService(new List <string>() { "IoC.ExampleApp" }, _)); serviceCollection.AddTransient <IStateProcessor, StateProcessor>(); serviceCollection.AddSingleton <ISMFactory, SMFactory>(); serviceCollection.AddSingleton <IActionFabric, ActionFabric>(); serviceCollection.AddSingleton <ITriggerFabric, TriggerFabric>(); serviceCollection.AddTransient <IStateMachine, GuessStateMachine>(); serviceCollection.AddTransient <GuessStateMachine>(); serviceCollection.AddTransient <InitContext>(); serviceCollection.AddTransient <CheckNumber>(); serviceCollection.AddTransient <GuessOKTrigger>(); _container = serviceCollection.BuildServiceProvider(); var smService = _container.GetRequiredService <ISMService>(); var sm = smService.Start <GuessStateMachine>(null, GuessStateMachine.GetDefinition()); Console.WriteLine(sm.ToString()); //Console.WriteLine(sm.Context.Number); smService.Push(sm, null); while (!sm.Finished) { var str = Console.ReadLine(); int i = -1; if (int.TryParse(str, out i)) { var param = new SMParametersCollection(); param.Add("EnteredNumber", i); smService.Push(sm, param); Console.WriteLine(sm.Context.Result); } else { Console.WriteLine("Error!"); } Console.WriteLine(sm.ToString()); } var persistance = _container.GetRequiredService <IPersistenceService>(); Console.WriteLine(persistance.To(sm)); Console.ReadKey(); }
public void NoTrueTriggerTest() { var service = _container.GetService <ISMService>(); var sm = service.Start <StateMachine4Test>(null, Definition); var paramPush = new SMParametersCollection(); paramPush.Add("TargetState", "s200"); service.Push(sm, paramPush); }