コード例 #1
0
ファイル: FlowTakeSpec.cs プロジェクト: rogeralsing/akka.net
        public FlowTakeSpec(ITestOutputHelper helper) : base(helper)
        {
            var settings = ActorMaterializerSettings.Create(Sys).WithInputBuffer(2, 16);
            Materializer = ActorMaterializer.Create(Sys, settings);

            MuteDeadLetters(typeof(OnNext), typeof(OnComplete), typeof(RequestMore));
        }
コード例 #2
0
ファイル: FlowSelectSpec.cs プロジェクト: Micha-kun/akka.net
        public FlowSelectSpec(ITestOutputHelper output) : base(output)
        {
            Sys.Settings.InjectTopLevelFallback(ActorMaterializer.DefaultConfig());
            _settings = ActorMaterializerSettings.Create(Sys)
                .WithInputBuffer(initialSize: 2, maxSize: 16);

            _materializer = Sys.Materializer(_settings);
        }
コード例 #3
0
 public void Setup(BenchmarkContext context)
 {
     _actorSystem = ActorSystem.Create("MaterializationBenchmark",
         ConfigurationFactory.FromResource<AkkaSpec>("Akka.Streams.TestKit.Tests.reference.conf"));
     _actorSystem.Settings.InjectTopLevelFallback(ActorMaterializer.DefaultConfig());
     _materializerSettings =
         ActorMaterializerSettings.Create(_actorSystem).WithDispatcher("akka.test.stream-dispatcher");
     _materializer = _actorSystem.Materializer(_materializerSettings);
 }
コード例 #4
0
ファイル: FlowLogSpec.cs プロジェクト: rogeralsing/akka.net
        public FlowLogSpec(ITestOutputHelper helper) : base("akka.loglevel = DEBUG", helper)
        {
            var settings = ActorMaterializerSettings.Create(Sys).WithInputBuffer(2, 16);
            Materializer = ActorMaterializer.Create(Sys, settings);

            var p = CreateTestProbe();
            Sys.EventStream.Subscribe(p.Ref, typeof(object));
            LogProbe = p;
        }
コード例 #5
0
 public FlowSplitAfterSpec(ITestOutputHelper helper) : base(helper)
 {
     var settings =
         ActorMaterializerSettings.Create(Sys)
             .WithInputBuffer(2, 2)
             .WithSubscriptionTimeoutSettings(
                 new StreamSubscriptionTimeoutSettings(
                     StreamSubscriptionTimeoutTerminationMode.CancelTermination, TimeSpan.FromSeconds(1)));
     Materializer = ActorMaterializer.Create(Sys, settings);
 }
コード例 #6
0
        public void Setup(BenchmarkContext context)
        {
            _actorSystem = ActorSystem.Create("FileSourcesBenchmark");
            _materializer = _actorSystem.Materializer();

            _file = CreateFile();

            _fileChannelSource = FileIO.FromFile(_file, BufferSize);
            _fileInputStreamSource = StreamConverters.FromInputStream(() => File.OpenRead(_file.FullName), BufferSize);
            _ioSourceLinesIterator = Source.FromEnumerator(() => File.ReadLines(_file.FullName).Select(ByteString.FromString).GetEnumerator());
        }
コード例 #7
0
        public FileSourceSpec(ITestOutputHelper helper) : base(Utils.UnboundedMailboxConfig, helper)
        {
            Sys.Settings.InjectTopLevelFallback(ActorMaterializer.DefaultConfig());
            var settings = ActorMaterializerSettings.Create(Sys).WithDispatcher("akka.actor.default-dispatcher");
            _materializer = Sys.Materializer(settings);

            var sb = new StringBuilder(6000);
            foreach (var character in new[] { "a", "b", "c", "d", "e", "f" })
                for (var i = 0; i < 1000; i++)
                    sb.Append(character);

            _testText = sb.ToString();
        }
