public void ShouldCallResultChooser() { var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); filter.GetRequestInfo(actionExecutingContext); filter.OnActionExecuted(actionExecutedContext); chooser.Verify(c => c.BasedOnMediaType(actionExecutedContext, It.IsAny <IMediaType>(), requestInfo.Object), Times.Once()); }
public void ShouldReturnNotAcceptableWhenMediaTypeIsNotSupported() { acceptHeader.Setup(f => f.GetMediaType(It.IsAny<string>())).Throws(new AcceptHeaderNotSupportedException()); requestInfo.Setup(ah => ah.GetAcceptHeader()).Returns("some-crazy-media-type"); var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); filter.OnActionExecuting(actionExecutingContext); Assert.IsTrue(actionExecutingContext.Result is NotAcceptable); }
public void ShouldReturnNotAcceptableWhenMediaTypeIsNotSupported() { acceptHeader.Setup(f => f.GetMediaType(It.IsAny <string>())).Throws(new AcceptHeaderNotSupportedException()); requestInfo.Setup(ah => ah.GetAcceptHeader()).Returns("some-crazy-media-type"); var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); filter.OnActionExecuting(actionExecutingContext); Assert.IsTrue(actionExecutingContext.Result is NotAcceptable); }
public void ShouldNotReturnUnsupportedMediaTypeWhenContentTypeIsNotInterpretedByResftfulie() { resolver.Setup(r => r.HasResource).Returns(true); contentType.Setup(f => f.GetMediaType(It.IsAny <string>())).Throws(new ContentTypeNotSupportedException()); requestInfo.Setup(ah => ah.GetContentType()).Returns("some-crazy-media-type"); var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); filter.OnActionExecuting(actionExecutingContext); Assert.IsFalse(actionExecutingContext.Result is UnsupportedMediaType); }
public void ShouldIgnoreUnmarshallingIfThereIsNothingToBeUnmarshalled() { resolver.SetupGet(r => r.HasResource).Returns(false); contentType.Setup(f => f.GetMediaType(It.IsAny <string>())).Throws(new ContentTypeNotSupportedException()); var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); filter.OnActionExecuting(actionExecutingContext); contentType.Verify(c => c.GetMediaType(It.IsAny <string>()), Times.Never()); unmarshaller.Verify(u => u.Build(It.IsAny <string>(), It.IsAny <Type>()), Times.Never()); unmarshaller.Verify(u => u.Build(It.IsAny <string>(), It.IsAny <Type>()), Times.Never()); }
public void ShouldReturnBadRequestWhenUnmarshallingFails() { resolver.SetupGet(r => r.HasResource).Returns(true); unmarshaller.Setup(u => u.Build(It.IsAny <string>(), It.IsAny <Type>())).Throws( new UnmarshallingException("message")); contentType.Setup(f => f.GetMediaType(It.IsAny <string>())).Returns(mediaType.Object); var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); filter.OnActionExecuting(actionExecutingContext); Assert.IsTrue(actionExecutingContext.Result is BadRequest); }
public void ShouldUnmarshallResource() { var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); var resource = new SomeResource { Amount = 123, Name = "Some name" }; resolver.SetupGet(r => r.HasResource).Returns(true); resolver.SetupGet(r => r.ParameterName).Returns("Resource"); resolver.SetupGet(r => r.ParameterType).Returns(typeof (SomeResource)); unmarshaller.Setup(u => u.Build(It.IsAny<string>(), typeof(SomeResource))).Returns(resource); contentType.Setup(m => m.GetMediaType(It.IsAny<string>())).Returns(mediaType.Object); filter.OnActionExecuting(actionExecutingContext); Assert.AreEqual(resource, actionExecutingContext.ActionParameters["Resource"]); }
public void ShouldNotReplaceResourceIfUnmarshallerReturnsNull() { var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); actionExecutingContext.ActionParameters["Resource"] = "some old data here"; resolver.SetupGet(r => r.HasResource).Returns(true); resolver.SetupGet(r => r.ParameterName).Returns("Resource"); resolver.SetupGet(r => r.ParameterType).Returns(typeof(SomeResource)); unmarshaller.Setup(u => u.Build(It.IsAny <string>(), typeof(SomeResource))).Returns(null as IBehaveAsResource); contentType.Setup(m => m.GetMediaType(It.IsAny <string>())).Returns(mediaType.Object); filter.OnActionExecuting(actionExecutingContext); Assert.AreEqual("some old data here", actionExecutingContext.ActionParameters["Resource"]); }
public void ShouldUnmarshallListOfResources() { var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); var resources = new[] { new SomeResource { Amount = 123, Name = "Some name" } }; resolver.SetupGet(r => r.HasResource).Returns(true); resolver.SetupGet(r => r.ParameterName).Returns("Resource"); resolver.SetupGet(r => r.ParameterType).Returns(typeof(SomeResource)); unmarshaller.Setup(u => u.Build(It.IsAny <string>(), typeof(SomeResource))).Returns(resources); contentType.Setup(m => m.GetMediaType(It.IsAny <string>())).Returns(mediaType.Object); filter.OnActionExecuting(actionExecutingContext); Assert.AreEqual(resources, actionExecutingContext.ActionParameters["Resource"]); }
public void ShouldCallResultChooser() { var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); filter.GetRequestInfo(actionExecutingContext); filter.OnActionExecuted(actionExecutedContext); chooser.Verify(c => c.BasedOnMediaType(actionExecutedContext, It.IsAny<IMediaType>(), requestInfo.Object), Times.Once()); }
public void ShouldNotReplaceResourceIfUnmarshallerReturnsNull() { var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); actionExecutingContext.ActionParameters["Resource"] = "some old data here"; resolver.SetupGet(r => r.HasResource).Returns(true); resolver.SetupGet(r => r.ParameterName).Returns("Resource"); resolver.SetupGet(r => r.ParameterType).Returns(typeof(SomeResource)); unmarshaller.Setup(u => u.Build(It.IsAny<string>(), typeof(SomeResource))).Returns(null as IBehaveAsResource); contentType.Setup(m => m.GetMediaType(It.IsAny<string>())).Returns(mediaType.Object); filter.OnActionExecuting(actionExecutingContext); Assert.AreEqual("some old data here", actionExecutingContext.ActionParameters["Resource"]); }
public void ShouldIgnoreUnmarshallingIfThereIsNothingToBeUnmarshalled() { resolver.SetupGet(r => r.HasResource).Returns(false); contentType.Setup(f => f.GetMediaType(It.IsAny<string>())).Throws(new ContentTypeNotSupportedException()); var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); filter.OnActionExecuting(actionExecutingContext); contentType.Verify(c => c.GetMediaType(It.IsAny<string>()), Times.Never()); unmarshaller.Verify(u => u.Build(It.IsAny<string>(), It.IsAny<Type>()), Times.Never()); unmarshaller.Verify(u => u.Build(It.IsAny<string>(), It.IsAny<Type>()), Times.Never()); }
public void ShouldReturnBadRequestWhenUnmarshallingFails() { resolver.SetupGet(r => r.HasResource).Returns(true); unmarshaller.Setup(u => u.Build(It.IsAny<string>(), It.IsAny<Type>())).Throws( new UnmarshallingException("message")); contentType.Setup(f => f.GetMediaType(It.IsAny<string>())).Returns(mediaType.Object); var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); filter.OnActionExecuting(actionExecutingContext); Assert.IsTrue(actionExecutingContext.Result is BadRequest); }
public void ShouldNotReturnUnsupportedMediaTypeWhenContentTypeIsNotInterpretedByResftfulie() { resolver.Setup(r => r.HasResource).Returns(true); contentType.Setup(f => f.GetMediaType(It.IsAny<string>())).Throws(new ContentTypeNotSupportedException()); requestInfo.Setup(ah => ah.GetContentType()).Returns("some-crazy-media-type"); var filter = new ActAsRestfulie(acceptHeader.Object, contentType.Object, requestInfoFactory.Object, chooser.Object, resolver.Object); filter.OnActionExecuting(actionExecutingContext); Assert.IsFalse(actionExecutingContext.Result is UnsupportedMediaType); }