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)); }