コード例 #8
0
ファイル: FileSinkSpec.cs プロジェクト: Micha-kun/akka.net
        public FileSinkSpec(ITestOutputHelper helper) : base(Utils.UnboundedMailboxConfig, helper)
        {
            Sys.Settings.InjectTopLevelFallback(ActorMaterializer.DefaultConfig());
            var settings = ActorMaterializerSettings.Create(Sys).WithDispatcher("akka.actor.default-dispatcher");
            _materializer = Sys.Materializer(settings);

            foreach (var character in new[] { "a", "b", "c", "d", "e", "f" })
            {
                var line = "";
                for (var i = 0; i < 1000; i++)
                    line += character;
                // don't use Environment.NewLine - it can contain more than one byte length marker, 
                // causing tests to fail due to incorrect number of bytes in input string
                line += "\n";
                _testLines.Add(line);
            }

            _testByteStrings = _testLines.Select(ByteString.FromString).ToList();
        }
コード例 #9
0
        public void Setup(BenchmarkContext context)
        {
            _actorSystem = ActorSystem.Create("MergeManyBenchmark",
                ConfigurationFactory.FromResource<ScriptedTest>("Akka.Streams.TestKit.Tests.reference.conf"));
            _actorSystem.Settings.InjectTopLevelFallback(ActorMaterializer.DefaultConfig());
            _materializerSettings = ActorMaterializerSettings.Create(_actorSystem).WithDispatcher("akka.test.stream-dispatcher");
            _materializer = _actorSystem.Materializer(_materializerSettings);

            var takeSource = CreateSource(NumberOfElements);

            var singleSubSource = CreateSource(NumberOfElements);
            var singleSource = Source.Repeat(0).Take(1).MergeMany(1, _ => singleSubSource);

            var tenSubSources = CreateSource(NumberOfElements/10);
            var tenSources = Source.Repeat(0).Take(10).MergeMany(10, _ => tenSubSources);

            _takeGraph = ToSource(takeSource);
            _singleGraph = ToSource(singleSource);
            _tenGraph = ToSource(tenSources);
        }
コード例 #10
0
ファイル: TickSourceSpec.cs プロジェクト: Micha-kun/akka.net
 public TickSourceSpec()
 {
     var settings = ActorMaterializerSettings.Create(Sys);
     Materializer = ActorMaterializer.Create(Sys, settings);
 }
コード例 #11
0
        public void A_Flow_with_multiple_subscribers_FanOutBox_must_support_slow_subscriber_with_fan_out_2()
        {
            var setup = new ChainSetup <string, string, NotUsed>(Identity, Settings.WithInputBuffer(1, 1),
                                                                 (settings, factory) => ActorMaterializer.Create(factory, settings),
                                                                 (source, materializer) => ToFanoutPublisher(source, materializer, 2), this);
            var downstream2 = this.CreateManualSubscriberProbe <string>();

            setup.Publisher.Subscribe(downstream2);
            var downstream2Subscription = downstream2.ExpectSubscription();

            setup.DownstreamSubscription.Request(5);
            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1); // because initialInputBufferSize=1

            setup.UpstreamSubscription.SendNext("element1");
            setup.Downstream.ExpectNext("element1");

            setup.UpstreamSubscription.ExpectRequest(1);
            setup.UpstreamSubscription.SendNext("element2");
            setup.Downstream.ExpectNext("element2");
            setup.UpstreamSubscription.ExpectRequest(1);
            setup.UpstreamSubscription.SendNext("element3");
            // downstream2 has not requested anything, fan-out buffer 2
            setup.Downstream.ExpectNoMsg(Dilated(TimeSpan.FromMilliseconds(100)));

            downstream2Subscription.Request(2);
            setup.Downstream.ExpectNext("element3");
            downstream2.ExpectNext("element1");
            downstream2.ExpectNext("element2");
            downstream2.ExpectNoMsg(Dilated(TimeSpan.FromMilliseconds(100)));

            setup.UpstreamSubscription.Request(1);
            setup.UpstreamSubscription.SendNext("element4");
            setup.Downstream.ExpectNext("element4");

            downstream2Subscription.Request(2);
            downstream2.ExpectNext("element3");
            downstream2.ExpectNext("element4");

            setup.UpstreamSubscription.SendComplete();
            setup.Downstream.ExpectComplete();
            downstream2.ExpectComplete();
        }
