예제 #1
0
        public void TimeOut1()
        {
            try
            {
                var pipeOut = new MicroservicePipeline("out");
                CommandInitiator init;

                pipeOut
                .AddChannelIncoming((c) => "return")
                .AttachCommandInitiator(out init)
                .Start();

                var rs = init.Process <string, string>("F1", "F2", "F3", "hello"
                                                       , new RequestSettings()
                {
                    WaitTime = TimeSpan.FromSeconds(5)
                }).Result;

                Assert.IsTrue(rs?.ResponseCode == 408);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
예제 #2
0
        public void RPipeInternal()
        {
            PersistenceClient <Guid, PipeTest1> persistence, persistence2;
            CommandInitiator init;

            var server = new MicroservicePipeline(nameof(RPipeInternal));

            server.ToMicroservice().Events.ProcessRequestError += Events_ProcessRequestError;
            server.ToMicroservice().Events.ProcessRequestUnresolved += Events_ProcessRequestUnresolved;
            server
            .AddChannelIncoming("inChannel")
            .AttachPersistenceManagerHandlerMemory((PipeTest1 e) => e.Id, (s) => new Guid(s), resourceProfile: "Entity")
            .AttachPersistenceClient(out persistence)
            .Revert()
            .AddChannelIncoming("inChannel2")
            .AttachPersistenceClient(out persistence2)
            .Revert()
            .AddChannelIncoming("backout")
            .AttachCommandInitiator(out init)
            ;
            server.Start();

            var result = persistence.Create(new PipeTest1()
            {
                Message = "Hello"
            }
                                            , new RepositorySettings()
            {
                WaitTime = TimeSpan.FromSeconds(5)
            }
                                            ).Result;

            Assert.IsTrue(result.ResponseCode == 201);

            var result2 = persistence2.Create(new PipeTest1()
            {
                Message = "Hello"
            }
                                              , new RepositorySettings()
            {
                WaitTime = TimeSpan.FromSeconds(5)
            }
                                              ).Result;

            Assert.IsTrue(result2.ResponseCode == 501);

            var result3 = init.Process <string, string>(("franky", "four", "fingers"), ""
                                                        , new RequestSettings {
                WaitTime = TimeSpan.FromSeconds(5)
            }, routing: ProcessOptions.RouteInternal
                                                        ).Result;

            Assert.IsTrue(result3.ResponseCode == 501);
        }
예제 #3
0
        public void Pipeline()
        {
            var pipe = new MicroservicePipeline();

            pipe
            .AddChannelIncoming("freddyin", autosetPartition01: false)
            .AttachPriorityPartition(0, 1, 2)
            .Revert()
            .AddChannelOutgoing("freddyout", autosetPartition01: false)
            .AttachPriorityPartition(1, 2)
            ;

            pipe.Start();

            pipe.Stop();
        }
        public void Initialise()
        {
            mMs = new MicroservicePipeline();

            mMs.AddChannelIncoming("internal")
            .AttachPersistenceManagerHandlerMemory((MyTestEntity1 e) => e.Id, (e) => new Guid(e))
            .AttachPersistenceManagerHandlerMemory((MyTestEntity2 e) => e.Id
                                                   , (e) => new Guid(e)
                                                   , versionPolicy: new VersionPolicy <MyTestEntity2>((e) => e.VersionId.ToString("N").ToUpperInvariant(), (e) => e.VersionId = Guid.NewGuid())
                                                   )
            .AttachPersistenceClient(out mPersistenceService1)
            .AttachPersistenceClient(out mPersistenceService2)
            ;

            mMs.Start();
        }