Esempio n. 1
0
 public static RestyClient<object> GetClient(TestChannel channel)
 {
     var formatter = new Mock<IContentFormatter>();
     formatter.Setup(f => f.SupportedMediaTypes).Returns(() => new[] { _mediaType });
     formatter.Setup(f => f.ReadFromStream(It.IsAny<Stream>())).Returns(() => new object());
     return new RestyClient<object>(_url.ToString(), new[] { formatter.Object }, client => client.Channel = channel);
 }
Esempio n. 2
0
        public void ReceiveTest()
        {
            var packet = new TestChannel(16);
            var received = false;

            packet.Receive += (sender, message) => received = true;
            packet.Send(new byte[packet.Size]);

            Assert.IsTrue(received);
        }
Esempio n. 3
0
        public void InvalidDataTest()
        {
            var packet = new TestChannel(16);

            try
            {
                packet.Send(new byte[0]);
                Assert.Fail();
            }
            catch (NotSupportedException)
            {
            }
        }
Esempio n. 4
0
        public void ClientDisconnected_DisconnectedRaised()
        {
            var server = new TestChannelServer <ITestContract>(TntBuilder.UseContract <ITestContract, TestContractMock>());

            server.StartListening();
            ClientDisconnectEventArgs <ITestContract, TestChannel> disconnectedConnection = null;

            server.Disconnected += (sender, args) => disconnectedConnection = args;
            var clientChannel   = new TestChannel();
            var proxyConnection = TntBuilder.UseContract <ITestContract>().UseChannel(clientChannel).Build();
            var pair            = server.TestListener.ImmitateAccept(clientChannel);

            pair.Disconnect();

            Assert.IsNotNull(disconnectedConnection, "Disconnect not raised");
        }
Esempio n. 5
0
        public void ServerAcceptConnection_BeforeConnectRaised()
        {
            var server = new TestChannelServer <ITestContract>(TntBuilder.UseContract <ITestContract, TestContractMock>());

            server.StartListening();
            BeforeConnectEventArgs <ITestContract, TestChannel> connectionArgs = null;

            server.BeforeConnect += (sender, args) => connectionArgs = args;

            var clientChannel   = new TestChannel();
            var proxyConnection = TntBuilder.UseContract <ITestContract>().UseChannel(clientChannel).Build();

            server.TestListener.ImmitateAccept(clientChannel);

            Assert.IsNotNull(connectionArgs, "AfterConnect not raised");
        }
Esempio n. 6
0
        public void TestEmptyNioBuffers()
        {
            TestChannel           channel = new TestChannel();
            ChannelOutboundBuffer buffer  = new ChannelOutboundBuffer(channel);

            Assert.Equal(0, buffer.NioBufferCount);
            var buffers = buffer.GetSharedBufferList();

            Assert.NotNull(buffers);
            foreach (var b in buffers)
            {
                Assert.Null(b.Array);
            }
            Assert.Equal(0, buffer.NioBufferCount);
            Release(buffer);
        }