コード例 #12
0
        public void A_Flow_must_deliver_error_signal_when_publisher_immediately_fails()
        {
            var setup = new ChainSetup <string, string, NotUsed>(Identity, Settings,
                                                                 (settings, factory) => ActorMaterializer.Create(factory, settings), ToPublisher, this);
            var weirdError = new Exception("weird test exception");

            setup.UpstreamSubscription.SendError(weirdError);
            setup.Downstream.ExpectError().Should().Be(weirdError);
        }
コード例 #13
0
 protected AllPersistenceIdsSpec(Config config, ITestOutputHelper output) : base(config, output: output)
 {
     _materializer = Sys.Materializer();
     _queries = Sys.ReadJournalFor<SqlReadJournal>(SqlReadJournal.Identifier);
 }
コード例 #14
0
        public void A_Flow_must_request_more_elements_from_upstream_when_downstream_requests_more_elements()
        {
            var setup = new ChainSetup <string, string, NotUsed>(Identity, Settings,
                                                                 (settings, factory) => ActorMaterializer.Create(factory, settings), ToPublisher, this);

            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, Settings.MaxInputBufferSize);
            setup.DownstreamSubscription.Request(1);
            setup.Upstream.ExpectNoMsg(TimeSpan.FromMilliseconds(100));
            setup.DownstreamSubscription.Request(2);
            setup.Upstream.ExpectNoMsg(TimeSpan.FromMilliseconds(100));
            setup.UpstreamSubscription.SendNext("a");
            setup.Downstream.ExpectNext("a");
            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1);
            setup.Upstream.ExpectNoMsg(TimeSpan.FromMilliseconds(100));
            setup.UpstreamSubscription.SendNext("b");
            setup.UpstreamSubscription.SendNext("c");
            setup.UpstreamSubscription.SendNext("d");
            setup.Downstream.ExpectNext("b");
            setup.Downstream.ExpectNext("c");
        }
コード例 #15
0
        public void A_Flow_must_cancel_upstream_when_single_subscriber_cancels_subscription_while_receiving_data()
        {
            var setup = new ChainSetup <string, string, NotUsed>(Identity, Settings.WithInputBuffer(1, 1),
                                                                 (settings, factory) => ActorMaterializer.Create(factory, settings), ToPublisher, this);

            setup.DownstreamSubscription.Request(5);
            setup.UpstreamSubscription.ExpectRequest(1);
            setup.UpstreamSubscription.SendNext("test");
            setup.UpstreamSubscription.ExpectRequest(1);
            setup.UpstreamSubscription.SendNext("test2");
            setup.Downstream.ExpectNext("test");
            setup.Downstream.ExpectNext("test2");
            setup.DownstreamSubscription.Cancel();

            // because of the "must cancel its upstream Subscription if its last downstream Subscription has been canceled" rule
            setup.UpstreamSubscription.ExpectCancellation();
        }
コード例 #16
0
 private static IPublisher <TOut> ToFanoutPublisher <TOut, TMat>(Source <TOut, TMat> source,
                                                                 ActorMaterializer materializer, int elasticity)
 =>
 source.RunWith(
     Sink.AsPublisher <TOut>(true).WithAttributes(Attributes.CreateInputBuffer(elasticity, elasticity)),
     materializer);
コード例 #17
0
 private static (ISubscriber <TIn>, IPublisher <TOut>) MaterializeIntoSubscriberAndPublisher <TIn, TOut, TMat>(
     Flow <TIn, TOut, TMat> flow, ActorMaterializer materializer)
 => flow.RunWith(Source.AsSubscriber <TIn>(), Sink.AsPublisher <TOut>(false), materializer);
