public void GetSystemInfo_ResultIsNotNull()
        {
            // Arrange
            ITimeProvider timeProvider = new UTCTimeProvider();
            IMachineNameProvider machineNameProvider = new EnvironmentMachineNameProvider();

            var agentControlDefinitionProvider = new Mock<IAgentControlDefinitionProvider>();
            var agentControlDefinition = new AgentControlDefinition { AgentIsEnabled = true, CheckIntervalInSeconds = 60 };
            agentControlDefinitionProvider.Setup(a => a.GetControlDefinition()).Returns(agentControlDefinition);

            IProcessorStatusProvider processorStatusProvider = new ProcessorStatusProvider();
            IMemoryUnitConverter memoryUnitConverter = new MemoryUnitConverter();
            ISystemMemoryStatusProvider systemMemoryStatusProvider = new SystemMemoryStatusProvider(memoryUnitConverter);
            ILogicalDiscInstanceNameProvider logicalDiscInstanceNameProvider = new LogicalDiscInstanceNameProvider();
            ISystemStorageStatusProvider systemStorageStatusProvider = new SystemStorageStatusProvider(logicalDiscInstanceNameProvider);
            ISystemPerformanceDataProvider systemPerformanceDataProvider = new SystemPerformanceDataProvider(
                agentControlDefinitionProvider.Object, processorStatusProvider, systemMemoryStatusProvider, systemStorageStatusProvider);

            var httpStatusCodeFetcher = new Mock<IHttpStatusCodeFetcher>();

            IHttpStatusCodeCheckResultProvider httpStatusCodeCheckResultProvider = new HttpStatusCodeCheckResultProvider(
                agentControlDefinitionProvider.Object, httpStatusCodeFetcher.Object);

            var systemInformationProvider = new SystemInformationProvider(
                timeProvider, machineNameProvider, systemPerformanceDataProvider, httpStatusCodeCheckResultProvider);

            // Act
            var result = systemInformationProvider.GetSystemInfo();

            // Assert
            Assert.IsNotNull(result);
        }
        public void GetLogicalDiscInstanceNames_ResultIsNotEmpty()
        {
            // Arrange
            var logicalDiscInstanceNameProvider = new LogicalDiscInstanceNameProvider();

            // Act
            var result = logicalDiscInstanceNameProvider.GetLogicalDiscInstanceNames();

            // Assert
            Assert.IsTrue(result.Length > 0);
        }
        public void GetStorageStatus_ResultIsNotNullAndContainsAtLeastOneEntry()
        {
            // Arrange
            ILogicalDiscInstanceNameProvider logicalDiscInstanceNameProvider = new LogicalDiscInstanceNameProvider();
            var systemStorageStatusProvider = new SystemStorageStatusProvider(logicalDiscInstanceNameProvider);

            // Act
            var result = systemStorageStatusProvider.GetStorageStatus();

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.StorageDeviceInfos.Length > 0);
        }