Exemple #1
0
        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));
        }
Exemple #2
0
        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());
        }