Esempio n. 7
0
        public void ProxyBuilder_SayCalled_DataSent()
        {
            var channel         = new TestChannel();
            var proxyConnection = TntBuilder
                                  .UseContract <ITestContract>()
                                  .UseChannel(channel)
                                  .Build();

            proxyConnection.Channel.ImmitateConnect();
            byte[] sentMessage = null;
            proxyConnection.Channel.OnWrited += (s, msg) => sentMessage = msg;
            proxyConnection.Contract.Say();

            Assert.IsNotNull(sentMessage);
            Assert.IsNotEmpty(sentMessage);
        }
        public async Task Should_Stop_Subscribe_When_Subscription_Is_Disposed()
        {
            /* Setup */
            using (var publisher = TestClientFactory.CreateNormal())
                using (var subscriber = TestClientFactory.CreateNormal())
                {
                    var firstMessage = new BasicMessage {
                        Prop = "Value"
                    };
                    var secondMessage = new BasicMessage {
                        Prop = "AnotherValue"
                    };
                    var firstRecievedTcs  = new TaskCompletionSource <BasicMessage>();
                    var secondRecievedTcs = new TaskCompletionSource <BasicMessage>();
                    var recievedCount     = 0;

                    var subscription = subscriber.SubscribeAsync <BasicMessage>((message, context) =>
                    {
                        recievedCount++;
                        if (!firstRecievedTcs.Task.IsCompleted)
                        {
                            firstRecievedTcs.SetResult(message);
                        }
                        return(Task.FromResult(true));
                    }, cfg => cfg.WithQueue(q => q.WithAutoDelete(false)));

                    /* Test */
                    publisher.PublishAsync(firstMessage);
                    await firstRecievedTcs.Task;
                    subscription.Dispose();
                    var recievedAfterFirstPublish = recievedCount;
                    publisher.PublishAsync(secondMessage);
                    await Task.Delay(20);

                    publisher.SubscribeAsync <BasicMessage>((message, context) =>
                    {
                        secondRecievedTcs.SetResult(message);
                        return(Task.FromResult(true));
                    }, cfg => cfg.WithQueue(q => q.WithAutoDelete(false)));
                    await secondRecievedTcs.Task;
                    TestChannel.QueueDelete(subscription.QueueName);
                    /* Assert */
                    Assert.Equal(recievedAfterFirstPublish, recievedCount);
                    Assert.Equal(firstRecievedTcs.Task.Result.Prop, firstMessage.Prop);
                    Assert.Equal(secondRecievedTcs.Task.Result.Prop, secondMessage.Prop);
                }
        }
Esempio n. 9
0
        public async Task Should_Be_Able_To_Subscribe_Initialized_Queue_And_Exchange()
        {
            using (var client = TestClientFactory.CreateNormal())
            {
                /* Setup */
                const string exchangeName = "initialized.exchange";
                const string queueName    = "initialized.queue";

                try
                {
                    TestChannel.ExchangeDeclare(exchangeName, RabbitMQ.Client.ExchangeType.Fanout);
                    TestChannel.QueueDeclare(queueName, true, false, false);

                    var tcs = new TaskCompletionSource <DynamicMessage>();
                    client.SubscribeAsync <DynamicMessage>((message, context) =>
                    {
                        tcs.TrySetResult(message);
                        return(Task.FromResult(true));
                    }, cfg => cfg
                                                           .WithQueue(q => q
                                                                      .AssumeInitialized()
                                                                      .WithName(queueName))
                                                           .WithSubscriberId(string.Empty)
                                                           .WithExchange(e => e
                                                                         .AssumeInitialized()
                                                                         .WithName(exchangeName)));

                    /* Test */
                    await client.PublishAsync(new DynamicMessage { Body = new { IsDynamic = true } },
                                              configuration : cfg => cfg
                                              .WithExchange(e => e
                                                            .AssumeInitialized()
                                                            .WithName(exchangeName)));

                    await tcs.Task;

                    /* Assert */
                    Assert.True(tcs.Task.Result.Body.IsDynamic);
                }
                finally
                {
                    /* Teardown */
                    TestChannel.QueueDelete(queueName);
                    TestChannel.ExchangeDelete(exchangeName);
                }
            }
        }
Esempio n. 10
0
        public async Task Should_Be_Able_To_Nack_One_In_Batch()
        {
            using (var client = ZyRabbitFactory.CreateTestClient())
            {
                /* Setup */
                var message = new BasicMessage {
                    Prop = "Get me, get it?"
                };
                var nacked = new BasicMessage {
                    Prop = "Not me! Plz?"
                };
                var conventions  = new NamingConventions();
                var exchangeName = conventions.ExchangeNamingConvention(message.GetType());
                TestChannel.QueueDeclare(conventions.QueueNamingConvention(message.GetType()), true, false, false, null);
                TestChannel.ExchangeDeclare(exchangeName, ExchangeType.Topic);
                TestChannel.QueueBind(conventions.QueueNamingConvention(message.GetType()), conventions.ExchangeNamingConvention(message.GetType()), conventions.RoutingKeyConvention(message.GetType()) + ".#");

                await client.PublishAsync(message, ctx => ctx.UsePublishConfiguration(cfg => cfg.OnExchange(exchangeName)));

                await client.PublishAsync(message, ctx => ctx.UsePublishConfiguration(cfg => cfg.OnExchange(exchangeName)));

                await client.PublishAsync(nacked, ctx => ctx.UsePublishConfiguration(cfg => cfg.OnExchange(exchangeName)));

                /* Test */
                var ackableList = await client.GetManyAsync <BasicMessage>(3);

                foreach (var ackableMsg in ackableList.Content)
                {
                    if (string.Equals(ackableMsg.Content.Prop, message.Prop))
                    {
                        ackableMsg.Ack();
                    }
                    else
                    {
                        ackableMsg.Nack();
                    }
                }
                var getAgain = await client.GetAsync <BasicMessage>();

                TestChannel.QueueDelete(conventions.QueueNamingConvention(message.GetType()));
                TestChannel.ExchangeDelete(exchangeName);

                /* Assert */
                Assert.NotNull(getAgain);
                Assert.Equal(getAgain.Content.Prop, nacked.Prop);
            }
        }
