protected override void SetUp() { // installs a transport decorator that throws an exception, if the sent message size exceeds the given threshold void FailIfMessageSizeExceeds(OptionsConfigurer optionsConfigurer, int messageSizeLimitBytes) => optionsConfigurer.Decorate <ITransport>(c => new ThrowExceptionsOnBigMessagesTransportDecorator(c.Get <ITransport>(), messageSizeLimitBytes)); _activator = new BuiltinHandlerActivator(); Using(_activator); _subscriberStore = new InMemorySubscriberStore(); _network = new InMemNetwork(); _dataStore = new InMemDataStore(); _starter = Configure.With(_activator) .Transport(t => t.UseInMemoryTransport(_network, "automatic-claim-check")) .Options(o => o.LogPipeline(verbose: true)) .Subscriptions(s => s.StoreInMemory(_subscriberStore)) .DataBus(d => { d.SendBigMessagesAsAttachments(bodySizeThresholdBytes: limit / 2); d.StoreInMemory(_dataStore); }) .Options(o => FailIfMessageSizeExceeds(o, limit)) .Create(); }
protected override void SetUp() { _inMemDataStore = new InMemDataStore(); _network = new InMemNetwork(); _activator = Using(new BuiltinHandlerActivator()); }
public async Task ReadTest() { const string textData = "this is the payload!!"; var receivedTextData = new List <string>(); var receivedMetadata = new List <Dictionary <string, string> >(); var gotMessage = new ManualResetEvent(false); var handler = new DataBusAttachmentReadingHandler(receivedTextData, gotMessage, receivedMetadata); var dataStore = new InMemDataStore(); dataStore.Save("this is an attachment id", Encoding.UTF8.GetBytes(textData), new Dictionary <string, string> { { "custom-meta", "whee!!" } }); using (FakeDataBus.EstablishContext(dataStore)) { await handler.Handle("this is an attachment id"); } gotMessage.WaitOrDie(TimeSpan.FromSeconds(1)); Assert.That(receivedTextData.Count, Is.EqualTo(1)); Assert.That(receivedTextData.First(), Is.EqualTo(textData)); Assert.That(receivedMetadata.Count, Is.EqualTo(1)); Assert.That(receivedMetadata.First()["custom-meta"], Is.EqualTo("whee!!")); }
protected override void SetUp() { _inMemNetwork = new InMemNetwork(); _inMemDataStore = new InMemDataStore(); _senderBus = StartBus("sender").Bus; _receiverActivator = StartBus("receiver"); }
/// <summary> /// Establishes a fake presence of a configured data bus, using the given <see cref="InMemDataStore"/> to retrieve data /// </summary> public static IDisposable EstablishContext(InMemDataStore dataStore, IRebusTime rebusTime) { if (dataStore == null) { throw new ArgumentNullException(nameof(dataStore)); } TestBackdoor.EnableTestMode(new InMemDataBusStorage(dataStore, rebusTime)); return(new CleanUp(TestBackdoor.Reset)); }
protected override void SetUp() { _inMemNetwork = new InMemNetwork(); _inMemDataStore = new InMemDataStore(); var(_, senderStarter) = CreateBus("sender"); _senderBus = senderStarter.Start(); (_receiverActivator, _starter) = CreateBus("receiver"); }
/// <summary> /// Creates the fake data bus, optionally using the given in-mem data store to store attachments /// </summary> public FakeDataBus(IRebusTime rebusTime) { // if there is an "ambient" storage, use that if (TestBackdoor.TestDataBusStorage != null) { _dataBusStorage = TestBackdoor.TestDataBusStorage; } // last resort: just fake it in mem else { _inMemDataStore = new InMemDataStore(); _dataBusStorage = new InMemDataBusStorage(_inMemDataStore, rebusTime); } }
/// <summary> /// Establishes a fake presence of a configured data bus, using the given <see cref="InMemDataStore"/> to retrieve data /// </summary> public static IDisposable EstablishContext(InMemDataStore dataStore) { if (dataStore == null) { throw new ArgumentNullException(nameof(dataStore)); } TestDataBusStorage = new InMemDataBusStorage(dataStore); return(new CleanUp(() => { TestDataBusStorage = null; })); }
/// <summary> /// Creates the fake data bus, optionally using the given in-mem data store to store attachments /// </summary> /// <param name="dataStore"></param> public FakeDataBus(InMemDataStore dataStore = null) { // if a data store was passed in, we use that if (dataStore != null) { _dataBusStorage = new InMemDataBusStorage(dataStore); } // otherwise, if there is an "ambient" storage, use that else if (TestDataBusStorage != null) { _dataBusStorage = TestDataBusStorage; } // last resort: just fake it in mem else { _dataBusStorage = new InMemDataBusStorage(new InMemDataStore()); } }
public async Task CreateTest() { var dataStore = new InMemDataStore(); var fakeBus = new FakeBus { Advanced = new FakeAdvancedApi(dataBus: new FakeDataBus(dataStore)) }; var handler = new DataBusAttachmentCreatingHandler(fakeBus); await handler.Handle("hej med dig min ven!"); var sentDataBusAttachments = fakeBus.Events .OfType <MessageSent <DataBusAttachment> >() .ToList(); Assert.That(sentDataBusAttachments.Count, Is.EqualTo(1)); var attachmentId = sentDataBusAttachments.First().CommandMessage.Id; var data = dataStore.Load(attachmentId); var textData = Encoding.UTF8.GetString(data); Assert.That(textData, Is.EqualTo("hej med dig min ven!")); }
public void SetUp() { _inMemDataStore = new InMemDataStore(); }
protected override void SetUp() { _subscriberStore = new InMemorySubscriberStore(); _network = new InMemNetwork(); _dataStore = new InMemDataStore(); }
public InMemDataBusStorage(InMemDataStore dataStore, IRebusTime rebusTime) { _dataStore = dataStore ?? throw new ArgumentNullException(nameof(dataStore)); _rebusTime = rebusTime; }
/// <summary> /// Configures the data bus to store data in memory. This is probably only useful for test scenarios, as the /// passed-in <paramref name="inMemDataStore"/> needs to be shared among endpoints on the data bus. /// </summary> public static void StoreInMemory(this StandardConfigurer <IDataBusStorage> configurer, InMemDataStore inMemDataStore) { if (configurer == null) { throw new ArgumentNullException(nameof(configurer)); } if (inMemDataStore == null) { throw new ArgumentNullException(nameof(inMemDataStore)); } configurer.OtherService <InMemDataBusStorage>() .Register(c => new InMemDataBusStorage(inMemDataStore, c.Get <IRebusTime>())); configurer.Register(c => c.Get <InMemDataBusStorage>()); configurer.OtherService <IDataBusStorageManagement>().Register(c => c.Get <InMemDataBusStorage>()); }