public void Get_All_Persons()
        {
            // Arrange
            var allPersons = new[]
            {
                new Library.Entity.Person {FirstName = "John", LastName = "McClung", MiddleName = "Paul", Notes = "Crazy as can be"},
                new Library.Entity.Person {FirstName = "Katie", LastName = "McClung", MiddleName = "Elane", Notes = "Just as crazy as John"}
            };
            var service = Mock.Of<IPersonService>(s => s.All(null, null, "LastName") == allPersons.AsEnumerable());
            var controller = new PersonController(service);

            // Act
            var result = controller.Get(null, null, "LastName") as OkNegotiatedContentResult<IEnumerable<Web.Models.Person>>;
            var personModels = allPersons.AsEnumerable().ToModel();

            // Assert
            Assert.NotNull(result);
            Assert.True(personModels.SequenceEqual(result.Content));
        }
        public void Get_Person_By_Id_Test()
        {
            // Arrange
            var person = new Library.Entity.Person
            {
                FirstName = "John",
                LastName = "McClung",
                MiddleName = "Paul",
                Notes = "Crazy as can be",
                Id = ObjectId.GenerateNewId()
            };
            var service = Mock.Of<IPersonService>(s => s.Get(person.Id.ToString()) == person);
            var controller = new PersonController(service);
            var personModel = Mapper.Map<Library.Entity.Person, Web.Models.Person>(person);

            // Act
            var result = controller.Get(person.Id.ToString()) as OkNegotiatedContentResult<Web.Models.Person>;

            // Assert
            Assert.NotNull(result);
            Assert.Equal(personModel, result.Content);
        }
        public void Get_Person_Throws_when_service_returns_null()
        {
            // Arrange
            var id = new ObjectId().ToString();
            var service = new Mock<IPersonService>();
            service.Setup(s => s.Get(id)).Returns((Library.Entity.Person) null);// Had trouble making the static setup work like in the other tests
            var controller = new PersonController(service.Object);

            // Act
            var result = controller.Get(id);

            // Assert
            Assert.IsType<NotFoundResult>(result);
        }