public void ProteinService_GetOrRefresh_CalledMultipleTimesOnlyTriggersOneRefresh_ByLastRefresh() { // Arrange var summaryService = CreateProjectSummaryService(); var service = new ProteinService(new ProteinDataContainer(), summaryService, Logging.TestLogger.Instance); // Act var p = service.GetOrRefresh(2482); Assert.IsNull(p); // Call twice to internally exercise the LastRefresh value p = service.GetOrRefresh(2482); Assert.IsNull(p); // Assert Mock.Get(summaryService).Verify(x => x.GetProteins(It.IsAny <IProgress <ProgressInfo> >()), Times.Once); }
public void ProteinService_Get_UnavailableProtein_AddsTheProjectIDToLastProjectRefresh() { // Arrange var mockSummaryService = new Mock <IProjectSummaryService>(); var service = new ProteinService(new ProteinDataContainer(), mockSummaryService.Object, Logging.TestLogger.Instance); // Act service.GetOrRefresh(2482); // Assert Assert.IsTrue(service.LastProjectRefresh.ContainsKey(2482)); }
public void ProteinService_GetOrRefresh_AllowsRefreshWhenLastRefreshElapsed() { // Arrange var summaryService = CreateProjectSummaryService(); var service = new ProteinService(new ProteinDataContainer(), summaryService, Logging.TestLogger.Instance); // set to over the elapsed time (1 hour) service.LastRefresh = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(61)); // Act var p = service.GetOrRefresh(6940); Assert.IsNotNull(p); // Assert Mock.Get(summaryService).Verify(x => x.GetProteins(It.IsAny <IProgress <ProgressInfo> >()), Times.Once); }
public void ProteinService_GetOrRefresh_RemovesFromLastProjectRefresh() { // Arrange var summaryService = CreateProjectSummaryService(); var service = new ProteinService(new ProteinDataContainer(), summaryService, Logging.TestLogger.Instance); // Set project not found to exercise removal code service.LastProjectRefresh.Add(6940, DateTime.MinValue); // Act Protein p = service.GetOrRefresh(6940); // Assert Assert.IsNotNull(p); Assert.IsFalse(service.LastProjectRefresh.ContainsKey(6940)); }