public void SaveServerRecommendation_ZeroServerMemory()
        {
            //Arrange
            var server = new Server()
            {
                ArtifactId = 444
            };
            //Act
            var task = new AnalyticsCheckMemoryCheck(_wmiHelper.Object, _workspaceRepo.Object, _logger.Object, _sqlRepo.Object, 1);

            Assert.Throws <ArgumentException>(() => task.SaveServerRecommendation(server, 0, 1000000, 1000000));

            //Assert
        }
        public void SaveServerRecommendation(Int32 serverMemory, long documents, Boolean expectedGoodRec)
        {
            //Arrange
            var server = new Server()
            {
                ArtifactId = 444
            };

            _sqlRepo.Setup(s => s.AnalyticsRepository.SaveAnalyticsRecommendation(server,
                                                                                  Guids.EnvironmentCheck.CaatMemoryPerSearchableDocumentsDefaultGood, It.IsAny <String>()));
            _sqlRepo.Setup(s => s.AnalyticsRepository.SaveAnalyticsRecommendation(server,
                                                                                  Guids.EnvironmentCheck.CaatMemoryPerSearchableDocumentsDefaultWarning, It.IsAny <String>()));
            _sqlRepo.Setup(s => s.AnalyticsRepository.SaveAnalyticsRecommendation(server,
                                                                                  Guids.EnvironmentCheck.CaatMemoryPerTrainingDocumentsDefaultGood, It.IsAny <String>()));
            _sqlRepo.Setup(s => s.AnalyticsRepository.SaveAnalyticsRecommendation(server,
                                                                                  Guids.EnvironmentCheck.CaatMemoryPerTrainingDocumentsDefaultWarning, It.IsAny <String>()));
            //Act
            var task = new AnalyticsCheckMemoryCheck(_wmiHelper.Object, _workspaceRepo.Object, _logger.Object, _sqlRepo.Object, 1);

            task.SaveServerRecommendation(server, serverMemory, documents, documents);

            //Assert
            if (expectedGoodRec)
            {
                _sqlRepo.Verify(s => s.AnalyticsRepository.SaveAnalyticsRecommendation(server,
                                                                                       Guids.EnvironmentCheck.CaatMemoryPerSearchableDocumentsDefaultGood, It.IsAny <String>())
                                , "Searchable should have been good");
                _sqlRepo.Verify(s => s.AnalyticsRepository.SaveAnalyticsRecommendation(server,
                                                                                       Guids.EnvironmentCheck.CaatMemoryPerTrainingDocumentsDefaultGood, It.IsAny <String>())
                                , "Training should have been good");
            }
            else
            {
                _sqlRepo.Verify(s => s.AnalyticsRepository.SaveAnalyticsRecommendation(server,
                                                                                       Guids.EnvironmentCheck.CaatMemoryPerSearchableDocumentsDefaultWarning, It.IsAny <String>())
                                , "Searchable should have been warning");
                _sqlRepo.Verify(s => s.AnalyticsRepository.SaveAnalyticsRecommendation(server,
                                                                                       Guids.EnvironmentCheck.CaatMemoryPerTrainingDocumentsDefaultWarning, It.IsAny <String>())
                                , "Training should have been warning");
            }
        }