public void ProteinService_Get_Test2() { // Arrange var downloader = MockRepository.GenerateMock <IProjectSummaryDownloader>(); downloader.Expect(x => x.Download()).Repeat.Once(); downloader.Stub(x => x.FilePath).Return("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json"); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; var protein = CreateValidProtein(2483); service.Add(protein); // Act Protein p = service.Get(2483, true); Assert.IsNotNull(p); p = service.Get(2482, true); Assert.IsNull(p); // Call twice to internally exercise the projects not found list p = service.Get(2482, true); Assert.IsNull(p); // Assert downloader.VerifyAllExpectations(); }
private (PointPairList Points, string Label) BuildSlotPoints(IEnumerable <ProteinBenchmark> benchmarks, Dictionary <int, double> projectToXAxisOrdinal) { bool calculateBonus = Preferences.Get <BonusCalculation>(Preference.BonusCalculation) != BonusCalculation.None; var points = new PointPairList(); string label = null; foreach (var b in benchmarks) { var protein = ProteinService.Get(b.ProjectID); if (protein is null) { continue; } if (label is null) { label = GetSlotNameAndProcessor(b, protein); } double y = GetPPD(protein, b.AverageFrameTime, calculateBonus); points.Add(projectToXAxisOrdinal[b.ProjectID], y); } return(points, label); }
private Protein GetProtein(int?projectID) { if (!projectID.HasValue) { return(null); } return(ProteinService.Get(projectID.Value)); }
public void ProteinService_FileName_Test() { // Arrange var prefs = MockRepository.GenerateStub<IPreferenceSet>(); prefs.Stub(x => x.ApplicationDataFolderPath).Return(Environment.CurrentDirectory); // Act var service = new ProteinService(prefs, null); // Assert Assert.AreEqual(System.IO.Path.Combine(Environment.CurrentDirectory, Constants.ProjectInfoFileName), service.FileName); }
public static IProteinService CreateProteinService() { var service = new ProteinService(); var protein = new Protein(); protein.ProjectNumber = 6600; protein.WorkUnitName = "WorkUnitName"; protein.Core = "GROGPU2"; protein.Credit = 450; protein.KFactor = 0; protein.Frames = 100; protein.NumberOfAtoms = 5000; protein.PreferredDays = 2; protein.MaximumDays = 3; service.Add(protein); protein = new Protein(); protein.ProjectNumber = 5797; protein.WorkUnitName = "WorkUnitName2"; protein.Core = "GROGPU2"; protein.Credit = 675; protein.KFactor = 2.3; protein.Frames = 100; protein.NumberOfAtoms = 7000; protein.PreferredDays = 2; protein.MaximumDays = 3; service.Add(protein); protein = new Protein(); protein.ProjectNumber = 8011; protein.WorkUnitName = "WorkUnitName3"; protein.Core = "GRO-A4"; protein.Credit = 106.6; protein.KFactor = 0.75; protein.Frames = 100; protein.NumberOfAtoms = 9000; protein.PreferredDays = 2.13; protein.MaximumDays = 4.62; service.Add(protein); protein = new Protein(); protein.ProjectNumber = 6903; protein.WorkUnitName = "WorkUnitName4"; protein.Core = "GRO-A5"; protein.Credit = 22706; protein.KFactor = 38.05; protein.Frames = 100; protein.NumberOfAtoms = 11000; protein.PreferredDays = 5; protein.MaximumDays = 12; service.Add(protein); return(service); }
public void ProteinService_FileName_Test() { // Arrange var prefs = MockRepository.GenerateStub <IPreferenceSet>(); prefs.Stub(x => x.ApplicationDataFolderPath).Return(Environment.CurrentDirectory); // Act var service = new ProteinService(prefs, null); // Assert Assert.AreEqual(System.IO.Path.Combine(Environment.CurrentDirectory, Constants.ProjectInfoFileName), service.FileName); }
private void SetProtein() { var projectID = SelectedSlotProject?.Value; if (projectID is null) { Protein = null; return; } Protein = ProteinService.Get(projectID.Value); }
public void ProteinService_Get_Test1() { // Arrange var service = new ProteinService(); var protein = CreateValidProtein(2483); service.Add(protein); // Act & Assert Protein p = service.Get(2483); Assert.IsNotNull(p); p = service.Get(2482); Assert.IsNull(p); }
public void ProteinService_Get_Test3() { // Arrange var downloader = MockRepository.GenerateMock <IProjectSummaryDownloader>(); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; // Act service.Get(2482, true); // Assert Assert.IsTrue(service.ProjectsNotFound.ContainsKey(2482)); }
private WorkUnitModel BuildWorkUnitModel(SlotModel slotModel, WorkUnit workUnit) { Debug.Assert(slotModel != null); Debug.Assert(workUnit != null); Protein protein = ProteinService.GetOrRefresh(workUnit.ProjectID) ?? new Protein(); // update the data workUnit.UnitRetrievalTime = LastRetrievalTime; var workUnitModel = new WorkUnitModel(slotModel, workUnit); workUnitModel.CurrentProtein = protein; return(workUnitModel); }
public void ProteinService_ResetRefreshParameters_Test() { // Arrange var downloader = MockRepository.GenerateMock <IProjectSummaryDownloader>(); downloader.Expect(x => x.ResetDownloadParameters()).Repeat.Once(); var service = new ProteinService(null, downloader); service.ProjectsNotFound.Add(2968, DateTime.MinValue); // Act service.ResetRefreshParameters(); // Assert Assert.IsFalse(service.ProjectsNotFound.ContainsKey(2968)); downloader.VerifyAllExpectations(); }
public void ProteinService_GetProjects_Test1() { // Arrange var service = new ProteinService(); var projects = Enumerable.Range(1, 5).ToList(); foreach (int projectNumber in projects) { service.Add(CreateValidProtein(projectNumber)); } // Act var serviceProjects = service.GetProjects(); // Assert Assert.IsTrue(projects.SequenceEqual(serviceProjects)); }
public override void Generate(IBenchmarksReportSource source) { var benchmarkText = new List <string>(); var slotIdentifier = source.SlotIdentifier; var projects = source.Projects; if (slotIdentifier is null || projects.Count == 0) { Result = benchmarkText; return; } string numberFormat = NumberFormat.Get(Preferences.Get <int>(Preference.DecimalPlaces)); var bonusCalculation = Preferences.Get <BonusCalculation>(Preference.BonusCalculation); bool calculateBonus = bonusCalculation != BonusCalculation.None; foreach (var projectID in projects) { var protein = ProteinService.Get(projectID); if (protein is null) { benchmarkText.Add(String.Format(CultureInfo.InvariantCulture, " Project ID: {0} Not Found", projectID)); benchmarkText.AddRange(Enumerable.Repeat(String.Empty, 2)); continue; } var benchmarks = BenchmarkService.GetBenchmarks(slotIdentifier.Value, protein.ProjectNumber) .OrderBy(x => x.SlotIdentifier.Name) .ThenBy(x => x.Threads); benchmarkText .AddRange(EnumerateProjectInformation(protein) .Concat(Enumerable.Repeat(String.Empty, 2))); foreach (var b in benchmarks) { benchmarkText .AddRange(EnumerateBenchmarkInformation(protein, b, numberFormat, calculateBonus) .Concat(EnumerateSlotInformation(FindRunningSlot(b), numberFormat, bonusCalculation)) .Concat(Enumerable.Repeat(String.Empty, 2))); } } Result = benchmarkText; }
public void ProteinService_Refresh_Test() { // Arrange var downloader = MockRepository.GenerateMock <IProjectSummaryDownloader>(); downloader.Expect(x => x.Download()).Repeat.Once(); downloader.Stub(x => x.FilePath).Return("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json"); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; Assert.AreEqual(0, service.GetProjects().Count()); // Act service.Refresh(); // Assert Assert.AreNotEqual(0, service.GetProjects().Count()); }
public void ProteinService_Get_Test2() { // Arrange var downloader = MockRepository.GenerateMock<IProjectSummaryDownloader>(); downloader.Expect(x => x.Download()).Repeat.Once(); downloader.Stub(x => x.FilePath).Return("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json"); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; var protein = CreateValidProtein(2483); service.Add(protein); // Act Protein p = service.Get(2483, true); Assert.IsNotNull(p); p = service.Get(2482, true); Assert.IsNull(p); // Call twice to internally exercise the projects not found list p = service.Get(2482, true); Assert.IsNull(p); // Assert downloader.VerifyAllExpectations(); }
public void ProteinService_RefreshAsync_Test() { // Arrange var downloader = MockRepository.GenerateMock <IProjectSummaryDownloader>(); var taskSource = new TaskCompletionSource <object>(); taskSource.SetResult(null); downloader.Expect(x => x.DownloadAsync(null)).Return(taskSource.Task).Repeat.Once(); downloader.Stub(x => x.FilePath).Return("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json"); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; Assert.AreEqual(0, service.GetProjects().Count()); // Act service.RefreshAsync(null).Wait(); // Assert Assert.AreNotEqual(0, service.GetProjects().Count()); }
public void BenchmarkPresenter_DescriptionLinkClicked_StartsLocalProcess() { // Arrange var dataContainer = new ProteinDataContainer(); dataContainer.Data.Add(new Protein { ProjectNumber = 12345, Description = "http://someurl" }); var proteinService = new ProteinService(dataContainer, null, null); var benchmarkService = CreateBenchmarkServiceWithOneSlotAndProject(); var model = CreateModel(proteinService, benchmarkService); using (var presenter = new MockFormBenchmarksPresenter(model)) { presenter.Show(); var localProcess = new MockLocalProcessService(); // Act presenter.DescriptionLinkClicked(localProcess); // Assert Assert.AreEqual(1, presenter.Model.SlotProjects.Count); Assert.IsTrue(localProcess.Invocations.First().FileName == "http://someurl"); } }
public void ProteinService_Get_Test4() { // Arrange var downloader = MockRepository.GenerateMock <IProjectSummaryDownloader>(); downloader.Expect(x => x.Download()).Repeat.Once(); downloader.Stub(x => x.FilePath).Return("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json"); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; // Set project not found to excercise removal code service.ProjectsNotFound.Add(6940, DateTime.MinValue); // Act Protein p = service.Get(6940, true); Assert.IsNotNull(p); // Assert downloader.VerifyAllExpectations(); Assert.IsFalse(service.ProjectsNotFound.ContainsKey(6940)); }
public void ProteinService_RefreshAsync_Test() { // Arrange var downloader = MockRepository.GenerateMock<IProjectSummaryDownloader>(); var taskSource = new TaskCompletionSource<object>(); taskSource.SetResult(null); downloader.Expect(x => x.DownloadAsync(null)).Return(taskSource.Task).Repeat.Once(); downloader.Stub(x => x.FilePath).Return("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json"); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; Assert.AreEqual(0, service.GetProjects().Count()); // Act service.RefreshAsync(null).Wait(); // Assert Assert.AreNotEqual(0, service.GetProjects().Count()); }
public void ProteinService_Get_Test3() { // Arrange var downloader = MockRepository.GenerateMock<IProjectSummaryDownloader>(); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; // Act service.Get(2482, true); // Assert Assert.IsTrue(service.ProjectsNotFound.ContainsKey(2482)); }
public void ProteinService_ResetRefreshParameters_Test() { // Arrange var downloader = MockRepository.GenerateMock<IProjectSummaryDownloader>(); downloader.Expect(x => x.ResetDownloadParameters()).Repeat.Once(); var service = new ProteinService(null, downloader); service.ProjectsNotFound.Add(2968, DateTime.MinValue); // Act service.ResetRefreshParameters(); // Assert Assert.IsFalse(service.ProjectsNotFound.ContainsKey(2968)); downloader.VerifyAllExpectations(); }
public void ProteinService_Get_Test4() { // Arrange var downloader = MockRepository.GenerateMock<IProjectSummaryDownloader>(); downloader.Expect(x => x.Download()).Repeat.Once(); downloader.Stub(x => x.FilePath).Return("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json"); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; // Set project not found to excercise removal code service.ProjectsNotFound.Add(6940, DateTime.MinValue); // Act Protein p = service.Get(6940, true); Assert.IsNotNull(p); // Assert downloader.VerifyAllExpectations(); Assert.IsFalse(service.ProjectsNotFound.ContainsKey(6940)); }
public void ProteinService_Refresh_Test() { // Arrange var downloader = MockRepository.GenerateMock<IProjectSummaryDownloader>(); downloader.Expect(x => x.Download()).Repeat.Once(); downloader.Stub(x => x.FilePath).Return("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json"); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; Assert.AreEqual(0, service.GetProjects().Count()); // Act service.Refresh(); // Assert Assert.AreNotEqual(0, service.GetProjects().Count()); }