Esempio n. 11
0
        public void EnsureSubsequentRegistrationDoesNotFireActive()
        {
            var eventLoop = new Mock <IEventLoop>();

            // This allows us to have a single-threaded test
            eventLoop.SetupGet(x => x.InEventLoop).Returns(true);

            eventLoop
            .Setup(
                x => x.Execute(It.IsAny <IRunnable>()))
            .Callback((IRunnable task) =>
            {
                task.Run();
            });
            eventLoop
            .Setup(
                x => x.Execute(It.IsAny <Action>()))
            .Callback((Action task) =>
            {
                task();
            });

            TestChannel channel = new TestChannel();
            var         handler = new Mock <IChannelHandler>();

            channel.Pipeline.AddLast(handler.Object);

            RegisterChannel(eventLoop.Object, channel);
            channel.Unsafe.Deregister(new DefaultPromise());

            RegisterChannel(eventLoop.Object, channel);

            handler.Verify(
                x => x.HandlerAdded(It.IsAny <IChannelHandlerContext>())
                );

            // Should register twice
            handler.Verify(
                x => x.ChannelRegistered(It.IsAny <IChannelHandlerContext>()),
                Times.Exactly(2));
            handler.Verify(
                x => x.ChannelActive(It.IsAny <IChannelHandlerContext>())
                );
            handler.Verify(
                x => x.ChannelUnregistered(It.IsAny <IChannelHandlerContext>())
                );
        }
Esempio n. 12
0
        public async Task Should_Be_Able_To_Get_BasicGetResult_When_Queue_IsEmpty()
        {
            using (var client = ZyRabbitFactory.CreateTestClient())
            {
                /* Setup */
                var message     = new BasicMessage();
                var conventions = new NamingConventions();
                var queueName   = conventions.QueueNamingConvention(message.GetType());
                TestChannel.QueueDeclare(queueName, true, false, false, null);

                /* Test */
                var ackable = await client.GetAsync(cfg => cfg.FromQueue(queueName));

                /* Assert */
                Assert.NotNull(ackable);
                Assert.Null(ackable.Content);
                TestChannel.QueueDelete(queueName);
            }
        }
Esempio n. 13
0
        private void DeserializeAndCompare(MqttBasePacket packet, string expectedBase64Value)
        {
            var serializer = new DefaultMqttV311PacketSerializer();

            var channel1 = new TestChannel();

            serializer.SerializeAsync(packet, channel1).Wait();
            var buffer1 = channel1.ToArray();

            var channel2           = new TestChannel(buffer1);
            var deserializedPacket = serializer.DeserializeAsync(channel2).Result;
            var buffer2            = channel2.ToArray();

            var channel3 = new TestChannel(buffer2);

            serializer.SerializeAsync(deserializedPacket, channel3).Wait();

            Assert.AreEqual(expectedBase64Value, Convert.ToBase64String(channel3.ToArray()));
        }
