public void HealthDataService_HandlesExceptions_ThrownBy_GetHealthAsync() { var tokenSource = new CancellationTokenSource(); var cancellationToken = tokenSource.Token; var traceWriterMock = TraceWriterMock.Create_Verifible(); var configData = new ServiceConfigurationData(); var fabricClientMock = new FabricClientMock(cancellationToken, traceWriterMock); fabricClientMock.Mock .Setup(mock => mock.DoGetHealthAsync <FabricHealth.ClusterHealth>( It.IsAny <Func <Task <FabricHealth.ClusterHealth> > >())) .Throws <TimeoutException>(); var eventWriterMock = new Mock <MonitoringEventWriter>(MockBehavior.Strict); var metricsEmitterMock = new Mock <MetricsEmitter>(MockBehavior.Strict, configData, traceWriterMock.Object); var filterRepo = new EntityFilterRepository(configData); var consumer = new IfxHealthDataConsumer(eventWriterMock.Object, metricsEmitterMock.Object); var producer = new HealthDataProducer(fabricClientMock.Mock.Object, consumer, traceWriterMock.Object, configData, filterRepo); Mock <HealthDataService> healthServiceMock = new Mock <HealthDataService>(producer, traceWriterMock.Object, configData, filterRepo) { CallBase = true }; healthServiceMock.Cancel_AfterFirstReadPass(tokenSource, cancellationToken); healthServiceMock.Object.RunAsync(cancellationToken).Wait(timeout: TimeSpan.FromMilliseconds(300)); }
private void ProcessAsync <TEntityHealth>( Func <FabricHealthClientWrapper, HealthDataConsumer, TraceWriterWrapper, ServiceConfigurationData, EntityFilterRepository, IEntity> getEntity) where TEntityHealth : FabricHealth.EntityHealth { var tokenSource = new CancellationTokenSource(); var cancellationToken = tokenSource.Token; var traceWriterMock = TraceWriterMock.Create_Verifible(); var configData = new ServiceConfigurationData(); var fabricClientMock = new Mock <FabricHealthClientWrapper>( traceWriterMock.Object, "FabricMonitoringServiceType", Guid.Empty, 1) { CallBase = true }; fabricClientMock .Setup(mock => mock.DoGetHealthAsync <TEntityHealth>( It.IsAny <Func <Task <TEntityHealth> > >())) .Throws <TimeoutException>(); var eventWriterMock = new Mock <MonitoringEventWriter>(MockBehavior.Strict); var metricsEmitterMock = new Mock <MetricsEmitter>(MockBehavior.Strict, configData, traceWriterMock.Object); var filterRepo = new EntityFilterRepository(configData); var consumer = new IfxHealthDataConsumer(eventWriterMock.Object, metricsEmitterMock.Object); var producer = new HealthDataProducer(fabricClientMock.Object, consumer, traceWriterMock.Object, configData, filterRepo); IEntity entity = getEntity(fabricClientMock.Object, consumer, traceWriterMock.Object, configData, filterRepo); var result = entity.ProcessAsync(cancellationToken).GetAwaiter().GetResult(); Assert.IsNotNull(result); Assert.AreEqual(0, result.Count()); }