示例#1
0
        public async Task NetworkObserver_ObserveAsync_Successful_Observer_IsHealthy_NoWarningsOrErrors()
        {
            if (!this.isSFRuntimePresentOnTestMachine)
            {
                return;
            }

            var startDateTime = DateTime.Now;

            ObserverManager.FabricServiceContext = this.context;
            ObserverManager.FabricClientInstance = new FabricClient(FabricClientRole.User);
            ObserverManager.TelemetryEnabled     = false;
            ObserverManager.EtwEnabled           = false;

            var obs = new NetworkObserver
            {
                IsTestRun = true,
            };

            await obs.ObserveAsync(this.token).ConfigureAwait(true);

            // observer ran to completion with no errors...
            Assert.IsTrue(obs.LastRunDateTime > startDateTime);

            // observer detected no error conditions...
            Assert.IsFalse(obs.HasActiveFabricErrorOrWarning);

            // observer did not have any internal errors during run...
            Assert.IsFalse(obs.IsUnhealthy);

            var outputFilePath = $@"{Environment.CurrentDirectory}\observer_logs\NetInfo.txt";

            // Output log file was created successfully during test...
            Assert.IsTrue(File.Exists(outputFilePath) &&
                          File.GetLastWriteTime(outputFilePath) > startDateTime &&
                          File.GetLastWriteTime(outputFilePath) < obs.LastRunDateTime);

            // Output file is not empty...
            Assert.IsTrue(File.ReadAllLines(outputFilePath).Length > 0);

            obs.Dispose();
            ObserverManager.FabricClientInstance.Dispose();
        }