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

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