public void Start_should_wait_until_given_state_occurs(VostokApplicationState stateToAwait)
        {
            application = new Application();
            host        = new VostokHost(new TestHostSettings(application, SetupEnvironment));

            host.Start(stateToAwait);
            host.ApplicationState.Should().Match <VostokApplicationState>(state => state >= stateToAwait);

            host.Stop();
            host.ApplicationState.IsTerminal().Should().BeTrue();
        }
Exemplo n.º 2
0
        private void ChangeStateTo(VostokApplicationState newState, Exception error = null)
        {
            ApplicationState = newState;

            onApplicationStateChanged.Next(newState);

            if (error != null)
            {
                onApplicationStateChanged.Error(error);
            }
            else if (newState.IsTerminal())
            {
                onApplicationStateChanged.Complete();
            }
        }
        public async Task Start_should_wait_until_given_state_occurs(VostokApplicationState stateToAwait)
        {
            var identifier        = ("test", "test");
            var workerApplication = new VostokMultiHostApplicationSettings(new NeverEndingApplication(), identifier, SetupMultiHostApplication);

            vostokMultiHost = new VostokMultiHost(new VostokMultiHostSettings(SetupMultiHost), workerApplication);

            await vostokMultiHost.StartAsync();

            await vostokMultiHost.GetApplication(identifier).StartAsync(stateToAwait);

            vostokMultiHost.GetApplication(identifier).ApplicationState.Should().Match <VostokApplicationState>(state => state >= stateToAwait);

            await vostokMultiHost.StopApplicationAsync(identifier);

            vostokMultiHost.GetApplication(identifier).ApplicationState.IsTerminal().Should().BeTrue();

            await vostokMultiHost.StopAsync();
        }
Exemplo n.º 4
0
 private VostokApplicationRunResult ReturnResult(VostokApplicationState newState, Exception error = null)
 {
     ChangeStateTo(newState, error);
     return(new VostokApplicationRunResult(newState, error));
 }
 public VostokApplicationRunResult(VostokApplicationState state, [CanBeNull] Exception error = null)
 {
     State = state;
     Error = error;
 }
Exemplo n.º 6
0
 /// <inheritdoc cref="VostokHost.StartAsync"/>
 public static void Start([NotNull] this VostokHost vostokHost, VostokApplicationState stateToAwait) =>
 vostokHost.StartAsync(stateToAwait).GetAwaiter().GetResult();
 /// <summary>
 /// Returns whether given <paramref name="state"/> is terminal (a final state of the <see cref="VostokHost"/>.
 /// </summary>
 public static bool IsTerminal(this VostokApplicationState state) => TerminalStates.Contains(state);