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