@Test
void set()
{

    AbstractExtension extension = toExtension("id", "version", new ExtensionId("feature", "featureversion"));
    extension.addAuthor(AUTHOR1);
    extension.addAuthor(AUTHOR2);
    extension.addRepository(DESCRIPTOR1);
    extension.addRepository(DESCRIPTOR2);
    extension.addLicense(LICENSE1);
    extension.addLicense(LICENSE2);
    extension.addDependency(DEPENDENCY1);
    extension.addDependency(DEPENDENCY2);
    extension.addManagedDependency(DEPENDENCY1);
    extension.addManagedDependency(DEPENDENCY2);
    extension.addAllowedNamespace("namespace1");
    extension.addAllowedNamespace("namespace2");
    AbstractExtension cloneExtension = new TestExtension(extension);
    assertEquals(extension, cloneExtension);
    assertEquals(extension.getId(), cloneExtension.getId());
    assertEquals(new ArrayList<>(extension.getExtensionFeatures()),
        new ArrayList<>(cloneExtension.getExtensionFeatures()));
    assertEquals(Arrays.asList(DESCRIPTOR1, DESCRIPTOR2), cloneExtension.getRepositories());
    assertEquals(Arrays.asList(AUTHOR1, AUTHOR2), cloneExtension.getAuthors());
    assertEquals(Arrays.asList(LICENSE1, LICENSE2), cloneExtension.getLicenses());
    assertEquals(Arrays.asList(DEPENDENCY1, DEPENDENCY2), cloneExtension.getDependencies());
    assertEquals(Arrays.asList(DEPENDENCY1, DEPENDENCY2), cloneExtension.getManagedDependencies());
    assertEquals(Arrays.asList("namespace1", "namespace2"), new ArrayList<>(cloneExtension.getAllowedNamespaces()));
}