Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
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);
        }