Esempio n. 14
0
        public void BindingElementsOrdering()
        {
            IChannelBindingElement transformA = new MockTransformationBindingElement("a");
            IChannelBindingElement transformB = new MockTransformationBindingElement("b");
            IChannelBindingElement sign       = new MockSigningBindingElement();
            IChannelBindingElement replay     = new MockReplayProtectionBindingElement();
            IChannelBindingElement expire     = new StandardExpirationBindingElement();

            Channel channel = new TestChannel(
                new TestMessageFactory(),
                new[] { sign, replay, expire, transformB, transformA },
                new DefaultOpenIdHostFactories());

            Assert.AreEqual(5, channel.BindingElements.Count);
            Assert.AreSame(transformB, channel.BindingElements[0]);
            Assert.AreSame(transformA, channel.BindingElements[1]);
            Assert.AreSame(replay, channel.BindingElements[2]);
            Assert.AreSame(expire, channel.BindingElements[3]);
            Assert.AreSame(sign, channel.BindingElements[4]);
        }
Esempio n. 15
0
        /// <summary>
        /// Dump all tuples out of channel cache
        /// </summary>
        /// <returns></returns>
        public static List <TestOutput> GetOutput(this Component c)
        {
            List <TestOutput> res          = new List <TestOutput>();
            TestChannel       comp_channel = (TestChannel)c.Channel;

            while (comp_channel.IsEmpty() == false)
            {
                OutMessage message = comp_channel.OutputMessage();
                if (message is SpoutTuple)
                {
                    res.Add(new SpoutOutput((SpoutTuple)message, c.Context.ComponentId));
                }
                else if (message is BoltTuple)
                {
                    res.Add(new BoltOutput((BoltTuple)message, c.Context.ComponentId));
                }
            }

            return(res);
        }
Esempio n. 16
0
        public MockConnectionPair(bool connect = true)
        {
            var serverBuilder = TntBuilder
                                .UseContract <TOriginContractInterface, TOriginContractType>()
                                //  .UseReceiveDispatcher<NotThreadDispatcher>()
                                .SetMaxAnsDelay(200000);

            ClientChannel = new TestChannel();
            var clientBuilder = TntBuilder
                                .UseContract <TProxyContractInterface>()
                                // .UseReceiveDispatcher<NotThreadDispatcher>()
                                .SetMaxAnsDelay(200000);

            Server          = new TestChannelServer <TOriginContractInterface>(serverBuilder);
            ProxyConnection = clientBuilder.UseChannel(ClientChannel).Build();

            if (connect)
            {
                Connect();
            }
        }
Esempio n. 17
0
        public async Task Should_Honor_Last_Configuration()
        {
            /* Setup */
            var          client       = RawRabbitFactory.GetExtendableClient();
            const string exchangeName = "topology";

            TestChannel.ExchangeDelete(exchangeName);

            /* Test */
            var result = await client.UpdateTopologyAsync(c => c
                                                          .ForExchange(exchangeName)
                                                          .UseConfiguration(e => e.WithType(ExchangeType.Headers))
                                                          .ForExchange(exchangeName)
                                                          .UseConfiguration(e => e.WithType(ExchangeType.Topic))
                                                          .ForExchange(exchangeName)
                                                          .UseConfiguration(e => e.WithType(ExchangeType.Direct))
                                                          .ForExchange(exchangeName)
                                                          .UseConfiguration(e => e.WithType(ExchangeType.Fanout)));

            /* Assert */
            Assert.Equal(result.Exchanges[0].Exchange.ExchangeType, ExchangeType.Fanout.ToString().ToLower());
        }
Esempio n. 18
0
	// Constructor Method:
	public TestGame() {
		DebugBot.DebugFunctionCall("TestGame; Constructor();", true);
		ownPosX[0] = 1f;
		targetPosX[0] = 2f;
		ownVelX[0] = 3f;
		targetVelX[0] = 4f;
		// Brain Inputs!:
		inputChannelsList = new List<TestChannel>();
		TestChannel BIC_ownPosX = new TestChannel(ref ownPosX, true, "ownPosX");
		inputChannelsList.Add (BIC_ownPosX); // 0
		TestChannel BIC_targetPosX = new TestChannel(ref targetPosX, true, "targetPosX");
		inputChannelsList.Add (BIC_targetPosX); // 1
		TestChannel BIC_ownVelX = new TestChannel(ref ownVelX, false, "ownVelX");
		inputChannelsList.Add (BIC_ownVelX); // 2
		TestChannel BIC_targetVelX = new TestChannel(ref targetVelX, false, "targetVelX");
		inputChannelsList.Add (BIC_targetVelX); // 3

		// Brain Outputs!:		
		outputChannelsList = new List<TestChannel>();
		TestChannel BOC_ownVelX = new TestChannel(ref ownVelX, true, "ownVelX");
		outputChannelsList.Add (BOC_ownVelX); // 0
	}
