public void ConnectedTryConnectAndPublish() { // setup var msg = new EventBusConfigutation(); void config(EventBusConfigutation c) { c.DefaultMap.ExchangeName = nameof(EventBusPublisherFactoryTest); } var sp = BuildTestServiceProvider(config); // act var sc = sp.GetService <IEventBusPublisherFactory <EventBusConfigutation> >(); var unwrapSc = (EventBusPublisherFactory <EventBusConfigutation> .EventBusPublishProvider)sc.CreatePublisher(); CancellationTokenSource ts = new CancellationTokenSource(); var result = unwrapSc.TryToConnect(); // validate Assert.True(result); Assert.Null(unwrapSc.ConnectionError); Assert.True(unwrapSc.IsConnected); Assert.Equal(BusConnectionState.Connected, unwrapSc.BusConnectionState); result = unwrapSc.PublishSync(msg, ts.Token); // validate Assert.True(result); Assert.Null(unwrapSc.ConnectionError); Assert.True(unwrapSc.IsConnected); Assert.Equal(BusConnectionState.Connected, unwrapSc.BusConnectionState); }
public void NotConnectedCancellationTokenThowsException() { // setup var msg = new EventBusConfigutation(); void config(EventBusConfigutation c) { c.Port = 11111; c.RecconectCount = 1; } var sp = BuildTestServiceProvider(config); // act var sc = sp.GetService <IEventBusPublisherFactory <EventBusConfigutation> >(); var unwrapSc = (EventBusPublisherFactory <EventBusConfigutation> .EventBusPublishProvider)sc.CreatePublisher(); // validate Assert.Throws <BrokerUnreachableException>(() => { var result = unwrapSc.PublishSync(msg, CancellationToken.None); }); Assert.False(unwrapSc.IsConnected); Assert.Equal(BusConnectionState.ErrorDisconnected, unwrapSc.BusConnectionState); Assert.IsType <BrokerUnreachableException>(unwrapSc.ConnectionError); }
public void NotConnectedTryToConnectReturnsFlag() { // setup var msg = new EventBusConfigutation(); void config(EventBusConfigutation c) { c.Port = 11111; c.RecconectCount = 1; } var sp = BuildTestServiceProvider(config); var sc = sp.GetService <IEventBusPublisherFactory <EventBusConfigutation> >(); var unwrapSc = (EventBusPublisherFactory <EventBusConfigutation> .EventBusPublishProvider)sc.CreatePublisher(); // validate var result = unwrapSc.TryToConnect(true); Assert.False(result); Assert.False(unwrapSc.IsConnected); Assert.Equal(BusConnectionState.ErrorDisconnected, unwrapSc.BusConnectionState); Assert.IsType <BrokerUnreachableException>(unwrapSc.ConnectionError); }
public void NotConnectedPublishCancellationTokenReturnsFlag() { // setup var msg = new EventBusConfigutation(); void config(EventBusConfigutation c) { c.Port = 11111; c.RecconectCount = 6; } var sp = BuildTestServiceProvider(config); // act var sc = sp.GetService <IEventBusPublisherFactory <EventBusConfigutation> >(); var unwrapSc = (EventBusPublisherFactory <EventBusConfigutation> .EventBusPublishProvider)sc.CreatePublisher(); CancellationTokenSource ts = new CancellationTokenSource(); // validate var result = unwrapSc.PublishAsync(msg, ts.Token, true); Thread.Yield(); Thread.Sleep(5000); ts.Cancel(); Assert.False(result.Result); Assert.False(unwrapSc.IsConnected); Assert.Equal(BusConnectionState.ErrorDisconnected, unwrapSc.BusConnectionState); Assert.IsType <OperationCanceledException>(unwrapSc.ConnectionError); }
public void ConnectedAutoFailedReconnectChannelAndPublish() { // setup var msg = new EventBusConfigutation(); void config(EventBusConfigutation c) { c.DefaultMap.ExchangeName = nameof(EventBusPublisherFactoryTest); } var sp = BuildTestServiceProvider(config); // act var sc = sp.GetService <IEventBusPublisherFactory <EventBusConfigutation> >(); var unwrapSc = (EventBusPublisherFactory <EventBusConfigutation> .EventBusPublishProvider)sc.CreatePublisher(); CancellationTokenSource ts = new CancellationTokenSource(); var result = unwrapSc.TryToConnect(); // validate Assert.True(result); Assert.Null(unwrapSc.ConnectionError); Assert.True(unwrapSc.IsConnected); Assert.Equal(BusConnectionState.Connected, unwrapSc.BusConnectionState); // setup simulate hard disconnection unwrapSc.ConfigutationRabbitMQ.Port = 11111; unwrapSc.ConnectionFactory.GetConnectionFactory().Port = 11111; unwrapSc.ConfigutationRabbitMQ.RecconectCount = 2; try { unwrapSc.Channel.Close(); } catch { /*channel disconnection simulation*/ } Thread.Yield(); Thread.Sleep(5000); // validate Assert.False(unwrapSc.IsConnected); Assert.NotEqual(BusConnectionState.Connected, unwrapSc.BusConnectionState); result = unwrapSc.PublishSync(msg, ts.Token, true); // validate Assert.False(result); Assert.NotNull(unwrapSc.ConnectionError); Assert.False(unwrapSc.IsConnected); Assert.Equal(BusConnectionState.ErrorDisconnected, unwrapSc.BusConnectionState); }
public void SubscribeAndPublishAndGetMessage() { EventBusConfigutation msgResponse = null; Exception error = null; // setup void SubscriptionDelegate(EventBusConfigutation notification) { msgResponse = notification; } void LocalErrorHandler(Exception obj) { error = obj; } void config(EventBusConfigutation c) { c.DefaultMap.ExchangeName = nameof(EventBusSubscribeFactoryTest) + "1"; c.DefaultMap.QueueName = nameof(EventBusSubscribeFactoryTest) + "1"; } var msg = new EventBusConfigutation(); var sp = BuildTestServiceProvider(config); // act var pb = sp.GetRequiredService <IEventBusPublisherFactory <EventBusConfigutation> >().CreatePublisher(); Assert.NotNull(pb); var scf = sp.GetRequiredService <IEventBusSubscribtionFactory <EventBusConfigutation> >(); // validate Assert.NotNull(scf); // act var subScr = (EventBusSubscriberFactory <EventBusConfigutation> .EventBusSubscriberProvider)scf.SubscribeSync(SubscriptionDelegate); subScr.ErrorHandler += LocalErrorHandler; pb.PublishSync(msg, CancellationToken.None); Thread.Yield(); Thread.Sleep(1000); Assert.NotNull(msgResponse); Assert.Null(error); }
public void NotConnectedPublishThowsException() { // setup var msg = new EventBusConfigutation(); void config(EventBusConfigutation c) { c.Port = 11111; c.RecconectCount = 6; } var sp = BuildTestServiceProvider(config); // act var sc = sp.GetService <IEventBusPublisherFactory <EventBusConfigutation> >(); var unwrapSc = (EventBusPublisherFactory <EventBusConfigutation> .EventBusPublishProvider)sc.CreatePublisher(); CancellationTokenSource ts = new CancellationTokenSource(); // validate try { var result = unwrapSc.PublishAsync(msg, ts.Token); Thread.Yield(); Thread.Sleep(5000); ts.Cancel(); result.Wait(); } catch (Exception ex) { if (!(ex is AggregateException) && !(ex is AggregateException)) { Assert.False(true); } } Assert.False(unwrapSc.IsConnected); Assert.Equal(BusConnectionState.ErrorDisconnected, unwrapSc.BusConnectionState); Assert.NotNull(unwrapSc.ConnectionError); }
public void SubscribeAutoReConnectAndPublishAndGetMessage() { EventBusConfigutation msgResponse = null; Exception error = null; // setup void SubscriptionDelegate(EventBusConfigutation notification) { msgResponse = notification; } void LocalErrorHandler(Exception obj) { error = obj; } void config(EventBusConfigutation c) { c.DefaultMap.ExchangeName = nameof(EventBusSubscribeFactoryTest) + "2"; c.DefaultMap.QueueName = nameof(EventBusSubscribeFactoryTest) + "2"; } var msg = new EventBusConfigutation(); var sp = BuildTestServiceProvider(config); // act var pb = sp.GetRequiredService <IEventBusPublisherFactory <EventBusConfigutation> >().CreatePublisher(); Assert.NotNull(pb); var scf = sp.GetService <IEventBusSubscribtionFactory <EventBusConfigutation> >(); // validate Assert.NotNull(scf); // act var subScr = (EventBusSubscriberFactory <EventBusConfigutation> .EventBusSubscriberProvider)scf.SubscribeSync(SubscriptionDelegate); subScr.ErrorHandler += LocalErrorHandler; subScr.Connection.Close(); for (int i = 0; i < 30; i++) { Thread.Yield(); Thread.Sleep(1000); if (subScr.IsConnected) { break; } } Assert.True(subScr.IsConnected); Assert.Equal(BusConnectionState.Connected, subScr.BusConnectionState); Assert.Null(subScr.ConnectionError); //Assert.IsType<OperationCanceledException>(subScr.ConnectionError); pb.PublishSync(msg, CancellationToken.None); Thread.Yield(); Thread.Sleep(1000); Assert.NotNull(msgResponse); Assert.Null(error); }
public void SubscribeDisConnectChannelAndPublishAndGetMessage() { EventBusConfigutation msgResponse = null; Exception error = null; // setup void SubscriptionDelegate(EventBusConfigutation notification) { msgResponse = notification; } void LocalErrorHandler(Exception obj) { error = obj; } void config(EventBusConfigutation c) { c.DefaultMap.ExchangeName = nameof(EventBusSubscribeFactoryTest) + "4"; c.DefaultMap.QueueName = nameof(EventBusSubscribeFactoryTest) + "4"; c.RecconectCount = 2; } var msg = new EventBusConfigutation(); var sp = BuildTestServiceProvider(config); // act var pb = sp.GetRequiredService <IEventBusPublisherFactory <EventBusConfigutation> >().CreatePublisher(); Assert.NotNull(pb); var scf = sp.GetService <IEventBusSubscribtionFactory <EventBusConfigutation> >(); // validate Assert.NotNull(scf); // act var subScr = (EventBusSubscriberFactory <EventBusConfigutation> .EventBusSubscriberProvider)scf.SubscribeSync(SubscriptionDelegate); subScr.ErrorHandler += LocalErrorHandler; subScr.ConfigutationRabbitMQ.Port = 11111; subScr.ConnectionFactory.GetConnectionFactory().Port = 11111; subScr.ConfigutationRabbitMQ.RecconectCount = 1; try { subScr.Channel.Close(); } catch { /*channel disconnection simulation*/ } Thread.Yield(); Thread.Sleep(5000); Assert.False(subScr.IsConnected); Assert.Equal(BusConnectionState.ErrorDisconnected, subScr.BusConnectionState); Assert.NotNull(subScr.ConnectionError); Assert.NotNull(error); }