Ejemplo n.º 1
0
        public void InvalidConstructorParamTest()
        {
            var mockRepo      = new MockRepository(MockBehavior.Loose);
            var eventLogMock  = mockRepo.Create <IEventLog>();
            var repoPath      = GetTempDirectoryPath();
            var tokenProvider = new RandomFileTokenProvider();

            try
            {
                Assert.That(() => new FileRepository(null, repoPath, tokenProvider, eventLogMock.Object, TimeSpan.MaxValue),
                            Throws.TypeOf <ArgumentNullException>().And.Property("ParamName").EqualTo("name"));

                Assert.That(() => new FileRepository("TestRepo", null, tokenProvider, eventLogMock.Object, TimeSpan.MaxValue),
                            Throws.TypeOf <ArgumentNullException>().And.Property("ParamName").EqualTo("path"));

                Assert.That(() => new FileRepository("TestRepo", repoPath, null, eventLogMock.Object, TimeSpan.MaxValue),
                            Throws.TypeOf <ArgumentNullException>().And.Property("ParamName").EqualTo("tokenProvider"));

                Assert.That(() => new FileRepository("TestRepo", @"XYZ:\?", tokenProvider, eventLogMock.Object, TimeSpan.MaxValue),
                            Throws.TypeOf <ArgumentException>());

                Assert.That(() => new FileRepository("TestRepo", repoPath, tokenProvider, null, TimeSpan.MaxValue),
                            Throws.TypeOf <ArgumentNullException>().And.Property("ParamName").EqualTo("eventLog"));

                Assert.That(() => new FileRepository("TestRepo", repoPath, tokenProvider, eventLogMock.Object, new TimeSpan()),
                            Throws.TypeOf <ArgumentOutOfRangeException>().And.Property("ParamName").EqualTo("retentionPeriod"));

                Assert.That(() => new FileRepository("TestRepo", repoPath, tokenProvider, eventLogMock.Object, TimeSpan.MaxValue, new TimeSpan()),
                            Throws.TypeOf <ArgumentOutOfRangeException>().And.Property("ParamName").EqualTo("cleanupInterval"));
            }
            finally
            {
                DeleteDirectory(repoPath);
            }
        }
Ejemplo n.º 2
0
        public void ComputeTokenIsRandomTest()
        {
            var tokens = new HashSet <string>();

            var provider = new RandomFileTokenProvider();

            byte[] data = { 1, 2, 3, 4, 5, 6 };
            using (var ms = new MemoryStream(data))
            {
                tokens.Add(provider.ComputeToken(ms));
            }

            using (var ms = new MemoryStream(data))
            {
                tokens.Add(provider.ComputeToken(ms));
            }

            byte[] data2 = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            using (var ms = new MemoryStream(data2))
            {
                tokens.Add(provider.ComputeToken(ms));
            }

            Assert.AreEqual(3, tokens.Count, "The number of tokens is invalid");
        }
Ejemplo n.º 3
0
        /// <summary>
        ///     Perform any registrations
        /// </summary>
        /// <param name="builder">The autofac container builder.</param>
        protected override void Load(ContainerBuilder builder)
        {
            var sha256TokenProvider = new Sha256FileTokenProvider();
            var randomTokenProvider = new RandomFileTokenProvider();

            // Register file repositories
            builder.Register(c => FileRepositoryFactory.CreateFileRepository(ApplicationLibraryFileRepositoryConfigName, sha256TokenProvider, @"C:\PlatformFileRepos\AppLibrary", TimeSpan.MaxValue))
            .Named <FileRepository>(ApplicationLibraryFileRepositoryName)
            .Named <IFileRepository>(ApplicationLibraryFileRepositoryName)
            .As <IFileRepository>()
            .SingleInstance();

            // Only keep files for 1 day
            builder.Register(c => FileRepositoryFactory.CreateFileRepository(TemporaryFileRepositoryConfigName, randomTokenProvider, @"C:\PlatformFileRepos\Temporary", TimeSpan.FromDays(1)))
            .Named <FileRepository>(TemporaryFileRepositoryName)
            .Named <IFileRepository>(TemporaryFileRepositoryName)
            .As <IFileRepository>()
            .SingleInstance();

            builder.Register(c => FileRepositoryFactory.CreateFileRepository(BinaryFileRepositoryConfigName, sha256TokenProvider, @"C:\PlatformFileRepos\Binary", TimeSpan.MaxValue))
            .Named <FileRepository>(BinaryFileRepositoryName)
            .Named <IFileRepository>(BinaryFileRepositoryName)
            .As <IFileRepository>()
            .SingleInstance();

            builder.Register(c => FileRepositoryFactory.CreateFileRepository(DocumentFileRepositoryConfigName, sha256TokenProvider, @"C:\PlatformFileRepos\Document", TimeSpan.MaxValue))
            .Named <FileRepository>(DocumentFileRepositoryName)
            .Named <IFileRepository>(DocumentFileRepositoryName)
            .As <IFileRepository>()
            .SingleInstance();
        }
Ejemplo n.º 4
0
        public void ComputeTokenInvalidStreamTest()
        {
            var provider = new RandomFileTokenProvider();

            Assert.That(() => provider.ComputeToken(null),
                        Throws.TypeOf <ArgumentNullException>().And.Property("ParamName").EqualTo("stream"));
        }
Ejemplo n.º 5
0
        private FileRepository CreateTestRepository(string tempRepoPath, bool allowDuplicates, TimeSpan retentionPeriod, TimeSpan cleanupInterval)
        {
            var mockRepo     = new MockRepository(MockBehavior.Loose);
            var eventLogMock = mockRepo.Create <IEventLog>();

            IFileTokenProvider tokenProvider;

            if (allowDuplicates)
            {
                tokenProvider = new RandomFileTokenProvider();
            }
            else
            {
                tokenProvider = new Sha256FileTokenProvider();
            }

            return(new FileRepository("TestRepo", tempRepoPath, tokenProvider, eventLogMock.Object, retentionPeriod, cleanupInterval));
        }