Add test for only updating relevant submodules in SubmoduleOp
Change-Id: I07f5312f2afb43c2e09f9b4b744b5600004b9b27
This commit is contained in:
		| @@ -29,6 +29,7 @@ import org.eclipse.jgit.junit.TestRepository; | ||||
| import org.eclipse.jgit.lib.Config; | ||||
| import org.eclipse.jgit.lib.ObjectId; | ||||
| import org.eclipse.jgit.lib.PersonIdent; | ||||
| import org.eclipse.jgit.lib.Repository; | ||||
| import org.eclipse.jgit.revwalk.RevCommit; | ||||
| import org.eclipse.jgit.revwalk.RevWalk; | ||||
| import org.eclipse.jgit.transport.PushResult; | ||||
| @@ -655,6 +656,42 @@ public class SubmoduleSubscriptionsIT extends AbstractSubmoduleSubscription { | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   @Test | ||||
|   public void updateOnlyRelevantSubmodules() throws Exception { | ||||
|     TestRepository<?> superRepo = createProjectWithPush("super-project"); | ||||
|     TestRepository<?> subRepo1 = createProjectWithPush("subscribed-to-project-1"); | ||||
|     TestRepository<?> subRepo2 = createProjectWithPush("subscribed-to-project-2"); | ||||
|  | ||||
|     allowMatchingSubmoduleSubscription( | ||||
|         "subscribed-to-project-1", "refs/heads/master", "super-project", "refs/heads/master"); | ||||
|     allowMatchingSubmoduleSubscription( | ||||
|         "subscribed-to-project-2", "refs/heads/master", "super-project", "refs/heads/master"); | ||||
|  | ||||
|     Config config = new Config(); | ||||
|     prepareSubmoduleConfigEntry(config, "subscribed-to-project-1", "master"); | ||||
|     prepareSubmoduleConfigEntry(config, "subscribed-to-project-2", "master"); | ||||
|     pushSubmoduleConfig(superRepo, "master", config); | ||||
|  | ||||
|     // Push once to initialize submodules. | ||||
|     ObjectId subTip2 = pushChangeTo(subRepo2, "master"); | ||||
|     ObjectId subTip1 = pushChangeTo(subRepo1, "master"); | ||||
|  | ||||
|     expectToHaveSubmoduleState(superRepo, "master", "subscribed-to-project-1", subTip1); | ||||
|     expectToHaveSubmoduleState(superRepo, "master", "subscribed-to-project-2", subTip2); | ||||
|  | ||||
|     directUpdateRef("subscribed-to-project-2", "refs/heads/master"); | ||||
|     subTip1 = pushChangeTo(subRepo1, "master"); | ||||
|  | ||||
|     expectToHaveSubmoduleState(superRepo, "master", "subscribed-to-project-1", subTip1); | ||||
|     expectToHaveSubmoduleState(superRepo, "master", "subscribed-to-project-2", subTip2); | ||||
|   } | ||||
|  | ||||
|   private ObjectId directUpdateRef(String project, String ref) throws Exception { | ||||
|     try (Repository serverRepo = repoManager.openRepository(new Project.NameKey(name(project)))) { | ||||
|       return new TestRepository<>(serverRepo).branch(ref).commit().create().copy(); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   private void testSubmoduleSubjectCommitMessageAndExpectTruncation() throws Exception { | ||||
|     TestRepository<?> superRepo = createProjectWithPush("super-project"); | ||||
|     TestRepository<?> subRepo = createProjectWithPush("subscribed-to-project"); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Dave Borowitz
					Dave Borowitz