コード例 #18
0
 private static IPublisher <TOut> ToPublisher <TOut, TMat>(Source <TOut, TMat> source,
                                                           ActorMaterializer materializer) => source.RunWith(Sink.AsPublisher <TOut>(false), materializer);
コード例 #19
0
        public void A_broken_Flow_must_cancel_upstream_and_call_onError_on_current_and_future_downstream_subscribers_if_an_internal_error_occurs()
        {
            var setup = new ChainSetup <string, string, NotUsed>(FaultyFlow <string, string, string>, Settings.WithInputBuffer(1, 1),
                                                                 (settings, factory) => ActorMaterializer.Create(factory, settings),
                                                                 (source, materializer) => ToFanoutPublisher(source, materializer, 16), this);

            Action <TestSubscriber.ManualProbe <string> > checkError = sprobe =>
            {
                var error = sprobe.ExpectError();
                error.Should().BeOfType <AbruptTerminationException>();
                error.Message.Should().StartWith("Processor actor");
            };

            var downstream2 = this.CreateManualSubscriberProbe <string>();

            setup.Publisher.Subscribe(downstream2);
            var downstream2Subscription = downstream2.ExpectSubscription();

            setup.DownstreamSubscription.Request(5);
            downstream2Subscription.Request(5);
            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1);
            setup.UpstreamSubscription.SendNext("a1");
            setup.Downstream.ExpectNext("a1");
            downstream2.ExpectNext("a1");

            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1);
            setup.UpstreamSubscription.SendNext("a2");
            setup.Downstream.ExpectNext("a2");
            downstream2.ExpectNext("a2");

            var filters = new EventFilterBase[]
            {
                new ErrorFilter(typeof(NullReferenceException)),
                new ErrorFilter(typeof(IllegalStateException)),
                new ErrorFilter(typeof(PostRestartException)),// This is thrown because we attach the dummy failing actor to toplevel
            };

            try
            {
                Sys.EventStream.Publish(new Mute(filters));

                setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1);
                setup.UpstreamSubscription.SendNext("a3");
                setup.UpstreamSubscription.ExpectCancellation();

                // IllegalStateException terminated abruptly
                checkError(setup.Downstream);
                checkError(downstream2);

                var downstream3 = this.CreateManualSubscriberProbe <string>();
                setup.Publisher.Subscribe(downstream3);
                downstream3.ExpectSubscription();
                // IllegalStateException terminated abruptly
                checkError(downstream3);
            }
            finally
            {
                Sys.EventStream.Publish(new Unmute(filters));
            }
        }
コード例 #20
0
        public void A_Flow_with_multiple_subscribers_FanOutBox_must_call_future_subscribers_OnError_when_all_subscriptions_were_cancelled()
        {
            var setup = new ChainSetup <string, string, NotUsed>(Identity, Settings.WithInputBuffer(1, 1),
                                                                 (settings, factory) => ActorMaterializer.Create(factory, settings),
                                                                 (source, materializer) => ToFanoutPublisher(source, materializer, 16), this);

            // make sure stream is initialized before canceling downstream
            Thread.Sleep(100);

            setup.UpstreamSubscription.ExpectRequest(1);
            setup.DownstreamSubscription.Cancel();
            setup.UpstreamSubscription.ExpectCancellation();

            var downstream2 = this.CreateManualSubscriberProbe <string>();

            setup.Publisher.Subscribe(downstream2);
            // IllegalStateException shut down
            downstream2.ExpectSubscriptionAndError().Should().BeAssignableTo <IllegalStateException>();
        }
コード例 #21
0
 public PublisherSinkSpec(ITestOutputHelper helper) : base(helper)
 {
     var settings = ActorMaterializerSettings.Create(Sys);
     Materializer = ActorMaterializer.Create(Sys, settings);
 }
