public void SerializerProperty() { // Arrange ValidateAntiForgeryTokenAttribute attribute = new ValidateAntiForgeryTokenAttribute(); AntiForgeryDataSerializer newSerializer = new AntiForgeryDataSerializer(); // Act & Assert MemberHelper.TestPropertyWithDefaultInstance(attribute, "Serializer", newSerializer); }
public void DeserializeThrowsIfSerializedTokenIsNull() { // Arrange AntiForgeryDataSerializer serializer = new AntiForgeryDataSerializer(); // Act & assert ExceptionHelper.ExpectArgumentExceptionNullOrEmpty( delegate { serializer.Deserialize(null); }, "serializedToken"); }
public void DeserializeReturnsDeserializedToken() { // Arrange Mock<IStateFormatter> mockFormatter = new Mock<IStateFormatter>(); mockFormatter.Expect(f => f.Deserialize("serialized value")).Returns(new Triplet("the salt", "the value", new DateTime(2001, 1, 1))); AntiForgeryDataSerializer serializer = new AntiForgeryDataSerializer() { Formatter = mockFormatter.Object }; // Act AntiForgeryData token = serializer.Deserialize("serialized value"); // Assert Assert.IsNotNull(token); Assert.AreEqual(new DateTime(2001, 1, 1), token.CreationDate); Assert.AreEqual("the salt", token.Salt); Assert.AreEqual("the value", token.Value); }
public void DeserializeThrowsIfFormatterThrows() { // Arrange Exception innerException = new Exception(); Mock<IStateFormatter> mockFormatter = new Mock<IStateFormatter>(); mockFormatter.Expect(f => f.Deserialize("bad value")).Throws(innerException); AntiForgeryDataSerializer serializer = new AntiForgeryDataSerializer() { Formatter = mockFormatter.Object }; // Act HttpAntiForgeryException ex = ExceptionHelper.ExpectException<HttpAntiForgeryException>( delegate { serializer.Deserialize("bad value"); }, "A required anti-forgery token was not supplied or was invalid."); // Assert Assert.AreEqual(innerException, ex.InnerException); }
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"); }