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); } }
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"); }
/// <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(); }
public void ComputeTokenInvalidStreamTest() { var provider = new RandomFileTokenProvider(); Assert.That(() => provider.ComputeToken(null), Throws.TypeOf <ArgumentNullException>().And.Property("ParamName").EqualTo("stream")); }
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)); }