コード例 #22
0
ファイル: SelectTest.cs プロジェクト: marcpiechura/akka.net
        public override IProcessor <int?, int?> CreateIdentityProcessor(int bufferSize)
        {
            var materializer = ActorMaterializer.Create(System);

            return(Flow.Create <int?>().Select(x => x).Named("identity").ToProcessor().Run(materializer));
        }
コード例 #23
0
 public FlowSupervisionSpec(ITestOutputHelper helper) : base(helper)
 {
     Materializer = ActorMaterializer.Create(Sys);
 }
コード例 #24
0
ファイル: QueueSinkSpec.cs プロジェクト: yyp2003net/akka.net
 public QueueSinkSpec(ITestOutputHelper output) : base(output)
 {
     _materializer = Sys.Materializer();
 }
コード例 #25
0
 public FlowSkipWithinSpec(ITestOutputHelper helper) : base(helper)
 {
     Materializer = ActorMaterializer.Create(Sys);
 }
コード例 #26
0
        public BidiFlowSpec()
        {
            var settings = ActorMaterializerSettings.Create(Sys);

            Materializer = ActorMaterializer.Create(Sys, settings);
        }
コード例 #27
0
        public void A_Flow_with_multiple_subscribers_FanOutBox_must_call_future_subscribers_OnError_after_OnSubscribe_if_initial_upstream_was_completed()
        {
            var setup = new ChainSetup <string, string, NotUsed>(Identity, Settings.WithInputBuffer(1, 1),
                                                                 (settings, factory) => ActorMaterializer.Create(factory, settings),
                                                                 (source, materializer) => ToFanoutPublisher(source, materializer, 1), this);
            var downstream2 = this.CreateManualSubscriberProbe <string>();

            // don't link it just yet

            setup.DownstreamSubscription.Request(5);
            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1);
            setup.UpstreamSubscription.SendNext("a1");
            setup.Downstream.ExpectNext("a1");

            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1);
            setup.UpstreamSubscription.SendNext("a2");
            setup.Downstream.ExpectNext("a2");

            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1);

            // link now while an upstream element is already requested
            setup.Publisher.Subscribe(downstream2);
            var downstream2Subscription = downstream2.ExpectSubscription();

            setup.UpstreamSubscription.SendNext("a3");
            setup.UpstreamSubscription.SendComplete();
            setup.Downstream.ExpectNext("a3");
            setup.Downstream.ExpectComplete();

            downstream2.ExpectNoMsg(Dilated(TimeSpan.FromMilliseconds(100))); // as nothing was requested yet, fanOutBox needs to cache element in this case

            downstream2Subscription.Request(1);
            downstream2.ExpectNext("a3");
            downstream2.ExpectComplete();

            var downstream3 = this.CreateManualSubscriberProbe <string>();

            setup.Publisher.Subscribe(downstream3);
            downstream3.ExpectSubscription();
            downstream3.ExpectError().Should().BeOfType <NormalShutdownException>();
        }
コード例 #28
0
        public GraphStageTimersSpec(ITestOutputHelper helper) : base(helper)
        {
            var settings = ActorMaterializerSettings.Create(Sys);

            Materializer = ActorMaterializer.Create(Sys, settings);
        }
コード例 #29
0
ファイル: TimeoutsSpec.cs プロジェクト: Micha-kun/akka.net
 public TimeoutsSpec(ITestOutputHelper helper = null) : base(helper)
 {
     Materializer = ActorMaterializer.Create(Sys);
 }
コード例 #30
0
 public FlowIdleInjectSpec(ITestOutputHelper helper) : base(helper)
 {
     Settings     = ActorMaterializerSettings.Create(Sys).WithInputBuffer(2, 16);
     Materializer = ActorMaterializer.Create(Sys, Settings);
 }
