Exemple #1
0
        private void AddTestSubscriptions()
        {
            ISubscriptionStore store = Factory.Instantiate <ISubscriptionStore>();

            if (store.Count() == 0)
            {
                Topic t = new Topic {
                    Name = "Test", UniqueId = Guid.NewGuid().ToString(), Description = "Testing topic only"
                };
                // No frills subscription
                Subscription subs = new Subscription {
                    Topic              = t,
                    ChannelMonicker    = "Test",
                    UniqueId           = "_TEST_",
                    Sink               = new ConsoleMessageSink(),
                    QualityConstraints = QualityAttributes.Default,
                    Name               = "Simple",
                    Description        = "Lossy subscription"
                };
                Assert.True(store.Add(subs).Success, () => "Could not add subscription");
                // Reliable http, with 10 second backoff
                var quality = QualityAttributes.Default;
                quality.SinkQuality = new SinkQualityAttributes {
                    RequestTimeout = 5000
                };
                quality.GuaranteeDelivery = true;
                quality.MaxRetry          = 3;
                quality.BackOffPeriod     = 10000;
                quality.EndureQuietude    = 2000;
                subs = new Subscription {
                    Topic           = t,
                    ChannelMonicker = "ReliableRemoteClient",
                    UniqueId        = Guid.NewGuid().ToString(),
                    Sink            = new HttpMessageSink {
                        Target = new Uri("http://localhost:8080/api/demo"), MimeType = "application/json"
                    },
                    QualityConstraints = quality,
                    Name        = "Reliable",
                    Description = "Lossless subscription"
                };
                Assert.True(store.Add(subs).Success, () => "Could not add subscription");
            }

            //var s = store.FindById("_TEST_").Containee;
            //s.QualityConstraints.EndureQuietude = 667;
            //s.QualityConstraints.SinkQuality.RequestTimeout = 1;
            //store.Update(s);
        }
        /// <inheritdoc />
        public async Task <ISubscription> GetTopicSubscriptionAsync(string name,
                                                                    CancellationToken?cancellationToken = null)
        {
            var subscription = new Subscription(_payloadFactory, ConnectionManager, _sendDataProcessor);

            _subscriptionStore.Add(name, subscription);

            await subscription.SetupAsync(name, cancellationToken ?? CancellationToken.None);

            return(subscription);
        }
        public void WhenAdd_ThenReturnsId()
        {
            var id = store.Add(new WebhookSubscription
            {
                Event       = "aneventname",
                CreatedById = "auserid"
            });

            Assert.That(id.IsEntityId());

            var result = store.Get("auserid", "aneventname");

            Assert.That(result.Id, Is.EqualTo(id));
        }