예제 #1
0
        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);
        }
예제 #2
0
        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));
        }
예제 #3
0
        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);
        }
예제 #4
0
        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));
        }