public void ProteinService_GetWithRefreshCalledMultipleTimesOnlyTriggersOneRefresh_ByLastRefreshTime_Test() { // Arrange var downloader = MockRepository.GenerateMock <IProjectSummaryDownloader>(); downloader.Expect(x => x.Download(null, null)).IgnoreArguments() .Callback(new Func <Stream, IProgress <ProgressInfo>, bool>((stream, progress) => { File.OpenRead("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json").CopyTo(stream); return(true); })).Repeat.Once(); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; // Act var p = service.Get(2482, true); Assert.IsNull(p); // Call twice to internally exercise the last refresh time p = service.Get(2482, true); Assert.IsNull(p); // Assert downloader.VerifyAllExpectations(); }
private UnitInfoModel BuildUnitInfoLogic(UnitInfo unitInfo, bool updateUnitInfo) { Debug.Assert(unitInfo != null); Protein protein = ProteinService.Get(unitInfo.ProjectID, true) ?? new Protein(); if (updateUnitInfo) { // update the data unitInfo.UnitRetrievalTime = LastRetrievalTime; unitInfo.OwningClientName = Settings.Name; unitInfo.OwningClientPath = Settings.DataPath(); if (unitInfo.SlotType == SlotType.Unknown) { unitInfo.SlotType = protein.Core.ToSlotType(); if (unitInfo.SlotType == SlotType.Unknown) { unitInfo.SlotType = unitInfo.CoreID.ToSlotType(); } } } // build unit info logic var unitInfoLogic = new UnitInfoModel(BenchmarkService); unitInfoLogic.CurrentProtein = protein; unitInfoLogic.UnitInfoData = unitInfo; return(unitInfoLogic); }
public void ProteinService_RefreshUpdatesRefreshParameters_Test() { // Arrange var downloader = MockRepository.GenerateStub <IProjectSummaryDownloader>(); downloader.Stub(x => x.Download(null, null)).IgnoreArguments() .Callback(new Func <Stream, IProgress <ProgressInfo>, bool>((stream, progress) => { File.OpenRead("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json").CopyTo(stream); return(true); })); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; service.ProjectsNotFound.Add(2968, DateTime.MinValue); service.LastRefreshTime = DateTime.MinValue; // Act service.Refresh(null); // Assert Assert.AreNotEqual(DateTime.MinValue, service.ProjectsNotFound[2968]); Assert.AreNotEqual(DateTime.MinValue, service.LastRefreshTime); }
public void ProteinService_GetWithRefreshRemovesFromProjectsNotFound_Test() { // Arrange var downloader = MockRepository.GenerateStub <IProjectSummaryDownloader>(); downloader.Stub(x => x.Download(null, null)).IgnoreArguments() .Callback(new Func <Stream, IProgress <ProgressInfo>, bool>((stream, progress) => { File.OpenRead("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json").CopyTo(stream); return(true); })); 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 Assert.IsNotNull(p); Assert.IsFalse(service.ProjectsNotFound.ContainsKey(6940)); }
public void ProteinService_GetWithRefreshAllowsRefreshWhenLastRefreshTimeElapsed_Test() { // Arrange var downloader = MockRepository.GenerateMock <IProjectSummaryDownloader>(); downloader.Expect(x => x.Download(null, null)).IgnoreArguments() .Callback(new Func <Stream, IProgress <ProgressInfo>, bool>((stream, progress) => { File.OpenRead("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json").CopyTo(stream); return(true); })).Repeat.Once(); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; // set to over the elapsed time (1 hour) service.LastRefreshTime = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(61)); // Act var p = service.Get(6940, true); Assert.IsNotNull(p); // Assert downloader.VerifyAllExpectations(); }
public void ProteinService_GetUnavailableProtein_Test() { // Arrange var service = new ProteinService(); // Act var p = service.Get(2482); // Assert Assert.IsNull(p); }
public void ProteinService_FileName_Test() { // Arrange var prefs = MockRepository.GenerateStub <IPreferenceSet>(); prefs.Stub(x => x.Get <string>(Preference.ApplicationDataFolderPath)).Return(Environment.CurrentDirectory); // Act var service = new ProteinService(prefs, null); // Assert Assert.AreEqual(Path.Combine(Environment.CurrentDirectory, Constants.ProjectInfoFileName), service.FileName); }
public void ProteinService_GetAvailableProtein_Test() { // Arrange var service = new ProteinService(); var protein = CreateValidProtein(2483); service.Add(protein); // Act var p = service.Get(2483); // Assert Assert.AreSame(protein, p); }
public void ProteinService_GetUnavailableProtein_AddsTheProteinIdToProjectsNotFound_Test() { // Arrange var downloader = MockRepository.GenerateStub <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_GetProjects_Test() { // 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 void ProteinService_RefreshLoadsData_Test() { // Arrange var downloader = MockRepository.GenerateStub <IProjectSummaryDownloader>(); downloader.Stub(x => x.Download(null, null)).IgnoreArguments() .Callback(new Func <Stream, IProgress <ProgressInfo>, bool>((stream, progress) => { File.OpenRead("..\\..\\..\\HFM.Proteins.Tests\\TestFiles\\summary.json").CopyTo(stream); return(true); })); var service = new ProteinService(null, downloader) { Logger = new Logging.DebugLogger() }; Assert.AreEqual(0, service.GetProjects().Count()); // Act service.Refresh(null); // Assert Assert.AreNotEqual(0, service.GetProjects().Count()); }