diff --git a/src/main/java/com/rultor/agents/github/qtn/QnByArchitect.java b/src/main/java/com/rultor/agents/github/qtn/QnByArchitect.java index 350d0b6c6d..0c405db907 100644 --- a/src/main/java/com/rultor/agents/github/qtn/QnByArchitect.java +++ b/src/main/java/com/rultor/agents/github/qtn/QnByArchitect.java @@ -50,6 +50,10 @@ * @author Yegor Bugayenko (yegor256@gmail.com) * @version $Id$ * @since 1.45 + * @todo #1246:30min PR by ARC merge shouldn't require confirmation by ARC. + * Implement the asked in #1246. The tests have already benn implemented in + * QnByArchitectTest.acceptsIfMergeArchitectPull. After resolving this + * issue, uncomment the test. */ @Immutable @ToString diff --git a/src/test/java/com/rultor/agents/github/qtn/QnByArchitectTest.java b/src/test/java/com/rultor/agents/github/qtn/QnByArchitectTest.java index d41153e167..f15d90a0b8 100644 --- a/src/test/java/com/rultor/agents/github/qtn/QnByArchitectTest.java +++ b/src/test/java/com/rultor/agents/github/qtn/QnByArchitectTest.java @@ -32,6 +32,7 @@ import com.jcabi.github.Comment; import com.jcabi.github.Issue; import com.jcabi.github.Repo; +import com.jcabi.github.User; import com.jcabi.github.mock.MkGithub; import com.jcabi.xml.XMLDocument; import com.rultor.agents.github.Question; @@ -41,6 +42,7 @@ import java.util.Locale; import org.hamcrest.MatcherAssert; import org.hamcrest.Matchers; +import org.junit.Ignore; import org.junit.Test; import org.mockito.Mockito; @@ -108,4 +110,38 @@ public void acceptsIfArchitect() throws Exception { Mockito.verify(question).understand(comment, home); } + /** + * QnByArchitect can accept if is a merge request made by anyone in a + * pull request made by an architect. + * @throws Exception In case of error. + */ + @Ignore + @Test + public void acceptsIfMergeArchitectPull() throws Exception { + final Repo repo = new MkGithub().randomRepo(); + final User author = Mockito.mock(User.class); + Mockito.when(author.login()).thenReturn( + repo.github().users().self().login().toUpperCase( + Locale.ENGLISH + ) + ); + final Issue.Smart issue = Mockito.mock(Issue.Smart.class); + Mockito.when(issue.author()).thenReturn(author); + Mockito.when(issue.isPull()).thenReturn(true); + final User reviewer = Mockito.mock(User.class); + Mockito.when(reviewer.login()).thenReturn("alfred"); + final Comment.Smart comment = Mockito.mock(Comment.Smart.class); + Mockito.when(comment.body()).thenReturn("merge"); + Mockito.when(comment.author()).thenReturn(reviewer); + final Question question = Mockito.mock(Question.class); + final URI home = new URI("#2"); + new QnByArchitect( + new Profile.Fixed( + new XMLDocument("