using System.Collections.Immutable; using System.Linq; using UnitTestSharp; namespace Ariadne.Generator.UnitTests { public class ArcCompositionTests : TestFixture { public static ArcComposition Variant(string fileName = "A.CodeBehind.cs", string message = "Message") { return new ArcComposition( new EquatableArray(ImmutableArray.Create(new ArcFile(fileName, "text"))), ArcOutputTests.Problems(DiagnosticDataTests.Variant(message: message))); } public class CtorTests : TestFixture { public void KeepsTheFilesAndTheDiagnostics() { ArcComposition composition = Variant(); CheckEqual(new ArcFile("A.CodeBehind.cs", "text"), composition.Files.Items.Single()); CheckEqual(DiagnosticDataTests.Variant(), composition.Diagnostics.Items.Single()); } } public class EqualsTests : TestFixture { public void SameValues_AreEqual() { CheckTrue(Variant().Equals(Variant())); CheckTrue(Variant().Equals((object)Variant())); } public void Null_IsNotEqual() { CheckFalse(Variant().Equals((ArcComposition)null)); CheckFalse(Variant().Equals((object)null)); } public void OtherType_IsNotEqual() { CheckFalse(Variant().Equals("A")); } public void DifferentFiles_AreNotEqual() { CheckFalse(Variant().Equals(Variant(fileName: "B.CodeBehind.cs"))); } public void DifferentDiagnostics_AreNotEqual() { CheckFalse(Variant().Equals(Variant(message: "Other"))); } } public class GetHashCodeTests : TestFixture { public void EqualCompositions_HaveEqualHashCodes() { CheckEqual(Variant().GetHashCode(), Variant().GetHashCode()); } } } }