Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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>();
        }
Beispiel #4
0
        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();
        }