Exemple #1
0
    private static HttpConnection CreateConnection(
        HttpConnectionOptions httpConnectionOptions,
        ILoggerFactory loggerFactory       = null,
        ITransport transport               = null,
        ITransportFactory transportFactory = null,
        TransferFormat transferFormat      = TransferFormat.Text)
    {
        loggerFactory = loggerFactory ?? NullLoggerFactory.Instance;
        httpConnectionOptions.Url ??= new Uri("http://fakeuri.org/");
        httpConnectionOptions.DefaultTransferFormat = transferFormat;

        if (transportFactory == null && transport != null)
        {
            transportFactory = new TestTransportFactory(transport);
        }

        if (transportFactory != null)
        {
            return(new HttpConnection(httpConnectionOptions, loggerFactory, transportFactory));
        }
        else
        {
            // Use the public constructor to get the default transport factory.
            return(new HttpConnection(httpConnectionOptions, loggerFactory));
        }
    }
        public async Task ChannelWithDeltasEnabled_ShouldSupportProcessingMultipleMessagesInSamePayload(Protocol protocol)
        {
            string testName         = "delta-channel".AddRandomSuffix();
            var    receivedMessages = new List <ProtocolMessage>();
            var    realtime         = await GetRealtimeClient(protocol, (options, settings) =>
            {
                var optionsTransportFactory = new TestTransportFactory
                {
                    BeforeDataProcessed = receivedMessages.Add,
                };
                options.TransportFactory = optionsTransportFactory;
            });

            var channel = realtime.Channels.Get("[?delta=vcdiff]" + testName);

            var waitForDone = new TaskCompletionAwaiter();
            var received    = new List <Message>();
            int count       = 0;

            channel.Subscribe(message =>
            {
                count++;
                received.Add(message);
                if (count == 3)
                {
                    waitForDone.Done();
                }
            });

            channel.Error += (sender, args) =>
                             throw new Exception(args.Reason.Message);
            /* subscribe */
            await channel.AttachAsync();

            var testData = new[]
            {
                new TestData("bar", 1, "active"),
                new TestData("bar", 2, "active"),
                new TestData("bar", 3, "inactive"),
            };

            await channel.PublishAsync(testData.Select(x => new Message(x.Count.ToString(), x)));

            await waitForDone;

            for (var i = 0; i < received.Count; i++)
            {
                var message  = received[i];
                var data     = ((JToken)message.Data).ToObject <TestData>();
                var original = testData[i];
                Assert.Equal(data, original);
            }

            receivedMessages
            .Where(x => x.Action == ProtocolMessage.MessageAction.Message)
            .Should().HaveCount(1);
        }
Exemple #3
0
        public LocalManagementTests()
        {
            var testTransportFactory = new TestTransportFactory();
            var courierContainer     = CourierBuilder.Create()
                                       .UseTransport(testTransportFactory)
                                       .BuildAsync().Result;

            Setup(courierContainer);
        }
        public LocalMessagingLoadTests()
        {
            var testTransportFactory = new TestTransportFactory();
            var courierFacades       = Util.Generate(
                3,
                i => CourierBuilder.Create()
                .UseTransport(testTransportFactory)
                .UseTcpServerTransport(21337 + i)
                .BuildAsync().Result);

            Setup(courierFacades);
        }
        public LocalServiceTests()
        {
            var testTransportFactory = new TestTransportFactory();

            var clientFacade = CourierBuilder.Create()
                               .UseTransport(testTransportFactory)
                               .BuildAsync().Result;

            var serverFacade = CourierBuilder.Create()
                               .UseTransport(testTransportFactory)
                               .BuildAsync().Result;

            Setup(clientFacade, serverFacade);
        }
        public LocalMessagingTests()
        {
            var testTransportFactory = new TestTransportFactory();

            var senderfacade = CourierBuilder.Create()
                               .UseTransport(testTransportFactory)
                               .BuildAsync().Result;

            var receiverFacade = CourierBuilder.Create()
                                 .UseTransport(testTransportFactory)
                                 .BuildAsync().Result;

            Setup(senderfacade, receiverFacade);
        }