Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleAddTest.java')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleAddTest.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleAddTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleAddTest.java
index dee2accf24..4c5a2c1381 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleAddTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/submodule/SubmoduleAddTest.java
@@ -66,6 +66,7 @@ import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryTestCase;
import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.storage.file.FileBasedConfig;
import org.junit.Test;
/**
@@ -212,4 +213,44 @@ public class SubmoduleAddTest extends RepositoryTestCase {
assertTrue(status.getAdded().contains(Constants.DOT_GIT_MODULES));
assertTrue(status.getAdded().contains(path));
}
+
+ @Test
+ public void addSubmoduleWithExistingSubmoduleDefined() throws Exception {
+ String path1 = "sub1";
+ String url1 = "git://server/repo1.git";
+ String path2 = "sub2";
+
+ FileBasedConfig modulesConfig = new FileBasedConfig(new File(
+ db.getWorkTree(), Constants.DOT_GIT_MODULES), db.getFS());
+ modulesConfig.setString(ConfigConstants.CONFIG_SUBMODULE_SECTION,
+ path1, ConfigConstants.CONFIG_KEY_PATH, path1);
+ modulesConfig.setString(ConfigConstants.CONFIG_SUBMODULE_SECTION,
+ path1, ConfigConstants.CONFIG_KEY_URL, url1);
+ modulesConfig.save();
+
+ Git git = new Git(db);
+ writeTrashFile("file.txt", "content");
+ git.add().addFilepattern("file.txt").call();
+ assertNotNull(git.commit().setMessage("create file").call());
+
+ SubmoduleAddCommand command = new SubmoduleAddCommand(db);
+ command.setPath(path2);
+ String url2 = db.getDirectory().toURI().toString();
+ command.setURI(url2);
+ assertNotNull(command.call());
+
+ modulesConfig.load();
+ assertEquals(path1, modulesConfig.getString(
+ ConfigConstants.CONFIG_SUBMODULE_SECTION, path1,
+ ConfigConstants.CONFIG_KEY_PATH));
+ assertEquals(url1, modulesConfig.getString(
+ ConfigConstants.CONFIG_SUBMODULE_SECTION, path1,
+ ConfigConstants.CONFIG_KEY_URL));
+ assertEquals(path2, modulesConfig.getString(
+ ConfigConstants.CONFIG_SUBMODULE_SECTION, path2,
+ ConfigConstants.CONFIG_KEY_PATH));
+ assertEquals(url2, modulesConfig.getString(
+ ConfigConstants.CONFIG_SUBMODULE_SECTION, path2,
+ ConfigConstants.CONFIG_KEY_URL));
+ }
} \ No newline at end of file

Back to the top