public void OnGetSingleTest()
        {
            var singleRequest = new AdventureReview { Id = "legit id" };
            var reviewList = new List<AdventureReview> { singleRequest };

            var expectedSingleReviewResponse = new AdventureReviewGetResponse(singleRequest) { AdventureReviews = reviewList };

            var mock = new Mock<IAdventureReviewRepository>();
            mock.Setup(a => a.GetAdventureReviewById(singleRequest.Id)).Returns(singleRequest);
            mock.Setup(a => a.GetAdventureReviews()).Returns(reviewList);

            var target = new AdventureReviewService { AdventureReviewRepository = mock.Object };

            var actual = target.OnGet(singleRequest) as AdventureReviewGetResponse;
            Assert.AreEqual(expectedSingleReviewResponse, actual);
        }
        public void OnPostNewTest()
        {
            const string adventurename = "AdventureName";
            var adventureDate = DateTime.Now;
            var adventureDuration = new TimeSpan(0, 0, 1);

            var adventureType = new AdventureType { Id = "typeId", Name = "AdventureType" };

            var adventureLocation = new AdventureLocation(new GeoPoint { Lat = 0, Lon = 0 }, "AdventureLocation");

            var newReviewRequest = new AdventureReview
                                                   {
                                                       AdventureName = adventurename,
                                                       AdventureDate = adventureDate,
                                                       AdventureDuration = adventureDuration,
                                                       AdventureType = adventureType,
                                                       AdventureLocation = adventureLocation
                                                   };

            var newReviewRequestOutput = new AdventureReview
                                                         {
                                                             Id = "newId",
                                                             AdventureName = adventurename,
                                                             AdventureDate = adventureDate,
                                                             AdventureDuration = adventureDuration,
                                                             AdventureType = adventureType,
                                                             AdventureLocation = adventureLocation
                                                         };

            var expectedNewReviewResponse = new AdventureReviewSaveResponse(newReviewRequest)
                                                                        {
                                                                            AdventureReview = newReviewRequestOutput
                                                                        };

            var mock = new Mock<IAdventureReviewRepository>();
            mock.Setup(a => a.SaveAdventureReview(newReviewRequest)).Returns(expectedNewReviewResponse.AdventureReview);

            var target = new AdventureReviewService { AdventureReviewRepository = mock.Object };

            // new review
            var actual = target.OnPost(newReviewRequest) as AdventureReviewSaveResponse;
            Assert.AreEqual(expectedNewReviewResponse, actual);
        }