public void Post_ReturnsHobbit()
        {
            long someId;
            Mock<IDataManager<Hobbit>> mockHobbitManager = new Mock<IDataManager<Hobbit>>();
            mockHobbitManager.Setup(m => m.TryGet(_testHobbit, out someId)).Returns(false);
            mockHobbitManager.Setup(m => m.Insert(_testHobbit)).Returns(_testHobbit);

            HobbitController controller = new HobbitController(mockHobbitManager.Object);

            Hobbit hobbit = controller.Post(_testHobbit);

            Assert.Equal(_testHobbit.Name, hobbit.Name);
        }
        public void Post_ThrowsException_WhenInsertFails()
        {
            long someId;
            Mock<IDataManager<Hobbit>> mockHobbitManager = new Mock<IDataManager<Hobbit>>();
            mockHobbitManager.Setup(m => m.TryGet(_testHobbit, out someId)).Returns(false);
            mockHobbitManager.Setup(m => m.Insert(_testHobbit));    // returns null

            HobbitController controller = new HobbitController(mockHobbitManager.Object);

            Assert.Throws<HttpResponseException>(() => controller.Post(_testHobbit));
        }
        public void Post_ThrowsException_WhenHobbitAlreadyExists()
        {
            long someId;
            Mock<IDataManager<Hobbit>> mockHobbitManager = new Mock<IDataManager<Hobbit>>();
            mockHobbitManager.Setup(m => m.TryGet(_testHobbit, out someId)).Returns(true);

            HobbitController controller = new HobbitController(mockHobbitManager.Object);

            Assert.Throws<HttpResponseException>(() => controller.Post(_testHobbit));
        }
        public void Put_ThrowsExceptio_WhenExistingHobbitIdMismatchesIdProvided()
        {
            long someId = 1;
            Mock<IDataManager<Hobbit>> mockHobbitManager = new Mock<IDataManager<Hobbit>>();
            mockHobbitManager.Setup(m => m.TryGet(_testHobbit, out someId)).Returns(false);

            HobbitController controller = new HobbitController(mockHobbitManager.Object);

            Assert.Throws<HttpResponseException>(() => controller.Post(_testHobbit));
        }