コード例 #31
0
        public void A_Flow_with_multiple_subscribers_FanOutBox_must_be_unblocked_when_blocking_subscriber_cancels_subscription()
        {
            var setup = new ChainSetup <string, string, NotUsed>(Identity, Settings.WithInputBuffer(1, 1),
                                                                 (settings, factory) => ActorMaterializer.Create(factory, settings),
                                                                 (source, materializer) => ToFanoutPublisher(source, materializer, 1), this);
            var downstream2 = this.CreateManualSubscriberProbe <string>();

            setup.Publisher.Subscribe(downstream2);
            var downstream2Subscription = downstream2.ExpectSubscription();

            setup.DownstreamSubscription.Request(5);
            setup.UpstreamSubscription.ExpectRequest(1);
            setup.UpstreamSubscription.SendNext("firstElement");
            setup.Downstream.ExpectNext("firstElement");

            downstream2Subscription.Request(1);
            downstream2.ExpectNext("firstElement");
            setup.UpstreamSubscription.ExpectRequest(1);
            setup.UpstreamSubscription.SendNext("element2");

            setup.Downstream.ExpectNext("element2");
            setup.UpstreamSubscription.ExpectRequest(1);
            setup.UpstreamSubscription.SendNext("element3");
            setup.UpstreamSubscription.ExpectRequest(1);


            setup.Downstream.ExpectNoMsg(Dilated(TimeSpan.FromMilliseconds(200)));
            setup.Upstream.ExpectNoMsg(Dilated(TimeSpan.FromMilliseconds(200)));
            downstream2.ExpectNoMsg(Dilated(TimeSpan.FromMilliseconds(200)));

            // should unblock fanoutbox
            downstream2Subscription.Cancel();
            setup.Downstream.ExpectNext("element3");
            setup.UpstreamSubscription.SendNext("element4");
            setup.Downstream.ExpectNext("element4");

            setup.UpstreamSubscription.SendComplete();
            setup.Downstream.ExpectComplete();
        }
コード例 #32
0
 public FlowSupervisionSpec(ITestOutputHelper helper) : base(helper)
 {
     Materializer = ActorMaterializer.Create(Sys);
 }
コード例 #33
0
        public void A_Flow_with_multiple_subscribers_FanOutBox_must_support_incoming_subscriber_while_elements_were_requested_before()
        {
            var setup = new ChainSetup <string, string, NotUsed>(Identity, Settings.WithInputBuffer(1, 1),
                                                                 (settings, factory) => ActorMaterializer.Create(factory, settings),
                                                                 (source, materializer) => ToFanoutPublisher(source, materializer, 1), this);

            setup.DownstreamSubscription.Request(5);
            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1);
            setup.UpstreamSubscription.SendNext("a1");
            setup.Downstream.ExpectNext("a1");

            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1);
            setup.UpstreamSubscription.SendNext("a2");
            setup.Downstream.ExpectNext("a2");

            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1);

            // link now while an upstream element is already requested
            var downstream2 = this.CreateManualSubscriberProbe <string>();

            setup.Publisher.Subscribe(downstream2);
            var downstream2Subscription = downstream2.ExpectSubscription();

            // situation here:
            // downstream 1 now has 3 outstanding
            // downstream 2 has 0 outstanding

            setup.UpstreamSubscription.SendNext("a3");
            setup.Downstream.ExpectNext("a3");
            downstream2.ExpectNoMsg(Dilated(TimeSpan.FromMilliseconds(100))); // as nothing was requested yet, fanOutBox needs to cache element in this case

            downstream2Subscription.Request(1);
            downstream2.ExpectNext("a3");

            // d1 now has 2 outstanding
            // d2 now has 0 outstanding
            // buffer should be empty so we should be requesting one new element

            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1); // because of buffer size 1
        }
コード例 #34
0
 public FlowForeachSpec(ITestOutputHelper helper) : base(helper)
 {
     Materializer = ActorMaterializer.Create(Sys);
 }
コード例 #35
0
 public FlowForeachSpec(ITestOutputHelper helper) : base(helper)
 {
     Materializer = ActorMaterializer.Create(Sys);
 }
