use of sonia.scm.repository.NamespaceAndName in project scm-review-plugin by scm-manager.
the class MergeResourceTest method shouldEmergencyMergeWithFastForward.
@Test
void shouldEmergencyMergeWithFastForward() throws URISyntaxException, IOException {
byte[] mergeCommitJson = loadJson("com/cloudogu/scm/review/mergeCommit.json");
MockHttpRequest request = createHttpPostRequest(MERGE_URL + "/emergency" + "?strategy=FAST_FORWARD_IF_POSSIBLE", mergeCommitJson);
dispatcher.invoke(request, response);
verify(mergeService).merge(eq(new NamespaceAndName("space", "name")), eq("1"), any(), eq(FAST_FORWARD_IF_POSSIBLE), anyBoolean());
assertThat(response.getStatus()).isEqualTo(204);
}
use of sonia.scm.repository.NamespaceAndName in project scm-review-plugin by scm-manager.
the class PullRequestRootResourceTest method shouldSortPullRequestsByLastModified.
@Test
@SubjectAware(username = "rr")
public void shouldSortPullRequestsByLastModified() throws URISyntaxException, IOException {
when(repositoryResolver.resolve(new NamespaceAndName(REPOSITORY_NAMESPACE, REPOSITORY_NAME))).thenReturn(repository);
String firstPR = "first_PR";
String toDayUpdatedPR = "to_day_updated_PR";
String lastPR = "last_PR";
Instant firstCreation = Instant.MIN;
Instant firstCreationPlusOneDay = firstCreation.plus(Duration.ofDays(1));
Instant lastCreation = Instant.MAX;
PullRequest firstPullRequest = createPullRequest(firstPR);
firstPullRequest.setCreationDate(firstCreationPlusOneDay);
firstPullRequest.setLastModified(firstCreationPlusOneDay);
PullRequest toDayUpdatedPullRequest = createPullRequest(toDayUpdatedPR);
toDayUpdatedPullRequest.setCreationDate(firstCreation);
toDayUpdatedPullRequest.setLastModified(Instant.now());
PullRequest lastPullRequest = createPullRequest(lastPR);
lastPullRequest.setCreationDate(lastCreation);
lastPullRequest.setLastModified(lastCreation);
when(store.getAll()).thenReturn(Lists.newArrayList(lastPullRequest, firstPullRequest, toDayUpdatedPullRequest));
MockHttpRequest request = MockHttpRequest.get("/" + PullRequestRootResource.PULL_REQUESTS_PATH_V2 + "/" + REPOSITORY_NAMESPACE + "/" + REPOSITORY_NAME + "");
dispatcher.invoke(request, response);
assertThat(response.getStatus()).isEqualTo(200);
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNode = mapper.readValue(response.getContentAsString(), JsonNode.class);
JsonNode prNode = jsonNode.get("_embedded").get("pullRequests");
JsonNode pr_1 = prNode.path(0);
JsonNode pr_2 = prNode.path(1);
JsonNode pr_3 = prNode.path(2);
assertThat(pr_1.get("id").asText()).isEqualTo(lastPR);
assertThat(pr_2.get("id").asText()).isEqualTo(toDayUpdatedPR);
assertThat(pr_3.get("id").asText()).isEqualTo(firstPR);
}
use of sonia.scm.repository.NamespaceAndName in project scm-review-plugin by scm-manager.
the class PullRequestRootResourceTest method init.
@Before
public void init() {
when(repository.getId()).thenReturn(REPOSITORY_ID);
when(repository.getName()).thenReturn(REPOSITORY_NAME);
when(repository.getNamespace()).thenReturn(REPOSITORY_NAMESPACE);
when(repository.getNamespaceAndName()).thenReturn(new NamespaceAndName(REPOSITORY_NAMESPACE, REPOSITORY_NAME));
when(repositoryResolver.resolve(any())).thenReturn(repository);
when(pullRequestService.getRepository(repository.getNamespace(), repository.getName())).thenReturn(repository);
DefaultPullRequestService service = new DefaultPullRequestService(repositoryResolver, branchResolver, storeFactory, eventBus, repositoryServiceFactory);
pullRequestRootResource = new PullRequestRootResource(mapper, service, repositoryServiceFactory, Providers.of(new PullRequestResource(mapper, service, null, null, channelRegistry)));
when(storeFactory.create(null)).thenReturn(store);
when(storeFactory.create(any())).thenReturn(store);
when(store.add(pullRequestStoreCaptor.capture())).thenReturn("1");
when(branchLinkProvider.get(any(NamespaceAndName.class), anyString())).thenReturn("");
dispatcher = new RestDispatcher();
dispatcher.addSingletonResource(pullRequestRootResource);
lenient().when(repositoryServiceFactory.create(any(Repository.class))).thenReturn(repositoryService);
lenient().when(userDisplayManager.get("reviewer")).thenReturn(Optional.of(DisplayUser.from(new User("reviewer", "reviewer", ""))));
}
use of sonia.scm.repository.NamespaceAndName in project scm-review-plugin by scm-manager.
the class PullRequestRootResourceTest method shouldGetAlreadyExistsExceptionOnCreatePR.
@Test
@SubjectAware(username = "slarti")
public void shouldGetAlreadyExistsExceptionOnCreatePR() throws URISyntaxException, IOException {
PullRequest pr = new PullRequest();
pr.setStatus(PullRequestStatus.OPEN);
pr.setSource("source");
pr.setTarget("target");
pr.setTitle("title");
pr.setId("id");
when(store.getAll()).thenReturn(Lists.newArrayList(pr));
byte[] pullRequestJson = "{\"source\": \"source\", \"target\": \"target\", \"title\": \"pull request\"}".getBytes();
when(repositoryResolver.resolve(new NamespaceAndName(REPOSITORY_NAMESPACE, REPOSITORY_NAME))).thenReturn(repository);
MockHttpRequest request = MockHttpRequest.post("/" + PullRequestRootResource.PULL_REQUESTS_PATH_V2 + "/" + REPOSITORY_NAMESPACE + "/" + REPOSITORY_NAME).content(pullRequestJson).contentType(PullRequestMediaType.PULL_REQUEST);
dispatcher.invoke(request, response);
assertThat(response.getContentAsString()).containsPattern("pull request with id id in repository with id .* already exists");
}
use of sonia.scm.repository.NamespaceAndName in project scm-review-plugin by scm-manager.
the class PullRequestRootResourceTest method shouldGetPullRequest.
@Test
@SubjectAware(username = "rr")
public void shouldGetPullRequest() throws URISyntaxException, UnsupportedEncodingException {
when(repositoryResolver.resolve(new NamespaceAndName(REPOSITORY_NAMESPACE, REPOSITORY_NAME))).thenReturn(repository);
PullRequest pullRequest = createPullRequest();
List<Comment> comments = new ArrayList<>();
comments.add(createCommentWithType(CommentType.TASK_TODO));
when(commentService.getAll(REPOSITORY_NAMESPACE, REPOSITORY_NAME, pullRequest.getId())).thenReturn(comments);
when(store.get("123")).thenReturn(pullRequest);
MockHttpRequest request = MockHttpRequest.get("/" + PullRequestRootResource.PULL_REQUESTS_PATH_V2 + "/" + REPOSITORY_NAMESPACE + "/" + REPOSITORY_NAME + "/123");
dispatcher.invoke(request, response);
assertThat(response.getStatus()).isEqualTo(200);
assertThat(response.getContentAsString()).contains("_links");
assertThat(response.getContentAsString()).contains("\"tasks\":{\"todo\":1");
assertThat(response.getContentAsString()).contains("\"done\":0");
}
Aggregations