public async Task GetPropertyByIdAsync() { var portfolio1 = new Portfolio { Name = "Portfolio1" }; var property = new Property { Address = new Address { City = "Exeter", CreatedDateTime = DateTime.Now.AddDays(-3), IsActive = true, Line1 = "Line 1", Line2 = "Line 2", PostCode = "Postcode", Town = "Town" }, Description = "Description", IsActive = true, NoOfBeds = 2, PropertyValue = 12345, PurchaseDate = new DateTime(2008, 3, 1), PurchasePrice = 12343, RentalPrice = 431, CreatedDateTime = DateTime.Now.AddDays(-1), Portfolio = portfolio1, Tenants = new List <Tenant> { new Tenant { FirstName = "FirstName1", LastName = "LastName1", EmailAddress = "*****@*****.**", IsActive = true, Profession = "Window cleaner", TenancyStartDate = DateTime.Now.AddDays(-1) }, new Tenant { FirstName = "FirstName2", LastName = "LastName2", EmailAddress = "*****@*****.**", IsActive = true, Profession = "Superstar DJ", TenancyStartDate = DateTime.Now.AddDays(-1) } } }; _propertyServiceMock.Setup(s => s.GetPropertyById(It.IsAny <Guid>(), It.IsAny <Guid>())) .Returns(Task.FromResult <Property>(property)).Verifiable(); var controller = new PropertiesController(_propertyServiceMock.Object, _mapperMock); controller.ControllerContext = new ControllerContext() { HttpContext = new DefaultHttpContext() { User = _principle } }; var results = await controller.GetPropertyById(It.IsAny <Guid>(), It.IsAny <Guid>()); var okResult = results.Result as OkObjectResult; var okVal = okResult.Value as PropertyDetailDto; Assert.AreEqual((int)System.Net.HttpStatusCode.OK, okResult.StatusCode); Assert.AreEqual("Description", okVal.Description); Assert.AreEqual(2, okVal.Tenants.Count); Assert.AreEqual(2, okVal.NoOfBeds); Assert.AreEqual("Exeter", okVal.Address.City); }