コード例 #36
0
        public TestPublisherSubscriberSpec(ITestOutputHelper output = null) : base(output)
        {
            var settings = ActorMaterializerSettings.Create(Sys).WithInputBuffer(initialSize: 2, maxSize: 2);

            Materializer = ActorMaterializer.Create(Sys, settings);
        }
コード例 #37
0
 public FlowSelectAsyncUnorderedSpec(ITestOutputHelper helper) : base(helper)
 {
     Materializer = ActorMaterializer.Create(Sys);
 }
コード例 #38
0
 public KeepGoingStageSpec(ITestOutputHelper helper = null) : base(helper)
 {
     Materializer = ActorMaterializer.Create(Sys);
 }
コード例 #39
0
 public OutputStreamSinkSpec(ITestOutputHelper helper) : base(Utils.UnboundedMailboxConfig, helper)
 {
     Sys.Settings.InjectTopLevelFallback(ActorMaterializer.DefaultConfig());
     var settings = ActorMaterializerSettings.Create(Sys).WithDispatcher("akka.actor.default-dispatcher");
     _materializer = Sys.Materializer(settings);
 }
コード例 #40
0
 public ActorRefSinkSpec(ITestOutputHelper output) : base(output)
 {
     materializer = Sys.Materializer();
 }
コード例 #41
0
        public void A_Flow_with_multiple_subscribers_FanOutBox_must_adapt_speed_to_the_currently_slowest_subscriber()
        {
            var setup = new ChainSetup <string, string, NotUsed>(Identity, Settings.WithInputBuffer(1, 1),
                                                                 (settings, factory) => ActorMaterializer.Create(factory, settings),
                                                                 (source, materializer) => ToFanoutPublisher(source, materializer, 1), this);
            var downstream2 = this.CreateManualSubscriberProbe <string>();

            setup.Publisher.Subscribe(downstream2);
            var downstream2Subscription = downstream2.ExpectSubscription();

            setup.DownstreamSubscription.Request(5);
            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1); // because initialInputBufferSize=1

            setup.UpstreamSubscription.SendNext("firstElement");
            setup.Downstream.ExpectNext("firstElement");

            setup.Upstream.ExpectRequest(setup.UpstreamSubscription, 1);
            setup.UpstreamSubscription.SendNext("element2");

            setup.Downstream.ExpectNoMsg(TimeSpan.FromSeconds(1));
            downstream2Subscription.Request(1);
            downstream2.ExpectNext("firstElement");

            setup.Downstream.ExpectNext("element2");

            downstream2Subscription.Request(1);
            downstream2.ExpectNext("element2");
        }
コード例 #42
0
 public FlowGroupedWithinSpec(ITestOutputHelper helper) : base(helper)
 {
     Settings = ActorMaterializerSettings.Create(Sys);
     Materializer = ActorMaterializer.Create(Sys, Settings);
 }
コード例 #43
0
 public SubscriberSourceSpec(ITestOutputHelper helper) : base(helper)
 {
     var settings = ActorMaterializerSettings.Create(Sys);
     Materializer = ActorMaterializer.Create(Sys, settings);
 }
コード例 #44
0
 public GraphBalanceSpec()
 {
     var settings = ActorMaterializerSettings.Create(Sys).WithInputBuffer(2, 16);
     Materializer = ActorMaterializer.Create(Sys, settings);
 }
コード例 #45
0
 public SubscriberSinkSpec(ITestOutputHelper helper = null) : base(helper)
 {
     var settings = ActorMaterializerSettings.Create(Sys).WithInputBuffer(2, 16);
     Materializer = ActorMaterializer.Create(Sys,settings);
 }
コード例 #46
0
 public FlowSelectManySpec(ITestOutputHelper output) : base(output)
 {
     settings = ActorMaterializerSettings.Create(Sys).WithInputBuffer(initialSize: 2, maxSize: 16);
     materializer = Sys.Materializer();
 }
