public void CalculateChangesReturnsChangeTypeFromSingleResult(SemVerChangeType changeType, int expected) { var options = Model.UsingModule <ConfigurationModule>().Create <ComparerOptions>(); var oldTypes = Array.Empty <TestClassDefinition>(); var newTypes = Array.Empty <TestClassDefinition>(); var result = new ComparisonResult(changeType, null, null, Guid.NewGuid().ToString()); var results = new List <ComparisonResult> { result }; var processor = Substitute.For <ITypeMatchProcessor>(); processor.CalculateChanges(oldTypes, newTypes, options).Returns(results); var sut = new ChangeCalculator(processor, _logger); var actual = sut.CalculateChanges(oldTypes, newTypes, options); actual.ChangeType.Should().Be(changeType); actual.ComparisonResults.Should().HaveCount(expected); if (expected > 0) { actual.ComparisonResults.Should().Contain(result); } }
public void CalculateChangesReturnsGreatestChangeTypeFromMultipleResult(SemVerChangeType firstChangeType, SemVerChangeType secondChangeType, SemVerChangeType expected, int resultCount) { var options = Model.UsingModule <ConfigurationModule>().Create <ComparerOptions>(); var oldTypes = Array.Empty <TestClassDefinition>(); var newTypes = Array.Empty <TestClassDefinition>(); var firstResult = new ComparisonResult(firstChangeType, null, null, Guid.NewGuid().ToString()); var secondResult = new ComparisonResult(secondChangeType, null, null, Guid.NewGuid().ToString()); var results = new List <ComparisonResult> { firstResult, secondResult }; var processor = Substitute.For <ITypeMatchProcessor>(); processor.CalculateChanges(oldTypes, newTypes, options).Returns(results); var sut = new ChangeCalculator(processor, _logger); var actual = sut.CalculateChanges(oldTypes, newTypes, options); actual.ChangeType.Should().Be(expected); actual.ComparisonResults.Should().HaveCount(resultCount); if (firstChangeType != SemVerChangeType.None) { actual.ComparisonResults.Should().Contain(firstResult); } if (secondChangeType != SemVerChangeType.None) { actual.ComparisonResults.Should().Contain(secondResult); } }
public void CalculateChangesThrowsExceptionWithNullNewTypes() { var options = Model.UsingModule <ConfigurationModule>().Create <ComparerOptions>(); var oldTypes = Array.Empty <TestClassDefinition>(); var processor = Substitute.For <ITypeMatchProcessor>(); var sut = new ChangeCalculator(processor, _logger); Action action = () => sut.CalculateChanges(oldTypes, null !, options); action.Should().Throw <ArgumentNullException>(); }
public void CalculateChangesReturnsNoneWhenNoResultsReturned() { var options = Model.UsingModule <ConfigurationModule>().Create <ComparerOptions>(); var oldTypes = Array.Empty <TestClassDefinition>(); var newTypes = Array.Empty <TestClassDefinition>(); var results = Array.Empty <ComparisonResult>(); var processor = Substitute.For <ITypeMatchProcessor>(); processor.CalculateChanges(oldTypes, newTypes, options).Returns(results); var sut = new ChangeCalculator(processor, _logger); var actual = sut.CalculateChanges(oldTypes, newTypes, options); actual.ChangeType.Should().Be(SemVerChangeType.None); actual.ComparisonResults.Should().BeEmpty(); }