public ViewRestaurantsForCuisineTransaction CreateViewRestaurantsForCuisineTransaction(int id)
        {
            var reqModel = new ViewRestaurantsForCuisineRequestModel
            {
                CuisineId = id,
                UserId    = _identity.GetRequestingUserId()
            };

            return(new ViewRestaurantsForCuisineTransaction(_repo, _log, reqModel));
        }
        public void ViewRestaurant_InvalidCusineID_Fail()
        {
            var requestCusineID = 222;
            var viewingUserId   = 1;
            var requestModel    = new ViewRestaurantsForCuisineRequestModel {
                UserId = viewingUserId, CuisineId = requestCusineID
            };

            var tran = new ViewRestaurantsForCuisineTransaction(Repo, Log, requestModel);

            tran.Execute();
        }
        public void ViewRestaurants_ValidCuisine_Succeed()
        {
            var expectedCuisine = Cuisines[4];
            var requestCusineId = expectedCuisine.Id;
            var viewingUserId   = 1;
            var requestModel    = new ViewRestaurantsForCuisineRequestModel {
                UserId = viewingUserId, CuisineId = requestCusineId
            };

            var expectedRestaurants = new List <Restaurant>();

            //restaurant 4 setup
            for (int i = 0; i < 5; i++)
            {
                expectedRestaurants.Add(new Restaurant
                {
                    Name      = $"Mexican Restaurant No {i}",
                    CreatedBy = 1,
                    UpdatedBy = 1,
                    Cuisine   = expectedCuisine,
                    Id        = (6 + i)
                });
            }
            var expectedRestCount = 5;

            var tran = new ViewRestaurantsForCuisineTransaction(Repo, Log, requestModel);

            tran.Execute();
            var actualResponse = tran.Response;

            //assert
            Assert.AreEqual(true, actualResponse.WasSucessfull, "Invalid execution status");
            var restIndex = 0;

            foreach (var actualrest in actualResponse.Restaurants)
            {
                var expectedRest = expectedRestaurants[restIndex];
                Assert.AreEqual(expectedRest.Id, actualrest.Id);
                Assert.AreEqual(expectedRest.Cuisine.Id, actualrest.Cuisine.Id);
                Assert.AreEqual(expectedRest.Name, actualrest.Name);
                Assert.AreEqual(expectedRest.CreatedBy, actualrest.CreatedBy);
                Assert.AreEqual(expectedRest.UpdatedBy, actualrest.UpdatedBy);

                restIndex++;
            }
            Assert.AreEqual(expectedRestCount, restIndex);
        }