public void PostPatientRegistration_ValidRequest_Returns_HttpStatusCode_Created() { // Arrange var businessServiceMock = new Mock <IBusinessService>(); businessServiceMock.Setup(service => service.RegisterPatient(PatientRegistrationInfoEntityTestData())).Returns(1); var controller = new PatientRegistrationController(businessServiceMock.Object); // Create the mock and set up the Link method, which is used to create the Location header. // The mock version returns a fixed string. string locationUrl = "http://location/"; var mockUrlHelper = new Mock <UrlHelper>(); mockUrlHelper.Setup(x => x.Link(It.IsAny <string>(), It.IsAny <object>())).Returns(locationUrl); controller.Url = mockUrlHelper.Object; // Act var actionResult = controller.Post(PatientRegistrationInfoTestData()); // Assert var negResult = actionResult as CreatedNegotiatedContentResult <String>; Assert.IsNotNull(negResult); Assert.IsNotNull(negResult.Content); Assert.AreEqual(negResult.Content, "Patient is regiested"); Assert.AreEqual(negResult.Location, locationUrl); }