public void EspActivityMonitor_BridgeInitialize_VerifyAllEventsAreFired() { var listener = this.monitor.Listeners.First() as MockActivityListener; listener.NumberEventsFired = 0; var mockBridge = new Mock<IMessageBusBridge>(); var bridgeDescription = new MessageBusBridgeDescription(); using (this.monitor.BridgeInitialize(mockBridge.Object, bridgeDescription)) { Assert.IsTrue(listener.NumberEventsFired == 1, string.Format("The BridgeInitializing event did not fire")); } Assert.IsTrue(listener.NumberEventsFired == 2, string.Format("The BridgeInitialized event did not fire")); }
/// <summary> /// Initializes the message bus bridge connection asynchronously. /// </summary> /// <param name="description"> /// The bridge description. /// </param> /// <returns> /// A <see cref="Task"/> representing the initialization operation. /// </returns> public virtual async Task InitializeAsync(MessageBusBridgeDescription description) { using (ActivityMonitor.Instance.BridgeInitialize(this, description)) { if (description == null) { var exception = new ArgumentNullException("description"); ActivityMonitor.Instance.ReportBridgeException(this, exception, false); throw exception; } this.Source = description.SourceBus; this.Target = description.TargetBus; this.Entity = description.TargetEntity; await this.Source.RegisterHandlerAsync( description.SourceEntity, description.BridgeName, this.OnSourceMessageArrived); } }
/// <summary> /// The bridge initialize. /// </summary> /// <param name="bridge"> /// The bridge. /// </param> /// <param name="description"> /// The description. /// </param> /// <returns> /// The <see cref="IDisposable"/>. /// </returns> public IDisposable BridgeInitialize(IMessageBusBridge bridge, MessageBusBridgeDescription description) { return GetActivityTracker( () => { var args = new BridgeInitializingEventArgs { Description = description }; this.OnBridgeInitializing(bridge, args); }, t => { var args = new BridgeInitializedEventArgs { Elapsed = t, Description = description }; this.OnBridgeInitialized(bridge, args); }); }