private void AddTestSubscriptions() { Topic t = new Topic { Name = "Test", UniqueId = Guid.NewGuid().ToString(), Description = "Testing topic only" }; Factory.Instantiate<ITopicStore>().Add(t); Subscription subs = new Subscription { Topic = t, ChannelMonicker = "Test", UniqueId = Guid.NewGuid().ToString(), Sink = new ConsoleMessageSink(), QualityConstraints = QualityAttributes.Default }; Factory.Instantiate<ISubscriptionStore>().Add(subs); var quality = QualityAttributes.Default; quality.SinkQuality = new SinkQualityAttributes { RequestTimeout = 5000 }; quality.EndureQuietude = 1000; subs = new Subscription { Topic = t, ChannelMonicker = "Client", UniqueId = Guid.NewGuid().ToString(), Sink = new ConsoleMessageSink(), QualityConstraints = quality, }; Factory.Instantiate<ISubscriptionStore>().Add(subs); // Failing http subs = new Subscription { Topic = t, ChannelMonicker = "RemoteClient", UniqueId = Guid.NewGuid().ToString(), Sink = new HttpMessageSink { Target = new Uri("http://localhost:9999/HookedIn") }, QualityConstraints = quality, }; Factory.Instantiate<ISubscriptionStore>().Add(subs); // Reliable http, with 10 second backoff quality = QualityAttributes.Default; quality.SinkQuality = new SinkQualityAttributes { RequestTimeout = 5000 }; quality.GuaranteeDelivery = true; quality.MaxRetry = 3; quality.BackOffPeriod = 10000; 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, }; Factory.Instantiate<ISubscriptionStore>().Add(subs); }
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); }