예제 #1
0
        public void CompareMatchReturnsBreakingWhenOrdinalArgumentValueChanged()
        {
            var oldArgument = Model.UsingModule <ConfigurationModule>().Create <TestArgumentDefinition>()
                              .Set(x => x.ArgumentType = ArgumentType.Ordinal);
            var oldArguments = new[]
            {
                oldArgument
            };
            var oldAttribute = Model.UsingModule <ConfigurationModule>().Create <TestAttributeDefinition>()
                               .Set(x => x.Arguments = oldArguments);
            var newArgument = Model.UsingModule <ConfigurationModule>().Create <TestArgumentDefinition>().Set(
                x => { x.ArgumentType = ArgumentType.Ordinal; });
            var newArguments = new[]
            {
                newArgument
            };
            var newAttribute = Model.UsingModule <ConfigurationModule>().Create <TestAttributeDefinition>()
                               .Set(x => x.Arguments = newArguments);
            var match   = new ItemMatch <IAttributeDefinition>(oldAttribute, newAttribute);
            var options = OptionsFactory.BuildOptions();

            var sut = new AttributeComparer();

            var actual = sut.CompareMatch(match, options).ToList();

            _output.WriteResults(actual);

            actual.Should().HaveCount(1);

            actual[0].ChangeType.Should().Be(SemVerChangeType.Breaking);
            actual[0].OldItem.Should().BeAssignableTo <IArgumentDefinition>();
            actual[0].NewItem.Should().BeAssignableTo <IArgumentDefinition>();
        }
예제 #2
0
        public void CompareMatchThrowsExceptionWithNullOptions()
        {
            var oldItem = new TestAttributeDefinition();
            var newItem = new TestAttributeDefinition();
            var match   = new ItemMatch <IAttributeDefinition>(oldItem, newItem);

            var sut = new AttributeComparer();

            Action action = () => sut.CompareMatch(match, null !);

            action.Should().Throw <ArgumentNullException>();
        }
예제 #3
0
        public void CompareMatchReturnsEmptyChangesWhenAttributesDoNotHaveArguments()
        {
            var oldItem = Model.UsingModule <ConfigurationModule>().Ignoring <TestAttributeDefinition>(x => x.Arguments)
                          .Create <TestAttributeDefinition>();
            var newItem = Model.UsingModule <ConfigurationModule>().Ignoring <TestAttributeDefinition>(x => x.Arguments)
                          .Create <TestAttributeDefinition>();
            var match   = new ItemMatch <IAttributeDefinition>(oldItem, newItem);
            var options = OptionsFactory.BuildOptions();

            var sut = new AttributeComparer();

            var actual = sut.CompareMatch(match, options);

            actual.Should().BeEmpty();
        }
예제 #4
0
        public void CompareMatchReturnsBreakingWhenArgumentsRemoved()
        {
            var oldItem = Model.UsingModule <ConfigurationModule>().Create <TestAttributeDefinition>();
            var newItem = Model.UsingModule <ConfigurationModule>().Ignoring <TestAttributeDefinition>(x => x.Arguments)
                          .Create <IAttributeDefinition>();
            var match   = new ItemMatch <IAttributeDefinition>(oldItem, newItem);
            var options = OptionsFactory.BuildOptions();

            var sut = new AttributeComparer();

            var actual = sut.CompareMatch(match, options).ToList();

            _output.WriteResults(actual);

            actual.Should().HaveCount(1);

            actual[0].ChangeType.Should().Be(SemVerChangeType.Breaking);
            actual[0].OldItem.Should().Be(oldItem);
            actual[0].NewItem.Should().Be(newItem);
        }
예제 #5
0
        public void CompareMatchReturnsEmptyResultsWhenNoChangeFound()
        {
            var ordinalArgument = Model.UsingModule <ConfigurationModule>().Create <TestArgumentDefinition>()
                                  .Set(x => x.ArgumentType = ArgumentType.Ordinal);
            var namedArgument = Model.UsingModule <ConfigurationModule>().Create <TestArgumentDefinition>()
                                .Set(x => x.ArgumentType = ArgumentType.Named);
            var oldArguments = new[]
            {
                ordinalArgument,
                namedArgument
            };
            var attribute = Model.UsingModule <ConfigurationModule>().Create <TestAttributeDefinition>()
                            .Set(x => x.Arguments = oldArguments);
            var match   = new ItemMatch <IAttributeDefinition>(attribute, attribute);
            var options = OptionsFactory.BuildOptions();

            var sut = new AttributeComparer();

            var actual = sut.CompareMatch(match, options).ToList();

            actual.Should().BeEmpty();
        }