@Override public void write(String name, String origin) { GitMetadataImpl repositoryMetadata = (GitMetadataImpl) this.read(name).orElse(new GitMetadataImpl(name)); this.removeForkFromOrigin(repositoryMetadata); GitMetadataImpl newRepositoryMetadata = new GitMetadataImpl(name, repositoryMetadata.getForks()); if (isStorableOrigin(origin)) { newRepositoryMetadata = new GitMetadataImpl(name, origin, repositoryMetadata.getForks()); GitMetadataImpl originMetadata = (GitMetadataImpl) this.read(origin).orElse(new GitMetadataImpl(origin)); List<String> forks = originMetadata.getForks(); forks.add(name); this.write(origin, new GitMetadataImpl(origin, originMetadata.getOrigin(), forks)); } this.write(name, newRepositoryMetadata); }
@Override public void write(String name, String origin) { GitMetadataImpl repositoryMetadata = (GitMetadataImpl) this.read(name).orElse(new GitMetadataImpl(name)); this.removeForkFromOrigin(repositoryMetadata); GitMetadataImpl newRepositoryMetadata = new GitMetadataImpl(name, repositoryMetadata.getForks()); if (isStorableOrigin(origin)) { newRepositoryMetadata = new GitMetadataImpl(name, origin, repositoryMetadata.getForks()); GitMetadataImpl originMetadata = (GitMetadataImpl) this.read(origin).orElse(new GitMetadataImpl(origin)); List<String> forks = originMetadata.getForks(); forks.add(name); this.write(origin, new GitMetadataImpl(origin, originMetadata.getOrigin(), forks)); } this.write(name, newRepositoryMetadata); }
@Test public void testWriteTwoForks() { metadataStore.write("test/repo", "origin/repo"); metadataStore.write("fork/repo", "origin/repo"); assertEquals(3, metadatas.size()); assertEquals("test/repo", metadatas.get("/test/repo.metadata").getName()); assertEquals("fork/repo", metadatas.get("/fork/repo.metadata").getName()); assertEquals("origin/repo", metadatas.get("/origin/repo.metadata").getName()); assertEquals(2, metadatas.get("/origin/repo.metadata").getForks().size()); }
@Test public void testChangeOriginFromMetedata() { metadataStore.write("test/repo", "other/repo"); assertEquals("test/repo", metadatas.get("/test/repo.metadata").getName()); assertEquals("other/repo", metadatas.get("/test/repo.metadata").getOrigin()); assertEquals("other/repo", metadatas.get("/other/repo.metadata").getName()); metadataStore.write("test/repo", "other/otherOrigin"); assertEquals("other/otherOrigin", metadatas.get("/test/repo.metadata").getOrigin()); assertEquals(0, metadatas.get("/other/repo.metadata").getForks().size()); }
@Test public void testWriteTwoForks() { metadataStore.write("test/repo", "origin/repo"); metadataStore.write("fork/repo", "origin/repo"); assertEquals(3, metadatas.size()); assertEquals("test/repo", metadatas.get("/test/repo.metadata").getName()); assertEquals("fork/repo", metadatas.get("/fork/repo.metadata").getName()); assertEquals("origin/repo", metadatas.get("/origin/repo.metadata").getName()); assertEquals(2, metadatas.get("/origin/repo.metadata").getForks().size()); }
@Test public void testWriteTwoForks() { metadataStore.write("test/repo", "origin/repo"); metadataStore.write("fork/repo", "origin/repo"); assertEquals(3, metadatas.size()); assertEquals("test/repo", metadatas.get("/test/repo.metadata").getName()); assertEquals("fork/repo", metadatas.get("/fork/repo.metadata").getName()); assertEquals("origin/repo", metadatas.get("/origin/repo.metadata").getName()); assertEquals(2, metadatas.get("/origin/repo.metadata").getForks().size()); }
@Test public void testChangeOriginFromMetedata() { metadataStore.write("test/repo", "other/repo"); assertEquals("test/repo", metadatas.get("/test/repo.metadata").getName()); assertEquals("other/repo", metadatas.get("/test/repo.metadata").getOrigin()); assertEquals("other/repo", metadatas.get("/other/repo.metadata").getName()); metadataStore.write("test/repo", "other/otherOrigin"); assertEquals("other/otherOrigin", metadatas.get("/test/repo.metadata").getOrigin()); assertEquals(0, metadatas.get("/other/repo.metadata").getForks().size()); }
@Test public void testChangeOriginFromMetedata() { metadataStore.write("test/repo", "other/repo"); assertEquals("test/repo", metadatas.get("/test/repo.metadata").getName()); assertEquals("other/repo", metadatas.get("/test/repo.metadata").getOrigin()); assertEquals("other/repo", metadatas.get("/other/repo.metadata").getName()); metadataStore.write("test/repo", "other/otherOrigin"); assertEquals("other/otherOrigin", metadatas.get("/test/repo.metadata").getOrigin()); assertEquals(0, metadatas.get("/other/repo.metadata").getForks().size()); }