assertThat(configuration.getProblems().isEmpty(), is(true));
// Verify that the graph has been updated correctly ...
DnaConfiguration.ConfigurationDefinition content = configuration.getConfigurationDefinition();
Subgraph subgraph = content.graph().getSubgraphOfDepth(6).at("/");
assertThat(subgraph.getNode("/dna:sources"), is(notNullValue()));
assertThat(subgraph.getNode("/dna:sources/Cars"), is(notNullValue()));
assertThat(subgraph.getNode("/dna:sources/Cars"), hasProperty(DnaLexicon.RETRY_LIMIT, "3"));
assertThat(subgraph.getNode("/dna:sources/Cars"), hasProperty(DnaLexicon.CLASSNAME,
InMemoryRepositorySource.class.getName()));
assertThat(subgraph.getNode("/dna:sources/Aircraft"), is(notNullValue()));
assertThat(subgraph.getNode("/dna:sources/Aircraft"), hasProperty("defaultWorkspaceName", "default"));
assertThat(subgraph.getNode("/dna:sources/Aircraft"), hasProperty(DnaLexicon.CLASSNAME,
InMemoryRepositorySource.class.getName()));
assertThat(subgraph.getNode("/dna:sources/Cache"), is(notNullValue()));
assertThat(subgraph.getNode("/dna:sources/Cache"), hasProperty(DnaLexicon.CLASSNAME,
InMemoryRepositorySource.class.getName()));
assertThat(subgraph.getNode("/dna:mimeTypeDetectors").getChildren(), hasChild(segment("Detector")));
assertThat(subgraph.getNode("/dna:mimeTypeDetectors/Detector"), is(notNullValue()));
assertThat(subgraph.getNode("/dna:mimeTypeDetectors/Detector"),
hasProperty(DnaLexicon.DESCRIPTION, "Standard extension-based MIME type detector"));
assertThat(subgraph.getNode("/dna:mimeTypeDetectors/Detector"),
hasProperty(DnaLexicon.CLASSNAME, ExtensionBasedMimeTypeDetector.class.getName()));
assertThat(subgraph.getNode("/dna:repositories").getChildren(), hasChild(segment("Car Repository")));
assertThat(subgraph.getNode("/dna:repositories/Car Repository"), is(notNullValue()));
assertThat(subgraph.getNode("/dna:repositories/Car Repository"), hasProperty(DnaLexicon.SOURCE_NAME, "Cars"));
assertThat(subgraph.getNode("/dna:repositories/Car Repository").getChildren(), hasChild(segment("dna:options")));
assertThat(subgraph.getNode("/dna:repositories/Car Repository/dna:options"), is(notNullValue()));
assertThat(subgraph.getNode("/dna:repositories/Car Repository/dna:options").getChildren(),
hasChild(segment("jaasLoginConfigName")));
assertThat(subgraph.getNode("/dna:repositories/Car Repository/dna:options/jaasLoginConfigName"), is(notNullValue()));
assertThat(subgraph.getNode("/dna:repositories/Car Repository/dna:options/jaasLoginConfigName"),
hasProperty(DnaLexicon.VALUE, "dna-jcr"));
// Initialize IDTrust and a policy file (which defines the "dna-jcr" login config name)
String configFile = "security/jaas.conf.xml";
IDTrustConfiguration idtrustConfig = new IDTrustConfiguration();