public async Task It_notifies_about_removing_an_entry()
        {
            var fakeSchedule = new FakeSchedule();
            var entries = new List<Entry>();
            var fakeBackplane = new FakeBackplane("A", entries);
            var otherBackplane = new FakeBackplane("B", entries);

            var client = new DataBackplaneClient(fakeBackplane, fakeSchedule);
            await client.Start();
            var readValues = new List<string>();
            var subscription = await client.GetAllAndSubscribeToChanges("T1", entry =>
            {
                readValues.Add(entry.Data);
                return Task.FromResult(0);
            }, entry =>
            {
                readValues.Remove(entry.Data);
                return Task.FromResult(0);
            });

            await otherBackplane.Publish("T1", "B");
            await fakeSchedule.TriggerQuery();
            CollectionAssert.Contains(readValues, "B");

            await otherBackplane.Revoke("T1");
            await fakeSchedule.TriggerQuery();
            CollectionAssert.DoesNotContain(readValues, "B");
            subscription.Unsubscribe();
        }
        protected override void Setup(FeatureConfigurationContext context)
        {
            var transportAddress = context.Settings.LocalAddress();
            var connectionString = context.Settings.Get<string>("NServiceBus.DataBackplane.ConnectionString");
            var definition = context.Settings.Get<BackplaneDefinition>();
            var backplane = definition.CreateBackplane(transportAddress, connectionString);
            var backplaneClient = new DataBackplaneClient(backplane, new DefaultQuerySchedule());
            context.Container.ConfigureComponent(_ => backplaneClient, DependencyLifecycle.SingleInstance);

            context.RegisterStartupTask(new DataBackplaneClientLifecycle(backplaneClient));
        }
Example #3
0
        protected override void Setup(FeatureConfigurationContext context)
        {
            var transportAddress = context.Settings.LocalAddress();
            var connectionString = context.Settings.Get <string>("NServiceBus.DataBackplane.ConnectionString");
            var definition       = context.Settings.Get <BackplaneDefinition>();
            var backplane        = definition.CreateBackplane(transportAddress, connectionString);
            var backplaneClient  = new DataBackplaneClient(backplane, new DefaultQuerySchedule());

            context.Container.ConfigureComponent(_ => backplaneClient, DependencyLifecycle.SingleInstance);

            context.RegisterStartupTask(new DataBackplaneClientLifecycle(backplaneClient));
        }
        public async Task It_notifies_about_all_relevant_entries_right_after_subscribing()
        {
            var fakeSchedule = new FakeSchedule();
            var entries = new List<Entry>();
            entries.Add(new Entry("B", "T1", "B"));
            entries.Add(new Entry("C", "T1", "C"));
            var fakeBackplane = new FakeBackplane("A", entries);

            var client = new DataBackplaneClient(fakeBackplane, fakeSchedule);
            await client.Start();
            await fakeSchedule.TriggerQuery();
            var readValues = new List<string>();
            var subscription = await client.GetAllAndSubscribeToChanges("T1", entry =>
            {
                readValues.Add(entry.Data);
                return Task.FromResult(0);
            }, entry => Task.FromResult(0));
            CollectionAssert.AreEqual(new [] {"B", "C"}, readValues);
            subscription.Unsubscribe();
        }
 public DataBackplaneClientLifecycle(DataBackplaneClient client)
 {
     this.client = client;
 }
Example #6
0
 public DataBackplaneClientLifecycle(DataBackplaneClient client)
 {
     this.client = client;
 }