public MockOdbBackendStream(MockOdbBackend backend, GitObjectType objectType, long length) : base(backend) { m_type = objectType; m_length = length; m_hash = new SHA1CryptoServiceProvider(); }
public void CanRetrieveObjectsThroughOddSizedShortShas() { string repoPath = InitNewRepository(); using (var repo = new Repository(repoPath)) { var backend = new MockOdbBackend(); repo.ObjectDatabase.AddBackend(backend, priority: 5); AddCommitToRepo(repo); var blob1 = repo.Lookup <Blob>("9daeaf"); Assert.NotNull(blob1); const string dummy = "dummy\n"; // Inserts a fake blob with a similarly prefixed sha var fakeId = new ObjectId("9daeaf0000000000000000000000000000000000"); using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(dummy))) { Assert.Equal(0, backend.Write(fakeId, ms, dummy.Length, ObjectType.Blob)); } var blob2 = repo.Lookup <Blob>(fakeId); Assert.NotNull(blob2); Assert.Throws <AmbiguousSpecificationException>(() => repo.Lookup <Blob>("9daeaf")); var newBlob1 = repo.Lookup("9daeafb"); var newBlob2 = repo.Lookup("9daeaf0"); Assert.Equal(blob1, newBlob1); Assert.Equal(blob2, newBlob2); } }
public void ADisposableOdbBackendGetsDisposedUponRepositoryDisposal() { string path = InitNewRepository(); int nbOfDisposeCalls = 0; using (var repo = new Repository(path)) { var mockOdbBackend = new MockOdbBackend(() => { nbOfDisposeCalls++; }); Assert.IsAssignableFrom<IDisposable>(mockOdbBackend); repo.ObjectDatabase.AddBackend(mockOdbBackend, 5); Assert.Equal(0, nbOfDisposeCalls); } Assert.Equal(1, nbOfDisposeCalls); }
public void ADisposableOdbBackendGetsDisposedUponRepositoryDisposal() { string path = InitNewRepository(); int nbOfDisposeCalls = 0; using (var repo = new Repository(path)) { var mockOdbBackend = new MockOdbBackend(() => { nbOfDisposeCalls++; }); Assert.IsAssignableFrom <IDisposable>(mockOdbBackend); repo.ObjectDatabase.AddBackend(mockOdbBackend, 5); Assert.Equal(0, nbOfDisposeCalls); } Assert.Equal(1, nbOfDisposeCalls); }
public void CanEnumerateTheContentOfTheObjectDatabase() { string repoPath = InitNewRepository(); using (var repo = new Repository(repoPath)) { var backend = new MockOdbBackend(); repo.ObjectDatabase.AddBackend(backend, priority: 5); AddCommitToRepo(repo); var expected = new[] { "1fe3126", "2b297e6", "6518215", "9daeafb" }; IEnumerable <GitObject> objs = repo.ObjectDatabase; IEnumerable <string> retrieved = objs .Select(o => o.Id.ToString(7)) .OrderBy(s => s, StringComparer.Ordinal); Assert.Equal(expected, retrieved); } }
public void CanEnumerateTheContentOfTheObjectDatabase() { string repoPath = InitNewRepository(); using (var repo = new Repository(repoPath)) { var backend = new MockOdbBackend(); repo.ObjectDatabase.AddBackend(backend, priority: 5); AddCommitToRepo(repo); var expected = new[]{ "1fe3126", "2b297e6", "6518215", "9daeafb" }; IEnumerable<GitObject> objs = repo.ObjectDatabase; IEnumerable<string> retrieved = objs .Select(o => o.Id.ToString(7)) .OrderBy(s => s, StringComparer.Ordinal); Assert.Equal(expected, retrieved); } }
public MockOdbBackendStream(MockOdbBackend backend, ObjectType objectType, long length) : base(backend) { m_type = objectType; m_length = length; }
public void CanRetrieveObjectsThroughOddSizedShortShas() { string repoPath = InitNewRepository(); using (var repo = new Repository(repoPath)) { var backend = new MockOdbBackend(); repo.ObjectDatabase.AddBackend(backend, priority: 5); AddCommitToRepo(repo); var blob1 = repo.Lookup<Blob>("9daeaf"); Assert.NotNull(blob1); const string dummy = "dummy\n"; // Inserts a fake blob with a similarly prefixed sha var fakeId = new ObjectId("9daeaf0000000000000000000000000000000000"); using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(dummy))) { Assert.Equal(0, backend.Write(fakeId, ms, dummy.Length, ObjectType.Blob)); } var blob2 = repo.Lookup<Blob>(fakeId); Assert.NotNull(blob2); Assert.Throws<AmbiguousSpecificationException>(() => repo.Lookup<Blob>("9daeaf")); var newBlob1 = repo.Lookup("9daeafb"); var newBlob2 = repo.Lookup("9daeaf0"); Assert.Equal(blob1, newBlob1); Assert.Equal(blob2, newBlob2); } }