Esempio n. 19
0
        public async Task Should_Update_Exhange_Type()
        {
            /* Setup */
            const string exchangeName = "topology";

            TestChannel.ExchangeDelete(exchangeName);
            TestChannel.ExchangeDeclare(exchangeName, RabbitMQ.Client.ExchangeType.Direct);

            var client = RawRabbitFactory.GetExtendableClient() as ExtendableBusClient <MessageContext>;

            /* Test */
            await client.UpdateTopologyAsync(t => t
                                             .ForExchange(exchangeName)
                                             .UseConfiguration(e => e
                                                               .WithType(ExchangeType.Topic)
                                                               .WithDurability(false))
                                             );

            /* Assert */
            TestChannel.ExchangeDeclare(exchangeName, RabbitMQ.Client.ExchangeType.Topic);
            Assert.True(true, "Did not throw");
            Assert.Throws <OperationInterruptedException>(() => TestChannel.ExchangeDeclare(exchangeName, RabbitMQ.Client.ExchangeType.Direct));
        }
Esempio n. 20
0
        public void TestNioBuffersExpand()
        {
            TestChannel channel = new TestChannel();

            ChannelOutboundBuffer buffer = new ChannelOutboundBuffer(channel);

            IByteBuffer buf = Unpooled.DirectBuffer().WriteBytes(Encoding.ASCII.GetBytes("buf1"));

            for (int i = 0; i < 64; i++)
            {
                buffer.AddMessage(buf.Copy(), buf.ReadableBytes, channel.VoidPromise());
            }
            Assert.Equal(0, buffer.NioBufferCount); // Should still be 0 as not flushed yet
            buffer.AddFlush();
            var buffers = buffer.GetSharedBufferList();

            Assert.Equal(64, buffer.NioBufferCount);
            for (int i = 0; i < buffer.NioBufferCount; i++)
            {
                Assert.Equal(buffers[i], buf.GetIoBuffer(buf.ReaderIndex, buf.ReadableBytes));
            }
            Release(buffer);
            buf.Release();
        }
Esempio n. 21
0
        public void EnsureInitialRegistrationFiresActive()
        {
            var eventLoop = new Mock <IEventLoop>();

            // This allows us to have a single-threaded test
            eventLoop.SetupGet(x => x.InEventLoop).Returns(true);

            TestChannel channel = new TestChannel();
            var         handler = new Mock <IChannelHandler>();

            channel.Pipeline.AddLast(handler.Object);

            RegisterChannel(eventLoop.Object, channel);

            handler.Verify(
                x => x.HandlerAdded(It.IsAny <IChannelHandlerContext>())
                );
            handler.Verify(
                x => x.ChannelRegistered(It.IsAny <IChannelHandlerContext>())
                );
            handler.Verify(
                x => x.ChannelActive(It.IsAny <IChannelHandlerContext>())
                );
        }
 public ThreadChannelTests()
 {
     _channel       = new TestChannel <string>();
     _threadChannel = new ThreadChannel <string>(_channel);
 }
Esempio n. 23
0
 public override void Dispose()
 {
     TestChannel.ExchangeDelete("rawrabbit.integrationtests.testmessages");
     TestChannel.QueueDelete("basicmessage");
     base.Dispose();
 }
Esempio n. 24
0
 public TransmitterAdv(TestChannel ch) : base(1, 1)
 {
     this.ch = ch;
 }
Esempio n. 25
0
 public ReceiverAdv(TestChannel ch) : base(1, 1)
 {
     this.ch = ch;
 }
Esempio n. 26
0
 public static TestChannelPair CreateChannelPair(TestChannel cahnnelA, TestChannel channelB)
 {
     return(new TestChannelPair(cahnnelA, channelB));
 }
