Skip to content

Instantly share code, notes, and snippets.

@maaretp
Last active August 29, 2015 14:13
Show Gist options
  • Save maaretp/5b96936ecd72c616a15d to your computer and use it in GitHub Desktop.
Save maaretp/5b96936ecd72c616a15d to your computer and use it in GitHub Desktop.
First Unit Test - after
[TestClass]
public class ClaimEqualityComparerTest : BaseTest
{
[TestMethod]
public void ClaimsAreEqual()
{
var identical = new Claim { Type = "Type", Value = "Value" };
var sameType = new Claim { Type = "TYPE", Value = "Value" };
AssertEquality(true, identical, sameType);
}
[TestMethod]
public void ClaimsAreNotEqual()
{
var differentValue = new Claim { Type = "Type", Value = "VALUE" };
var nullType = new Claim { Type = null, Value = "Value" };
var emptyType = new Claim { Type = "", Value = "Value" };
AssertEquality(false, differentValue, nullType, emptyType, null);
}
[TestMethod]
public void NullTypesDontMatch()
{
var nullType = new Claim { Type = null, Value = "Value" };
AssertEquality(nullType, false, nullType );
var emptyType = new Claim { Type = "", Value = "Value" };
AssertEquality(emptyType, false, emptyType);
}
[TestMethod]
public void EmptyValueDoMatch()
{
var emptyValue = new Claim { Type = "Type", Value = "" };
AssertEquality(emptyValue, true, emptyValue);
var nullValue = new Claim { Type = "Type", Value = null };
AssertEquality(nullValue, true, nullValue);
}
private static void AssertEquality(bool expected, params Claim[] cases)
{
var master = new Claim { Type = "Type", Value = "Value" };
AssertEquality(master, expected, cases);
}
private static void AssertEquality(Claim master, bool expected, params Claim[] cases)
{
var comparator = new ClaimEqualityComparer();
foreach (var c in cases)
{
comparator.Equals(master, c).Should().Be(expected, because:string.Format("[master,case] = [{0},{1}]", master, c));
comparator.Equals(c, master).Should().Be(expected);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment