Example #1
0
        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();
        }
Example #2
0
        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);
        }
Example #3
0
        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));
        }
Example #4
0
        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();
        }
Example #5
0
        public void ProteinService_GetUnavailableProtein_Test()
        {
            // Arrange
            var service = new ProteinService();
            // Act
            var p = service.Get(2482);

            // Assert
            Assert.IsNull(p);
        }
Example #6
0
        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);
        }
Example #7
0
        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));
        }