Esempio n. 27
0
    public void FinishBuild(int id, string requestguid)
    {
        try
        {
            DefectBuild b = new DefectBuild(id)
            {
                STATUS = DefectBuild.BuildStatus.finishedok.ToString(), TESTGUID = requestguid
            };
            b.Store();

            if (Settings.CurrentSettings.RELEASETTID == b.TTID.ToString() && b.TYPE == (int)DefectBuild.BuildType.releasebuild)
            {
                //release builder sends its own notifications
                return;
            }

            Defect     d = new Defect(b.TTID);
            DefectUser u = new DefectUser(b.TTUSERID);
            d.SetUpdater(new MPSUser(u.TRID));
            List <DefectDispo> dsps = DefectDispo.EnumTestsStarted();
            if (dsps.Count > 0)
            {
                string   currentlock = Guid.NewGuid().ToString();
                LockInfo li          = Defect.Locktask(b.TTID.ToString(), currentlock, u.TRID.ToString(), true);
                d.DISPO = dsps[0].ID.ToString();
                if (d.PRIMARYHOURS == null)
                {
                    d.PRIMARYHOURS = d.SPENT;
                }
                d.Store();
                DefectEvent.AddEventByTask(id, DefectEvent.Eventtype.QualityAssurance, b.TTUSERID, "Sent for QA Automation");
                Defect.UnLocktask(u.TRID.ToString(), currentlock);
            }

            if (Settings.CurrentSettings.RELEASETTID == b.TTID.ToString())
            {
                VersionBuilder.SendAlarm("✅New internal release build has been finished. Testing is starting...");
            }
            else
            {
                try
                {
                    string mess = $"New task from {u.FULLNAME} is ready for tests!{Settings.CurrentSettings.GetTTAnchor(b.TTID, d.FIRE ? "taskfire.png" : "")}";
                    TestChannel.SendMessage(mess);
                }
                catch (Exception e)
                {
                    Logger.Log(e);
                }
            }

            string bst_b = d.BSTBATCHES.Trim();
            string bst_c = d.BSTCOMMANDS.Trim();
            if (!string.IsNullOrEmpty(bst_b) || !string.IsNullOrEmpty(bst_c))
            {
                string batches  = string.Join(",", bst_b.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries));
                string commands = string.Join(",", bst_c.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries));
                using (var wcClient = new WebClient())
                {
                    var reqparm = new NameValueCollection();
                    reqparm.Add("guid", requestguid);
                    reqparm.Add("commaseparatedbatches", batches);
                    reqparm.Add("commaseparatedcommands", commands);
                    reqparm.Add("priority", d.TESTPRIORITY);
                    //reqparm.Add("branch", d.BRANCHBST);
                    wcClient.UploadValues(Settings.CurrentSettings.BSTSITESERVICE + "/StartTest", reqparm);
                }
            }
        }
        catch (Exception e)
        {
            Logger.Log(e);
        }
    }
Esempio n. 28
0
 public override void Dispose()
 {
     TestChannel.QueueDelete("task_queue");
     base.Dispose();
 }
Esempio n. 29
0
 public TopicExchangeTests()
 {
     TestChannel.ExchangeDelete("rawrabbit.integrationtests.testmessages");
     TestChannel.QueueDelete("basicmessage");
     TestChannel.QueueDelete("simplemessage");
 }
Esempio n. 30
0
 public HelloWorldTest()
 {
     TestChannel.QueueDelete("hello");
 }
Esempio n. 31
0
 public TopologyUpdaterTests()
 {
     TestChannel.ExchangeDelete("rawrabbit.integrationtests.testmessages");
 }
Esempio n. 32
0
 public WorkQueueTest()
 {
     TestChannel.QueueDelete("task_queue");
 }
Esempio n. 33
0
 public override void Dispose()
 {
     TestChannel.QueueDelete("hello");
     base.Dispose();
 }
Esempio n. 34
0
 public override void Dispose()
 {
     try { TestChannel.ExchangeDelete("rawrabbit.integrationtests.testmessages"); }
     catch (Exception) { }
     base.Dispose();
 }