コード例 #47
0
 public SourceSpec(ITestOutputHelper helper) : base(helper)
 {
     Materializer = ActorMaterializer.Create(Sys);
 }
コード例 #48
0
 public FlowSpec(ITestOutputHelper helper) : base(Config.WithFallback(ConfigurationFactory.FromResource <ScriptedTest>("Akka.Streams.TestKit.Tests.reference.conf")), helper)
 {
     Settings     = ActorMaterializerSettings.Create(Sys).WithInputBuffer(2, 2);
     Materializer = ActorMaterializer.Create(Sys, Settings);
 }
コード例 #49
0
ファイル: BidiFlowSpec.cs プロジェクト: Micha-kun/akka.net
 public BidiFlowSpec()
 {
     var settings = ActorMaterializerSettings.Create(Sys);
     Materializer = ActorMaterializer.Create(Sys, settings);
 }
コード例 #50
0
ファイル: TimeoutsSpec.cs プロジェクト: marcpiechura/akka.net
 public TimeoutsSpec(ITestOutputHelper helper = null) : base(helper)
 {
     Materializer = ActorMaterializer.Create(Sys);
 }
コード例 #51
0
 public GraphUnzipSpec(ITestOutputHelper helper) : base (helper)
 {
     var settings = ActorMaterializerSettings.Create(Sys).WithInputBuffer(2, 16);
     Materializer = ActorMaterializer.Create(Sys, settings);
 }
コード例 #52
0
        public SubscriberSourceSpec(ITestOutputHelper helper) : base(helper)
        {
            var settings = ActorMaterializerSettings.Create(Sys);

            Materializer = ActorMaterializer.Create(Sys, settings);
        }
コード例 #53
0
 public SubstreamSubscriptionTimeoutSpec(ITestOutputHelper helper) : base(Config, helper)
 {
     var settings = ActorMaterializerSettings.Create(Sys).WithInputBuffer(2, 2);
     Materializer = ActorMaterializer.Create(Sys, settings);
 }
コード例 #54
0
        public FlowLimitWeightedSpec(ITestOutputHelper helper) : base(helper)
        {
            var settings = ActorMaterializerSettings.Create(Sys).WithInputBuffer(2, 16);

            Materializer = ActorMaterializer.Create(Sys, settings);
        }
コード例 #55
0
 public FlowPrefixAndTailSpec(ITestOutputHelper helper) : base(helper)
 {
     var settings = ActorMaterializerSettings.Create(Sys).WithInputBuffer(2,2);
     Materializer = ActorMaterializer.Create(Sys, settings);
 }
コード例 #56
0
 public RestartSpec(ITestOutputHelper output) : base("", output)
 {
     Materializer = Sys.Materializer();
 }
コード例 #57
0
 public FlowExpandSpec(ITestOutputHelper helper) : base(helper)
 {
     Settings = ActorMaterializerSettings.Create(Sys).WithInputBuffer(2, 2);
     Materializer = ActorMaterializer.Create(Sys, Settings);
 }
コード例 #58
0
        public FlowCollectSpec(ITestOutputHelper helper) : base(helper)
        {
            var settings = ActorMaterializerSettings.Create(Sys);

            Materializer = ActorMaterializer.Create(Sys, settings);
        }
コード例 #59
0
 public FlowFromTaskSpec(ITestOutputHelper helper) : base(helper)
 {
     var settings = ActorMaterializerSettings.Create(Sys);
     Materializer = ActorMaterializer.Create(Sys, settings);
 }
コード例 #60
0
        public void A_Flow_must_deliver_complete_signal_when_publisher_immediately_completes()
        {
            var setup = new ChainSetup <string, string, NotUsed>(Identity, Settings,
                                                                 (settings, factory) => ActorMaterializer.Create(factory, settings), ToPublisher, this);

            setup.UpstreamSubscription.SendComplete();
            setup.Downstream.ExpectComplete();
        }