public void GuardClauses() { // Arrange AntiForgeryDataSerializer serializer = new AntiForgeryDataSerializer(); // Act & assert ExceptionAssert.ThrowsArgNull( () => serializer.Serialize(null), "token" ); ExceptionAssert.ThrowsArgNullOrEmpty( () => serializer.Deserialize(null), "serializedToken" ); ExceptionAssert.ThrowsArgNullOrEmpty( () => serializer.Deserialize(String.Empty), "serializedToken" ); ExceptionAssert.Throws<HttpAntiForgeryException>( () => serializer.Deserialize("Corrupted Base-64 Value"), "A required anti-forgery token was not supplied or was invalid." ); }
public void CanRoundTripData() { // Arrange AntiForgeryDataSerializer serializer = new AntiForgeryDataSerializer { Decoder = value => Convert.FromBase64String(value), Encoder = bytes => Convert.ToBase64String(bytes), }; AntiForgeryData input = new AntiForgeryData { Salt = "The Salt", Username = "******", Value = "The Value", CreationDate = DateTime.Now, }; // Act AntiForgeryData output = serializer.Deserialize(serializer.Serialize(input)); // Assert Assert.IsNotNull(output); Assert.AreEqual(input.Salt, output.Salt); Assert.AreEqual(input.Username, output.Username); Assert.AreEqual(input.Value, output.Value); Assert.AreEqual(input.CreationDate, output.CreationDate); }
public void SerializeReturnsSerializedString() { // Arrange AntiForgeryData token = new AntiForgeryData() { CreationDate = new DateTime(2001, 1, 1), Salt = "the salt", Value = "the value" }; Mock<IStateFormatter> mockFormatter = new Mock<IStateFormatter>(); mockFormatter .Expect(f => f.Serialize(It.IsAny<object>())) .Returns( delegate(object state) { Triplet t = state as Triplet; Assert.IsNotNull(t); Assert.AreEqual("the salt", t.First); Assert.AreEqual("the value", t.Second); Assert.AreEqual(new DateTime(2001, 1, 1), t.Third); return "serialized value"; } ); AntiForgeryDataSerializer serializer = new AntiForgeryDataSerializer() { Formatter = mockFormatter.Object }; // Act string serializedValue = serializer.Serialize(token); // Assert Assert.AreEqual("serialized value", serializedValue); }
public void SerializeThrowsIfTokenIsNull() { // Arrange AntiForgeryDataSerializer serializer = new AntiForgeryDataSerializer(); // Act & assert ExceptionHelper.ExpectArgumentNullException( delegate { serializer.Serialize(null); }, "token"); }