public void Setup()
        {
            _systemInfo          = Mock.Create <ISystemInfo>();
            _agentHealthReporter = Mock.Create <IAgentHealthReporter>();

            Mock.Arrange(() => _systemInfo.GetTotalLogicalProcessors()).Returns(6);
            Mock.Arrange(() => _systemInfo.GetTotalPhysicalMemoryBytes()).Returns((ulong)16000 * 1024 * 1024);

            _dnsStatic = Mock.Create <IDnsStatic>();
            Mock.Arrange(() => _dnsStatic.GetHostName()).Returns("Host-Name");
            Mock.Arrange(() => _dnsStatic.GetFullHostName()).Returns("Host-Name.Domain");
            Mock.Arrange(() => _dnsStatic.GetIpAddresses()).Returns(new List <string> {
                "127.0.0.1", "0.0.0.0"
            });
        }
        public UtilizationSettingsModel GetUtilizationSettings()
        {
            var totalMemory       = _systemInfo.GetTotalPhysicalMemoryBytes();
            var logicalProcessors = _systemInfo.GetTotalLogicalProcessors();
            var hostname          = _configuration.UtilizationHostName;
            var fullHostName      = _configuration.UtilizationFullHostName;
            var ipAddress         = _dnsStatic.GetIpAddresses();
            var vendors           = GetVendorSettings();
            var bootIdResult      = _systemInfo.GetBootId();

            if (!bootIdResult.IsValid)
            {
                Log.Warn("boot_id is not in expected format.");
                _agentHealthReporter.ReportBootIdError();
            }

            //if bootId is longer than 128 characters, truncate it to 128 characters.
            var bootId = Truncate(bootIdResult.BootId, MaxBootIdLength);

            return(new UtilizationSettingsModel(logicalProcessors, totalMemory, hostname, fullHostName, ipAddress, bootId, vendors, GetUtilitizationConfig()));
        }