Example #1
0
        public void WhenGettingCheckListFromMultipleThreadsItIsInitializedOnce()
        {
            // Arrange
            var mockPackageService = new Mock <IPackageService>();

            mockPackageService
            .Setup(x => x.GetAllPackageRegistrations())
            .Returns(PacakgeRegistrationsList);

            var newService = new TyposquattingCheckListCacheService();

            // Act
            int tasksNum = 3;

            Task[] tasks = new Task[tasksNum];
            for (int i = 0; i < tasksNum; i++)
            {
                tasks[i] = Task.Factory.StartNew(() =>
                {
                    newService.GetTyposquattingCheckList(_packageIds.Count, TimeSpan.FromHours(24), mockPackageService.Object);
                    newService.GetTyposquattingCheckList(_packageIds.Count, TimeSpan.FromHours(24), mockPackageService.Object);
                });
            }
            Task.WaitAll(tasks);

            // Assert
            mockPackageService.Verify(
                x => x.GetAllPackageRegistrations(),
                Times.Once);
        }
Example #2
0
        public void CheckNullPackageService()
        {
            // Arrange
            var newService = new TyposquattingCheckListCacheService();

            // Act
            var exception = Assert.Throws <ArgumentNullException>(
                () => newService.GetTyposquattingCheckList(_packageIds.Count, TimeSpan.FromHours(24), null));

            // Assert
            Assert.Equal("packageService", exception.ParamName);
        }
Example #3
0
        public void CheckExpireTimeNotAllowed()
        {
            // Arrange
            var checkListExpireTime = TimeSpan.FromHours(-1);
            var mockPackageService  = new Mock <IPackageService>();

            mockPackageService
            .Setup(x => x.GetAllPackageRegistrations())
            .Returns(PacakgeRegistrationsList);

            var newService = new TyposquattingCheckListCacheService();

            // Act
            var exception = Assert.Throws <ArgumentOutOfRangeException>(
                () => newService.GetTyposquattingCheckList(_packageIds.Count, checkListExpireTime, mockPackageService.Object));

            // Assert
            Assert.Equal(nameof(checkListExpireTime), exception.ParamName);
        }
Example #4
0
        public void CheckConfiguredLengthNotAllowed()
        {
            // Arrange
            var mockPackageService = new Mock <IPackageService>();

            mockPackageService
            .Setup(x => x.GetAllPackageRegistrations())
            .Returns(PacakgeRegistrationsList);
            var checkListConfiguredLength = -1;

            var newService = new TyposquattingCheckListCacheService();

            // Act
            var exception = Assert.Throws <ArgumentOutOfRangeException>(
                () => newService.GetTyposquattingCheckList(checkListConfiguredLength, TimeSpan.FromHours(24), mockPackageService.Object));

            // Assert
            Assert.Equal(nameof(checkListConfiguredLength), exception.ParamName);
        }
Example #5
0
        public void WhenNotEqualConfiguredLengthRefreshCheckListCache()
        {
            // Arrange
            var mockPackageService = new Mock <IPackageService>();

            mockPackageService
            .Setup(x => x.GetAllPackageRegistrations())
            .Returns(PacakgeRegistrationsList);

            var newService = new TyposquattingCheckListCacheService();

            // Act
            newService.GetTyposquattingCheckList(_packageIds.Count, TimeSpan.FromHours(24), mockPackageService.Object);
            newService.GetTyposquattingCheckList(_packageIds.Count - 1, TimeSpan.FromHours(24), mockPackageService.Object);

            // Assert
            mockPackageService.Verify(
                x => x.GetAllPackageRegistrations(),
                Times.Exactly(2));
        }
Example #6
0
        public void WhenExceedExpireTimeRefreshCheckListCache()
        {
            // Arrange
            var mockPackageService = new Mock <IPackageService>();

            mockPackageService
            .Setup(x => x.GetAllPackageRegistrations())
            .Returns(PacakgeRegistrationsList);

            var newService = new TyposquattingCheckListCacheService();

            // Act
            newService.GetTyposquattingCheckList(_packageIds.Count, TimeSpan.FromHours(0), mockPackageService.Object);
            Thread.Sleep(1);
            newService.GetTyposquattingCheckList(_packageIds.Count, TimeSpan.FromHours(0), mockPackageService.Object);

            // Assert
            mockPackageService.Verify(
                x => x.GetAllPackageRegistrations(),
                Times.Exactly(2));
        }