### Question:
VersionSubstitutingModelResolver extends ProjectModelResolver { @Override public ModelResolver newCopy() { return new VersionSubstitutingModelResolver( session, trace, resolver, remoteRepositoryManager, repositories, versionSubstitution); } VersionSubstitutingModelResolver(
      RepositorySystemSession session,
      RequestTrace trace,
      RepositorySystem resolver,
      RemoteRepositoryManager remoteRepositoryManager,
      List<RemoteRepository> repositories,
      Map<String, String> versionSubstitution); @Override ModelSource2 resolveModel(String groupId, String artifactId, String version); @Override ModelResolver newCopy();  }### Answer:
@Test public void testNewCopy() throws UnresolvableModelException { ImmutableMap<String, String> substitution = ImmutableMap.of("com.google.guava:guava", "25.1-jre"); VersionSubstitutingModelResolver resolver = new VersionSubstitutingModelResolver( session, null, repositorySystem, remoteRepositoryManager, ImmutableList.of(CENTRAL), substitution); ModelResolver copiedResolver = resolver.newCopy(); Truth.assertThat(copiedResolver).isInstanceOf(VersionSubstitutingModelResolver.class); Truth.assertThat(copiedResolver.resolveModel( "com.google.guava", "guava", "20.0").getLocation()).contains("guava-25.1-jre.pom"); }