PageRenderTime 45ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/src/test/java/com/atlassian/jira/plugins/bitbucket/bitbucket/TestDefaultBitbucket.java

https://bitbucket.org/atlassian/jira-bitbucket-connector/
Java | 134 lines | 100 code | 21 blank | 13 comment | 1 complexity | 81ec829268bb06eeb79722ba7d49d284 MD5 | raw file
  1. package com.atlassian.jira.plugins.bitbucket.bitbucket;
  2. import static org.junit.Assert.*;
  3. import static org.mockito.Matchers.*;
  4. import static org.mockito.Mockito.*;
  5. import java.io.IOException;
  6. import java.util.ArrayList;
  7. import java.util.Iterator;
  8. import java.util.List;
  9. import org.apache.commons.httpclient.HttpStatus;
  10. import org.apache.commons.io.IOUtils;
  11. import org.junit.Before;
  12. import org.junit.Test;
  13. import org.mockito.Mock;
  14. import org.mockito.MockitoAnnotations;
  15. import com.atlassian.jira.plugins.bitbucket.api.AuthenticationFactory;
  16. import com.atlassian.jira.plugins.bitbucket.api.Changeset;
  17. import com.atlassian.jira.plugins.bitbucket.api.SourceControlRepository;
  18. import com.atlassian.jira.plugins.bitbucket.spi.DefaultRequestHelper;
  19. import com.atlassian.jira.plugins.bitbucket.spi.ExtendedResponseHandler;
  20. import com.atlassian.jira.plugins.bitbucket.spi.ExtendedResponseHandler.ExtendedResponse;
  21. import com.atlassian.jira.plugins.bitbucket.spi.ExtendedResponseHandlerFactory;
  22. import com.atlassian.jira.plugins.bitbucket.spi.RepositoryUri;
  23. import com.atlassian.jira.plugins.bitbucket.spi.bitbucket.impl.BitbucketChangesetIterator;
  24. import com.atlassian.jira.plugins.bitbucket.spi.bitbucket.impl.BitbucketCommunicator;
  25. import com.atlassian.jira.plugins.bitbucket.spi.bitbucket.impl.BitbucketRepositoryUri;
  26. import com.atlassian.sal.api.net.Request;
  27. import com.atlassian.sal.api.net.RequestFactory;
  28. import com.atlassian.sal.api.net.ResponseException;
  29. import com.google.common.collect.Iterables;
  30. /**
  31. * Unit tests for {@link com.atlassian.jira.plugins.bitbucket.spi.Communicator}
  32. */
  33. public class TestDefaultBitbucket
  34. {
  35. @SuppressWarnings("rawtypes")
  36. @Mock
  37. private RequestFactory requestFactory;
  38. @Mock
  39. private AuthenticationFactory authenticationFactory;
  40. @Mock
  41. SourceControlRepository repository;
  42. @Mock
  43. private Request<?, ?> request;
  44. @Mock
  45. private ExtendedResponseHandlerFactory extendedResponseHandlerFactory;
  46. @Mock
  47. private ExtendedResponseHandler responseHandler;
  48. @Before
  49. public void setup() throws Exception
  50. {
  51. MockitoAnnotations.initMocks(this);
  52. }
  53. private String resource(String name) throws IOException
  54. {
  55. return IOUtils.toString(getClass().getClassLoader().getResourceAsStream(name));
  56. }
  57. private void setupBitbucketConnection() throws IOException, ResponseException
  58. {
  59. when(requestFactory.createRequest(any(Request.MethodType.class), anyString())).thenReturn(request);
  60. RepositoryUri repositoryUri = new BitbucketRepositoryUri("https", "bitbucket.org","atlassian","jira-bitbucket-connector");
  61. when(repository.getRepositoryUri()).thenReturn(repositoryUri);
  62. when(extendedResponseHandlerFactory.create()).thenReturn(responseHandler);
  63. when(responseHandler.getExtendedResponse())
  64. // .thenReturn(new ExtendedResponse(true, HttpStatus.SC_OK, resource("TestBitbucket-changesets-tip.json")))
  65. // .thenReturn(new ExtendedResponse(true, HttpStatus.SC_OK, resource("TestBitbucket-changesetFiles.json")))
  66. // .thenReturn(new ExtendedResponse(true, HttpStatus.SC_OK, resource("TestBitbucket-changesets-72.json")))
  67. // .thenReturn(new ExtendedResponse(true, HttpStatus.SC_OK, resource("TestBitbucket-changesetFiles.json")))
  68. // .thenReturn(new ExtendedResponse(true, HttpStatus.SC_OK, resource("TestBitbucket-changesets-57.json")))
  69. // .thenReturn(new ExtendedResponse(true, HttpStatus.SC_OK, resource("TestBitbucket-changesetFiles.json")))
  70. // .thenReturn(new ExtendedResponse(true, HttpStatus.SC_OK, resource("TestBitbucket-changesets-42.json")))
  71. // .thenReturn(new ExtendedResponse(true, HttpStatus.SC_OK, resource("TestBitbucket-changesetFiles.json")))
  72. // .thenReturn(new ExtendedResponse(true, HttpStatus.SC_OK, resource("TestBitbucket-changesets-27.json")))
  73. // .thenReturn(new ExtendedResponse(true, HttpStatus.SC_OK, resource("TestBitbucket-changesetFiles.json")))
  74. .thenReturn(new ExtendedResponse(true, HttpStatus.SC_OK, resource("TestBitbucket-changesets-12.json")))
  75. .thenReturn(new ExtendedResponse(true, HttpStatus.SC_OK, resource("TestBitbucket-changesetFiles.json")));
  76. }
  77. @Test
  78. public void testGetChangesetsLargeFromTip() throws Exception
  79. {
  80. setupBitbucketConnection();
  81. BitbucketCommunicator bitbucketCommunicator = new BitbucketCommunicator(authenticationFactory, new DefaultRequestHelper(requestFactory, extendedResponseHandlerFactory));
  82. final BitbucketChangesetIterator changesetIterator = new BitbucketChangesetIterator(bitbucketCommunicator, repository);
  83. Iterable<Changeset> iterable = new Iterable<Changeset>()
  84. {
  85. @Override
  86. public Iterator<Changeset> iterator()
  87. {
  88. return changesetIterator;
  89. }
  90. };
  91. List<Changeset> list = new ArrayList<Changeset>();
  92. Iterables.addAll(list, iterable);
  93. assertEquals(15, list.size());
  94. }
  95. @Test
  96. public void testIteratorCyclesOnNext() throws Exception
  97. {
  98. setupBitbucketConnection();
  99. BitbucketCommunicator bitbucketCommunicator = new BitbucketCommunicator(authenticationFactory, new DefaultRequestHelper(requestFactory, extendedResponseHandlerFactory));
  100. final BitbucketChangesetIterator changesetIterator = new BitbucketChangesetIterator(bitbucketCommunicator,
  101. repository);
  102. for (int i = 0; i < 15; i++)
  103. {
  104. try
  105. {
  106. changesetIterator.next();
  107. } catch (Exception e)
  108. {
  109. fail("next() failed at index [ " + i + " ]");
  110. }
  111. }
  112. }
  113. }