public void GivenAssetTargetFallbackEqualityIsTransitive() { var A1 = new AssetTargetFallbackFramework(NuGetFramework.Parse("netcoreapp2.0"), new[] { NuGetFramework.Parse("net461") }); var A2 = new AssetTargetFallbackFramework(NuGetFramework.Parse("netcoreapp2.0"), new[] { NuGetFramework.Parse("net461") }); var B1 = new AssetTargetFallbackFramework(NuGetFramework.Parse("netcoreapp2.0"), new[] { NuGetFramework.Parse("net462") }); var B2 = new AssetTargetFallbackFramework(NuGetFramework.Parse("netcoreapp2.0"), new[] { NuGetFramework.Parse("net462") }); var C1 = new AssetTargetFallbackFramework(NuGetFramework.Parse("netcoreapp1.0"), new[] { NuGetFramework.Parse("net462") }); var C2 = new AssetTargetFallbackFramework(NuGetFramework.Parse("netcoreapp1.0"), new[] { NuGetFramework.Parse("net462") }); // Check equivalents A1.Should().Be(A2); B1.Should().Be(B2); C1.Should().Be(C2); // Rest of the A1 -> B1,B2,C1,C2 A1.Should().NotBe(B1); A1.Should().NotBe(B2); A1.Should().NotBe(C1); A1.Should().NotBe(C2); // Rest of the A2 -> B1,B2,C1,C2 A2.Should().NotBe(B1); A2.Should().NotBe(B2); A2.Should().NotBe(C1); A2.Should().NotBe(C2); // B1 -> C1, C2 B1.Should().NotBe(C1); B1.Should().NotBe(C2); // B2 -> C1, C2 B2.Should().NotBe(C1); B2.Should().NotBe(C2); }