mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 08:25:44 +01:00
add co-authors if available to changeset view
refactor ChangesetAuthor.tsx get interfaces right / fix unit test / cleanup fix table layout use Set constructor injection to bind the implementation for the new changesetTrailers API cleanup / update CHANGELOG.md cleanup fix formatting
This commit is contained in:
committed by
René Pfeuffer
parent
a712c89f6a
commit
ec57aa88fa
@@ -45,6 +45,7 @@ import sonia.scm.repository.Branch;
|
||||
import sonia.scm.repository.Branches;
|
||||
import sonia.scm.repository.Changeset;
|
||||
import sonia.scm.repository.ChangesetPagingResult;
|
||||
import sonia.scm.repository.ChangesetTrailers;
|
||||
import sonia.scm.repository.NamespaceAndName;
|
||||
import sonia.scm.repository.Person;
|
||||
import sonia.scm.repository.Repository;
|
||||
@@ -61,6 +62,7 @@ import java.net.URI;
|
||||
import java.time.Instant;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
@@ -113,6 +115,9 @@ public class BranchRootResourceTest extends RepositoryTestBase {
|
||||
@Mock
|
||||
private TagCollectionToDtoMapper tagCollectionToDtoMapper;
|
||||
|
||||
@Mock
|
||||
private Set<ChangesetTrailers> changesetTrailers;
|
||||
|
||||
|
||||
@InjectMocks
|
||||
private DefaultChangesetToChangesetDtoMapperImpl changesetToChangesetDtoMapper;
|
||||
|
||||
@@ -24,11 +24,12 @@
|
||||
|
||||
package sonia.scm.api.v2.resources;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import sonia.scm.api.v2.resources.ChangesetTrailerExtractor.TrailerTypes;
|
||||
import sonia.scm.repository.Changeset;
|
||||
import sonia.scm.repository.Repository;
|
||||
import sonia.scm.repository.RepositoryTestData;
|
||||
import sonia.scm.user.DisplayUser;
|
||||
import sonia.scm.user.User;
|
||||
|
||||
@@ -37,21 +38,17 @@ import java.util.List;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class ChangesetTrailerExtractorTest {
|
||||
class ChangesetDescriptionTrailersTest {
|
||||
|
||||
private ChangesetTrailerExtractor extractor;
|
||||
private static final Repository REPOSITORY = RepositoryTestData.createHeartOfGold();
|
||||
|
||||
@BeforeEach
|
||||
void initExtractor() {
|
||||
TrailerTypes trailerTypes = new TrailerTypes();
|
||||
extractor = new ChangesetTrailerExtractor(trailerTypes);
|
||||
}
|
||||
private final ChangesetDescriptionTrailers changesetDescriptionTrailers = new ChangesetDescriptionTrailers();
|
||||
|
||||
@Test
|
||||
void shouldReturnEmptyList() {
|
||||
String commitMessage = "zaphod beetlebrox";
|
||||
Changeset changeset = createChangeset("zaphod beeblebrox");
|
||||
|
||||
List<TrailerPersonDto> trailerPersons = extractor.extractTrailersFromCommitMessage(commitMessage);
|
||||
List<TrailerPersonDto> trailerPersons = changesetDescriptionTrailers.getTrailers(REPOSITORY, changeset);
|
||||
|
||||
assertThat(trailerPersons).isNotNull();
|
||||
assertThat(trailerPersons).isEmpty();
|
||||
@@ -60,26 +57,26 @@ class ChangesetTrailerExtractorTest {
|
||||
@Test
|
||||
void shouldReturnTrailerPersonsWithCoAuthors() {
|
||||
DisplayUser displayUser = createDisplayUser("Arthur Dent", "dent@hitchhiker.org");
|
||||
String commitMessage = "zaphod beetlebrox\n\nCo-authored-by: Arthur Dent <dent@hitchhiker.org>";
|
||||
Changeset changeset = createChangeset("zaphod beeblebrox\n\nCo-authored-by: Arthur Dent <dent@hitchhiker.org>");
|
||||
|
||||
PersonDto personDto = createPersonDto(displayUser);
|
||||
|
||||
List<TrailerPersonDto> trailerPersons = extractor.extractTrailersFromCommitMessage(commitMessage);
|
||||
List<TrailerPersonDto> trailerPersons = changesetDescriptionTrailers.getTrailers(REPOSITORY, changeset);
|
||||
|
||||
TrailerPersonDto trailerPersonDto = trailerPersons.get(0);
|
||||
assertThat(trailerPersonDto.getTrailerType()).isEqualTo("Co-authored-by");
|
||||
assertThat(trailerPersonDto.getName()).isEqualTo(personDto.getName());
|
||||
assertThat(trailerPersonDto.getMail()).isEqualTo(personDto.getMail());
|
||||
TrailerPersonDto trailerPerson = trailerPersons.get(0);
|
||||
assertThat(trailerPerson.getTrailerType()).isEqualTo("Co-authored-by");
|
||||
assertThat(trailerPerson.getName()).isEqualTo(personDto.getName());
|
||||
assertThat(trailerPerson.getMail()).isEqualTo(personDto.getMail());
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnTrailerPersonsWithReviewers() {
|
||||
DisplayUser displayUser = createDisplayUser("Tricia McMillan", "trillian@hitchhiker.org");
|
||||
String commitMessage = "zaphod beetlebrox\nReviewed-by: Tricia McMillan <trillian@hitchhiker.org>";
|
||||
Changeset changeset = createChangeset("zaphod beeblebrox\nReviewed-by: Tricia McMillan <trillian@hitchhiker.org>");
|
||||
|
||||
PersonDto personDto = createPersonDto(displayUser);
|
||||
|
||||
List<TrailerPersonDto> trailerPersons = extractor.extractTrailersFromCommitMessage(commitMessage);
|
||||
List<TrailerPersonDto> trailerPersons = changesetDescriptionTrailers.getTrailers(REPOSITORY, changeset);
|
||||
|
||||
TrailerPersonDto trailerPersonDto = trailerPersons.get(0);
|
||||
|
||||
@@ -91,11 +88,11 @@ class ChangesetTrailerExtractorTest {
|
||||
@Test
|
||||
void shouldReturnTrailerPersonsWithSigner() {
|
||||
DisplayUser displayUser = createDisplayUser("Tricia McMillan", "trillian@hitchhiker.org");
|
||||
String commitMessage = "zaphod beetlebrox\nSigned-off-by: Tricia McMillan <trillian@hitchhiker.org>";
|
||||
Changeset changeset = createChangeset("zaphod beeblebrox\nSigned-off-by: Tricia McMillan <trillian@hitchhiker.org>");
|
||||
|
||||
PersonDto personDto = createPersonDto(displayUser);
|
||||
|
||||
List<TrailerPersonDto> trailerPersons = extractor.extractTrailersFromCommitMessage(commitMessage);
|
||||
List<TrailerPersonDto> trailerPersons = changesetDescriptionTrailers.getTrailers(REPOSITORY, changeset);
|
||||
|
||||
TrailerPersonDto trailerPersonDto = trailerPersons.get(0);
|
||||
|
||||
@@ -107,11 +104,11 @@ class ChangesetTrailerExtractorTest {
|
||||
@Test
|
||||
void shouldReturnTrailerPersonsWithCommitter() {
|
||||
DisplayUser displayUser = createDisplayUser("Tricia McMillan", "trillian@hitchhiker.org");
|
||||
String commitMessage = "zaphod beetlebrox\nCommitted-by: Tricia McMillan <trillian@hitchhiker.org>";
|
||||
Changeset changeset = createChangeset("zaphod beeblebrox\nCommitted-by: Tricia McMillan <trillian@hitchhiker.org>");
|
||||
|
||||
PersonDto personDto = createPersonDto(displayUser);
|
||||
|
||||
List<TrailerPersonDto> trailerPersons = extractor.extractTrailersFromCommitMessage(commitMessage);
|
||||
List<TrailerPersonDto> trailerPersons = changesetDescriptionTrailers.getTrailers(REPOSITORY, changeset);
|
||||
|
||||
TrailerPersonDto trailerPersonDto = trailerPersons.get(0);
|
||||
|
||||
@@ -120,9 +117,14 @@ class ChangesetTrailerExtractorTest {
|
||||
assertThat(trailerPersonDto.getMail()).isEqualTo(personDto.getMail());
|
||||
}
|
||||
|
||||
private Changeset createChangeset(String commitMessage) {
|
||||
Changeset changeset = new Changeset();
|
||||
changeset.setDescription(commitMessage);
|
||||
return changeset;
|
||||
}
|
||||
|
||||
private DisplayUser createDisplayUser(String name, String mail) {
|
||||
DisplayUser displayUser = DisplayUser.from(new User(name, name, mail));
|
||||
return displayUser;
|
||||
return DisplayUser.from(new User(name, name, mail));
|
||||
}
|
||||
|
||||
private PersonDto createPersonDto(DisplayUser displayUser) {
|
||||
@@ -21,7 +21,7 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.api.v2.resources;
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
import sonia.scm.repository.Changeset;
|
||||
import sonia.scm.repository.ChangesetPagingResult;
|
||||
import sonia.scm.repository.ChangesetTrailers;
|
||||
import sonia.scm.repository.NamespaceAndName;
|
||||
import sonia.scm.repository.Person;
|
||||
import sonia.scm.repository.Repository;
|
||||
@@ -56,6 +57,7 @@ import java.net.URI;
|
||||
import java.time.Instant;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
@@ -68,7 +70,6 @@ import static org.mockito.Mockito.when;
|
||||
@Slf4j
|
||||
public class ChangesetRootResourceTest extends RepositoryTestBase {
|
||||
|
||||
|
||||
public static final String CHANGESET_PATH = "space/repo/changesets/";
|
||||
public static final String CHANGESET_URL = "/" + RepositoryRootResource.REPOSITORIES_PATH_V2 + CHANGESET_PATH;
|
||||
|
||||
@@ -86,6 +87,10 @@ public class ChangesetRootResourceTest extends RepositoryTestBase {
|
||||
@Mock
|
||||
private LogCommandBuilder logCommandBuilder;
|
||||
|
||||
@Mock
|
||||
private Set<ChangesetTrailers> changesetTrailers;
|
||||
|
||||
@InjectMocks
|
||||
private ChangesetCollectionToDtoMapper changesetCollectionToDtoMapper;
|
||||
|
||||
@InjectMocks
|
||||
@@ -93,11 +98,9 @@ public class ChangesetRootResourceTest extends RepositoryTestBase {
|
||||
|
||||
private ChangesetRootResource changesetRootResource;
|
||||
|
||||
|
||||
private final Subject subject = mock(Subject.class);
|
||||
private final ThreadState subjectThreadState = new SubjectThreadState(subject);
|
||||
|
||||
|
||||
@Before
|
||||
public void prepareEnvironment() {
|
||||
changesetCollectionToDtoMapper = new ChangesetCollectionToDtoMapper(changesetToChangesetDtoMapper, resourceLinks);
|
||||
|
||||
@@ -44,6 +44,7 @@ import sonia.scm.ContextEntry;
|
||||
import sonia.scm.NotFoundException;
|
||||
import sonia.scm.repository.Changeset;
|
||||
import sonia.scm.repository.ChangesetPagingResult;
|
||||
import sonia.scm.repository.ChangesetTrailers;
|
||||
import sonia.scm.repository.InternalRepositoryException;
|
||||
import sonia.scm.repository.NamespaceAndName;
|
||||
import sonia.scm.repository.Person;
|
||||
@@ -59,6 +60,7 @@ import java.net.URISyntaxException;
|
||||
import java.time.Instant;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
@@ -89,6 +91,9 @@ public class FileHistoryResourceTest extends RepositoryTestBase {
|
||||
|
||||
private FileHistoryCollectionToDtoMapper fileHistoryCollectionToDtoMapper;
|
||||
|
||||
@Mock
|
||||
private Set<ChangesetTrailers> changesetTrailers;
|
||||
|
||||
@InjectMocks
|
||||
private DefaultChangesetToChangesetDtoMapperImpl changesetToChangesetDtoMapper;
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ import org.mockito.junit.MockitoJUnitRunner;
|
||||
import sonia.scm.NotFoundException;
|
||||
import sonia.scm.repository.Changeset;
|
||||
import sonia.scm.repository.ChangesetPagingResult;
|
||||
import sonia.scm.repository.ChangesetTrailers;
|
||||
import sonia.scm.repository.NamespaceAndName;
|
||||
import sonia.scm.repository.Person;
|
||||
import sonia.scm.repository.Repository;
|
||||
@@ -64,6 +65,7 @@ import java.net.URISyntaxException;
|
||||
import java.time.Instant;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
@@ -78,7 +80,6 @@ import static sonia.scm.repository.api.DiffFormat.NATIVE;
|
||||
@Slf4j
|
||||
public class IncomingRootResourceTest extends RepositoryTestBase {
|
||||
|
||||
|
||||
public static final String INCOMING_PATH = "space/repo/incoming/";
|
||||
public static final String INCOMING_CHANGESETS_URL = "/" + RepositoryRootResource.REPOSITORIES_PATH_V2 + INCOMING_PATH;
|
||||
public static final String INCOMING_DIFF_URL = "/" + RepositoryRootResource.REPOSITORIES_PATH_V2 + INCOMING_PATH;
|
||||
@@ -108,6 +109,9 @@ public class IncomingRootResourceTest extends RepositoryTestBase {
|
||||
|
||||
private IncomingChangesetCollectionToDtoMapper incomingChangesetCollectionToDtoMapper;
|
||||
|
||||
@Mock
|
||||
private Set<ChangesetTrailers> changesetTrailers;
|
||||
|
||||
@InjectMocks
|
||||
private DefaultChangesetToChangesetDtoMapperImpl changesetToChangesetDtoMapper;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user