コード例 #1
0
        public void FailedDeleteUnreferencedTokensAreCleanedTest()
        {
            IEnumerable <string> unreferencedTokens1 = new List <string> {
                Guid.NewGuid().ToString(), Guid.NewGuid().ToString()
            };
            IEnumerable <string> unreferencedTokens2 = new List <string> {
                Guid.NewGuid().ToString(), Guid.NewGuid().ToString()
            };

            var mockRepo = new MockRepository(MockBehavior.Strict);

            var fileRepo1Mock = mockRepo.Create <IFileRepository>();

            fileRepo1Mock.Setup(r => r.GetTokens()).Returns(unreferencedTokens1);
            // Deleting from this repo will throw exceptions
            fileRepo1Mock.Setup(s => s.Delete(It.IsIn(unreferencedTokens1))).Throws <Exception>();

            // This repo should still delete files even though exceptions were thrown
            var fileRepo2Mock = mockRepo.Create <IFileRepository>();

            fileRepo2Mock.Setup(r => r.GetTokens()).Returns(unreferencedTokens2);
            fileRepo2Mock.Setup(s => s.Delete(It.IsIn(unreferencedTokens2)));

            var action = new CleanupFileRepositoriesAction(new List <IFileRepository> {
                fileRepo1Mock.Object, fileRepo2Mock.Object
            }, 1000);

            action.Execute(null);

            mockRepo.VerifyAll();
        }
コード例 #2
0
        public void UnreferencedTokensAreCleanedTest()
        {
            IEnumerable <string> unreferencedTokens1 = new List <string> {
                Guid.NewGuid().ToString(), Guid.NewGuid().ToString()
            };
            IEnumerable <string> unreferencedTokens2 = new List <string> {
                Guid.NewGuid().ToString(), Guid.NewGuid().ToString()
            };

            var mockRepo = new MockRepository(MockBehavior.Strict);

            var fileRepo1Mock = mockRepo.Create <IFileRepository>();

            fileRepo1Mock.Setup(r => r.GetTokens()).Returns(unreferencedTokens1);
            fileRepo1Mock.Setup(s => s.Delete(It.IsIn(unreferencedTokens1)));

            var fileRepo2Mock = mockRepo.Create <IFileRepository>();

            fileRepo2Mock.Setup(r => r.GetTokens()).Returns(unreferencedTokens2);
            fileRepo2Mock.Setup(s => s.Delete(It.IsIn(unreferencedTokens2)));

            var action = new CleanupFileRepositoriesAction(new List <IFileRepository> {
                fileRepo1Mock.Object, fileRepo2Mock.Object
            }, 1000);

            action.Execute(null);

            mockRepo.VerifyAll();
        }
コード例 #3
0
        public void OnlyUnreferencedTokensCleanedTest(int batchSize)
        {
            var referencedHashes1 = CreateTestPhotos(2);
            IEnumerable <string> unreferencedHashes1 = new List <string> {
                Guid.NewGuid().ToString(), Guid.NewGuid().ToString()
            };
            var referencedHashes2 = CreateTestPhotos(2);
            IEnumerable <string> unreferencedHashes2 = new List <string> {
                Guid.NewGuid().ToString(), Guid.NewGuid().ToString()
            };

            var hashes1 = new List <string>();

            hashes1.AddRange(referencedHashes1);
            hashes1.AddRange(unreferencedHashes1);

            var hashes2 = new List <string>();

            hashes2.AddRange(referencedHashes2);
            hashes2.AddRange(unreferencedHashes2);

            var mockRepo = new MockRepository(MockBehavior.Strict);

            var fileRepo1Mock = mockRepo.Create <IFileRepository>();

            fileRepo1Mock.Setup(r => r.GetTokens()).Returns(hashes1);
            fileRepo1Mock.Setup(s => s.Delete(It.IsIn(unreferencedHashes1)));

            var fileRepo2Mock = mockRepo.Create <IFileRepository>();

            fileRepo2Mock.Setup(r => r.GetTokens()).Returns(hashes2);
            fileRepo2Mock.Setup(s => s.Delete(It.IsIn(unreferencedHashes2)));

            var action = new CleanupFileRepositoriesAction(new List <IFileRepository> {
                fileRepo1Mock.Object, fileRepo2Mock.Object
            }, batchSize);

            action.Execute(null);

            mockRepo.VerifyAll();
        }
コード例 #4
0
        public void NoTokensTest()
        {
            IEnumerable <string> unreferencedTokens1 = new List <string>();
            IEnumerable <string> unreferencedTokens2 = new List <string>();

            var mockRepo = new MockRepository(MockBehavior.Strict);

            var fileRepo1Mock = mockRepo.Create <IFileRepository>();

            fileRepo1Mock.Setup(r => r.GetTokens()).Returns(unreferencedTokens1);

            var fileRepo2Mock = mockRepo.Create <IFileRepository>();

            fileRepo2Mock.Setup(r => r.GetTokens()).Returns(unreferencedTokens2);

            var action = new CleanupFileRepositoriesAction(new List <IFileRepository> {
                fileRepo1Mock.Object, fileRepo2Mock.Object
            }, 1000);

            action.Execute(null);

            mockRepo.VerifyAll();
        }
コード例 #5
0
        public void ReferencedTokensNotCleanedTest()
        {
            var referencedHashes1 = CreateTestPhotos(2);
            var referencedHashes2 = CreateTestPhotos(2);

            var mockRepo = new MockRepository(MockBehavior.Strict);

            var fileRepo1Mock = mockRepo.Create <IFileRepository>();

            fileRepo1Mock.Setup(r => r.GetTokens()).Returns(referencedHashes1);

            var fileRepo2Mock = mockRepo.Create <IFileRepository>();

            fileRepo2Mock.Setup(r => r.GetTokens()).Returns(referencedHashes2);

            var action = new CleanupFileRepositoriesAction(new List <IFileRepository> {
                fileRepo1Mock.Object, fileRepo2Mock.Object
            }, 1000);

            action.Execute(null);

            mockRepo.VerifyAll();
        }