@Test
public void copyWithDependencies() {

	Application<Task, Dependency> app = new Application<Task, Dependency>();
	Task task1 = new Task("t1");
	Task task2 = new Task("t2");
	Dependency dependency = new Dependency("d");
	app.addVertex(task1);
	app.addVertex(task2);
	app.addEdge(dependency, task1, task2);
	Architecture<Resource, Link> arch = new Architecture<Resource, Link>();
	Mappings<Task, Resource> mappings = new Mappings<Task, Resource>();
	Specification spec = new Specification(app, arch, mappings);
	Specification spec2 = Models.copy(spec);
	Assert.assertEquals(2, spec2.getApplication().getVertexCount());
	Assert.assertTrue(spec2.getApplication().containsVertex(task1));
	Assert.assertTrue(spec2.getApplication().containsVertex(task2));
	Assert.assertTrue(spec2.getApplication().isNeighbor(task1, task2));
}