public void FindMatchesDoesNotReturnMatchWhenDeclaringTypesAreDifferent() { var oldParent = new TestClassDefinition(); var newParent = new TestClassDefinition(); var oldItem = new TestClassDefinition().Set(x => x.DeclaringType = oldParent); var newItem = new TestClassDefinition().Set(x => { x.RawName = oldItem.RawName; x.Namespace = oldItem.Namespace; x.DeclaringType = newParent; }); var oldItems = new List <ITypeDefinition> { oldItem }; var newItems = new List <ITypeDefinition> { newItem }; var sut = new TypeEvaluator(); var actual = sut.FindMatches(oldItems, newItems); actual.ItemsRemoved.Should().BeEquivalentTo(oldItems); actual.ItemsAdded.Should().BeEquivalentTo(newItems); actual.MatchingItems.Should().BeEmpty(); }
public void FindMatchesReturnsMatchWhenTypesHaveSameSignatures() { var oldItem = new TestClassDefinition(); var newItem = new TestClassDefinition().Set(x => { x.RawName = oldItem.RawName; x.Namespace = oldItem.Namespace; }); var oldItems = new List <ITypeDefinition> { oldItem }; var newItems = new List <ITypeDefinition> { newItem }; var sut = new TypeEvaluator(); var actual = sut.FindMatches(oldItems, newItems); actual.ItemsRemoved.Should().BeEmpty(); actual.ItemsAdded.Should().BeEmpty(); actual.MatchingItems.Should().HaveCount(1); var match = actual.MatchingItems.First(); match.OldItem.Should().Be(oldItem); match.NewItem.Should().Be(newItem); }
public void FindMatchesReturnsMatchOnMovedTypeWithDeclaringTypes() { var oldParent = new TestClassDefinition(); var newParent = new TestClassDefinition().Set(x => { x.RawName = oldParent.RawName; }); var oldItem = new TestClassDefinition().Set(x => x.DeclaringType = oldParent); var newItem = new TestClassDefinition().Set(x => { x.RawName = oldItem.RawName; x.DeclaringType = newParent; }); var oldItems = new List <ITypeDefinition> { oldItem }; var newItems = new List <ITypeDefinition> { newItem }; var sut = new TypeEvaluator(); var actual = sut.FindMatches(oldItems, newItems); actual.ItemsRemoved.Should().BeEmpty(); actual.ItemsAdded.Should().BeEmpty(); actual.MatchingItems.Should().HaveCount(1); var match = actual.MatchingItems.First(); match.OldItem.Should().Be(oldItem); match.NewItem.Should().Be(newItem); }
public void FindMatchesDoesNotReturnMatchOnMovedTypeWhenGenericTypeCountsAreDifferent() { var oldItem = new TestClassDefinition(); var newItem = new TestClassDefinition().Set(x => { x.RawName = oldItem.RawName; var updatedGenericTypeParameters = new List <string>(x.GenericTypeParameters) { Guid.NewGuid().ToString() }; x.GenericTypeParameters = updatedGenericTypeParameters.AsReadOnly(); }); var oldItems = new List <ITypeDefinition> { oldItem }; var newItems = new List <ITypeDefinition> { newItem }; var sut = new TypeEvaluator(); var actual = sut.FindMatches(oldItems, newItems); actual.ItemsRemoved.Should().BeEquivalentTo(oldItems); actual.ItemsAdded.Should().BeEquivalentTo(newItems); actual.MatchingItems.Should().BeEmpty(); }
public void FindMatchesDoesNotReturnMatchWhenNoItemsAddedOrRemoved() { var oldItems = Array.Empty <ITypeDefinition>(); var newItems = Array.Empty <ITypeDefinition>(); var sut = new TypeEvaluator(); var actual = sut.FindMatches(oldItems, newItems); actual.ItemsRemoved.Should().BeEmpty(); actual.ItemsAdded.Should().BeEmpty(); actual.MatchingItems.Should().BeEmpty(); }
public void FindMatchesDoesNotReturnMatchWhenNamespaceAndRawNameAreDifferent() { var oldItem = new TestClassDefinition(); var newItem = new TestClassDefinition(); var oldItems = new List <ITypeDefinition> { oldItem }; var newItems = new List <ITypeDefinition> { newItem }; var sut = new TypeEvaluator(); var actual = sut.FindMatches(oldItems, newItems); actual.ItemsRemoved.Should().BeEquivalentTo(oldItems); actual.ItemsAdded.Should().BeEquivalentTo(newItems); actual.MatchingItems.Should().BeEmpty(); }
public void FindMatchesDoesNotReturnMatchWhenMultipleNewItemsMatchAsPossibleMovedType() { var oldItem = new TestClassDefinition(); var newItem = new TestClassDefinition().Set(x => { x.RawName = oldItem.RawName; }); var otherNewItem = new TestClassDefinition().Set(x => { x.RawName = oldItem.RawName; }); var oldItems = new List <ITypeDefinition> { oldItem }; var newItems = new List <ITypeDefinition> { newItem, otherNewItem }; var sut = new TypeEvaluator(); var actual = sut.FindMatches(oldItems, newItems); actual.ItemsRemoved.Should().BeEquivalentTo(oldItems); actual.ItemsAdded.Should().BeEquivalentTo(newItems); actual.MatchingItems.Should().BeEmpty(); }