package org.javersion.object; import static org.assertj.core.api.Assertions.assertThat; import static org.javersion.object.ObjectVersionGraph.init; import java.util.Arrays; import org.javersion.core.Revision; import org.junit.Test; public class ObjectVersionGraphTest { private ObjectVersion<String> v1 = ObjectVersion.<String>builder().build(); private ObjectVersion<String> v2 = ObjectVersion.<String>builder(new Revision()) .parents(v1.revision) .build(); private ObjectVersion<String> v3 = ObjectVersion.<String>builder() .parents(v2.revision) .build(); @Test public void initializers() { ObjectVersionGraph<String> graph = init(v1); assertThat(graph.getTip().getVersion()).isEqualTo(v1); graph = init(Arrays.asList(v1, v2)); assertThat(graph.getTip().getVersion()).isEqualTo(v2); graph = init(v1, v2, v3); assertThat(graph.getTip().getVersion()).isEqualTo(v3); } @Test public void optimize() { ObjectVersionGraph<String> graph = init(v1, v2); graph = graph.optimize(v2.revision).getGraph(); assertThat(graph.size()).isEqualTo(1); assertThat(graph.getTip().getRevision()).isEqualTo(v2.revision); } }