public void ReturnsCurrentBranchWhenMultipleBranches() { // Arrange var options = new StrykerOptions() { Since = true, }; var repositoryMock = new Mock <IRepository>(MockBehavior.Strict); var branchCollectionMock = new Mock <BranchCollection>(MockBehavior.Strict); var branchMock = new Mock <Branch>(); var branchMock2 = new Mock <Branch>(); branchCollectionMock .Setup(x => x.Add(It.IsAny <string>(), It.IsAny <string>())) .Returns(new Mock <Branch>(MockBehavior.Loose).Object); branchMock .SetupGet(x => x.IsCurrentRepositoryHead) .Returns(true); branchMock2 .SetupGet(x => x.IsCurrentRepositoryHead) .Returns(false); branchMock .SetupGet(x => x.FriendlyName) .Returns("master"); branchMock2 .SetupGet(x => x.FriendlyName) .Returns("dev"); branchCollectionMock .Setup(x => x.GetEnumerator()) .Returns(((IEnumerable <Branch>) new List <Branch> { branchMock.Object }).GetEnumerator()); repositoryMock .SetupGet(x => x.Branches) .Returns(branchCollectionMock.Object); var target = new GitInfoProvider(options, repositoryMock.Object); // Act var res = target.GetCurrentBranchName(); // Assert res.ShouldBe("master"); repositoryMock.Verify(); }
public void ReturnsEmptyStringIfNoCurrentRepositoryHead() { // Arrange var options = new StrykerOptions(); var repository = new Mock <IRepository>(MockBehavior.Loose); var target = new GitInfoProvider(options, repository.Object); // Act var result = target.GetCurrentBranchName(); // Assert result.ShouldBe(string.Empty); }
public void ThrowsExceptionIfNoCurrentBranchOrProjectVersionSet() { // Arrange var options = new StrykerOptions(); var repository = new Mock <IRepository>(MockBehavior.Loose); var target = new GitInfoProvider(options, repository.Object); // Act Action result = () => target.GetCurrentBranchName(); // Assert result.ShouldThrow <StrykerInputException>(); }