Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 1109d48

Browse filesBrowse files
committed
Codify that arrays and lists are equivalent
1 parent 19618ef commit 1109d48
Copy full SHA for 1109d48

File tree

1 file changed

+160
-5
lines changed
Filter options

1 file changed

+160
-5
lines changed

‎test/test.xunit.assert/Asserts/EquivalenceAssertsTests.cs

Copy file name to clipboardExpand all lines: test/test.xunit.assert/Asserts/EquivalenceAssertsTests.cs
+160-5Lines changed: 160 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Linq;
34
using Xunit;
45
using Xunit.Sdk;
56

@@ -730,6 +731,165 @@ public void Failure_EmbeddedArray_ExtraValueInActual()
730731
}
731732
}
732733

734+
public class ListOfObjects_NotStrict
735+
{
736+
[Fact]
737+
public void Success()
738+
{
739+
var expected = new[] { new { Foo = "Bar" } }.ToList();
740+
var actual = new[] { new { Foo = "Baz" }, new { Foo = "Bar" } }.ToList();
741+
742+
Assert.Equivalent(expected, actual, strict: false);
743+
}
744+
745+
[Fact]
746+
public void Success_EmbeddedArray()
747+
{
748+
var expected = new { x = new[] { new { Foo = "Bar" } }.ToList() };
749+
var actual = new { x = new[] { new { Foo = "Baz" }, new { Foo = "Bar" } }.ToList() };
750+
751+
Assert.Equivalent(expected, actual, strict: false);
752+
}
753+
754+
[Fact]
755+
public void Failure()
756+
{
757+
var expected = new[] { new { Foo = "Biff" } }.ToList();
758+
var actual = new[] { new { Foo = "Baz" }, new { Foo = "Bar" } }.ToList();
759+
760+
var ex = Record.Exception(() => Assert.Equivalent(expected, actual, strict: false));
761+
762+
Assert.IsType<EquivalentException>(ex);
763+
Assert.Equal(
764+
"Assert.Equivalent() Failure: Collection value not found" + Environment.NewLine +
765+
"Expected: { Foo = Biff }" + Environment.NewLine +
766+
"In: [{ Foo = Baz }, { Foo = Bar }]",
767+
ex.Message
768+
);
769+
}
770+
771+
[Fact]
772+
public void Failure_EmbeddedArray()
773+
{
774+
var expected = new { x = new[] { new { Foo = "Biff" } }.ToList() };
775+
var actual = new { x = new[] { new { Foo = "Baz" }, new { Foo = "Bar" } }.ToList() };
776+
777+
var ex = Record.Exception(() => Assert.Equivalent(expected, actual, strict: false));
778+
779+
Assert.IsType<EquivalentException>(ex);
780+
Assert.Equal(
781+
"Assert.Equivalent() Failure: Collection value not found in member 'x'" + Environment.NewLine +
782+
"Expected: { Foo = Biff }" + Environment.NewLine +
783+
"In: [{ Foo = Baz }, { Foo = Bar }]",
784+
ex.Message
785+
);
786+
}
787+
}
788+
789+
public class ListOfObjects_Strict
790+
{
791+
[Fact]
792+
public void Success()
793+
{
794+
var expected = new[] { new { Foo = "Bar" }, new { Foo = "Baz" } }.ToList();
795+
var actual = new[] { new { Foo = "Baz" }, new { Foo = "Bar" } }.ToList();
796+
797+
Assert.Equivalent(expected, actual, strict: true);
798+
}
799+
800+
[Fact]
801+
public void Success_EmbeddedList()
802+
{
803+
var expected = new { x = new[] { new { Foo = "Bar" }, new { Foo = "Baz" } }.ToList() };
804+
var actual = new { x = new[] { new { Foo = "Baz" }, new { Foo = "Bar" } }.ToList() };
805+
806+
Assert.Equivalent(expected, actual, strict: true);
807+
}
808+
809+
[Fact]
810+
public void Failure_ValueNotFoundInActual()
811+
{
812+
var expected = new[] { new { Foo = "Biff" } }.ToList();
813+
var actual = new[] { new { Foo = "Baz" }, new { Foo = "Bar" } }.ToList();
814+
815+
var ex = Record.Exception(() => Assert.Equivalent(expected, actual, strict: true));
816+
817+
Assert.IsType<EquivalentException>(ex);
818+
Assert.Equal(
819+
"Assert.Equivalent() Failure: Collection value not found" + Environment.NewLine +
820+
"Expected: { Foo = Biff }" + Environment.NewLine +
821+
"In: [{ Foo = Baz }, { Foo = Bar }]",
822+
ex.Message
823+
);
824+
}
825+
826+
[Fact]
827+
public void Failure_ExtraValueInActual()
828+
{
829+
var expected = new[] { new { Foo = "Bar" } }.ToList();
830+
var actual = new[] { new { Foo = "Baz" }, new { Foo = "Bar" } }.ToList();
831+
832+
var ex = Record.Exception(() => Assert.Equivalent(expected, actual, strict: true));
833+
834+
Assert.IsType<EquivalentException>(ex);
835+
Assert.Equal(
836+
"Assert.Equivalent() Failure: Extra values found" + Environment.NewLine +
837+
"Expected: [{ Foo = Bar }]" + Environment.NewLine +
838+
"Actual: [{ Foo = Baz }] left over from [{ Foo = Baz }, { Foo = Bar }]",
839+
ex.Message
840+
);
841+
}
842+
843+
[Fact]
844+
public void Failure_EmbeddedArray_ValueNotFoundInActual()
845+
{
846+
var expected = new { x = new[] { new { Foo = "Biff" } }.ToList() };
847+
var actual = new { x = new[] { new { Foo = "Baz" }, new { Foo = "Bar" } }.ToList() };
848+
849+
var ex = Record.Exception(() => Assert.Equivalent(expected, actual, strict: true));
850+
851+
Assert.IsType<EquivalentException>(ex);
852+
Assert.Equal(
853+
"Assert.Equivalent() Failure: Collection value not found in member 'x'" + Environment.NewLine +
854+
"Expected: { Foo = Biff }" + Environment.NewLine +
855+
"In: [{ Foo = Baz }, { Foo = Bar }]",
856+
ex.Message
857+
);
858+
}
859+
860+
[Fact]
861+
public void Failure_EmbeddedArray_ExtraValueInActual()
862+
{
863+
var expected = new { x = new[] { new { Foo = "Bar" } }.ToList() };
864+
var actual = new { x = new[] { new { Foo = "Baz" }, new { Foo = "Bar" } }.ToList() };
865+
866+
var ex = Record.Exception(() => Assert.Equivalent(expected, actual, strict: true));
867+
868+
Assert.IsType<EquivalentException>(ex);
869+
Assert.Equal(
870+
"Assert.Equivalent() Failure: Extra values found in member 'x'" + Environment.NewLine +
871+
"Expected: [{ Foo = Bar }]" + Environment.NewLine +
872+
"Actual: [{ Foo = Baz }] left over from [{ Foo = Baz }, { Foo = Bar }]",
873+
ex.Message
874+
);
875+
}
876+
}
877+
878+
public class ArraysAndListsAreEquivalent
879+
{
880+
[Fact]
881+
public void ArrayIsEquivalentToList()
882+
{
883+
Assert.Equivalent(new[] { 1, 2, 3 }, new List<int> { 1, 2, 3 });
884+
}
885+
886+
[Fact]
887+
public void ListIsEquivalentToArray()
888+
{
889+
Assert.Equivalent(new List<int> { 1, 2, 3 }, new[] { 1, 2, 3 });
890+
}
891+
}
892+
733893
public class Dictionaries_NotStrict
734894
{
735895
[Fact]
@@ -940,8 +1100,3 @@ public SelfReferential(bool circularReference)
9401100
public SelfReferential Other { get; }
9411101
}
9421102
}
943-
944-
945-
946-
947-

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.