public AddRestaurantTransaction CreateAddRestraurantTransaction(string name, int cuisineId)
        {
            var reqModel = new AddRestaurantRequestModel
            {
                Name      = name,
                CuisineId = cuisineId,
                UserId    = _identity.GetRequestingUserId()
            };

            return(new AddRestaurantTransaction(_repo, _log, reqModel));
        }
Exemple #2
0
        public void PostNewRestaurant_ValidInput_OkWithUrl()
        {
            //arrange
            var cuisineName    = "Mexican";
            var cuisineId      = 10;
            var restName       = "No1 Mexican Restaurant";
            var expectedRestId = 155;
            var createdUser    = 1;
            var cuisine        = new Cuisine
            {
                Name      = cuisineName,
                Id        = cuisineId,
                CreatedBy = createdUser,
                UpdatedBy = createdUser
            };

            var expectedResponse = new API.ViewModels.Restaurant
            {
                Id            = expectedRestId,
                AverageRating = 0,
                CuisineName   = cuisineName,
                CuisineId     = cuisineId,
                Name          = restName,
                ReviewCount   = 0
            };

            var transactionRequest = new AddRestaurantRequestModel
            {
                CuisineId = cuisineId,
                Name      = restName,
                UserId    = createdUser
            };

            MockRepository.Setup(m => m.AddRestaurentGetNewId(transactionRequest)).Returns(expectedRestId);
            MockRepository.Setup(m => m.GetCuisineById(It.IsAny <int>())).Returns(cuisine);
            MockIdentity.Setup(m => m.GetRequestingUserId()).Returns(createdUser);

            var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object);

            //act
            var actionResult = ctrl.Post(new API.ViewModels.Restaurant {
                CuisineId = cuisineId, Name = restName
            });
            var createdResult = actionResult as CreatedAtRouteNegotiatedContentResult <API.ViewModels.Restaurant>;

            //assert
            Assert.IsNotNull(createdResult, "created-201 status was not returned");
            Assert.AreEqual("DefaultRouting", createdResult.RouteName);
            Assert.AreEqual(expectedRestId, createdResult.RouteValues["id"]);

            //validate response
            ValidateRestaurantResponse(createdResult.Content, expectedResponse);
        }
Exemple #3
0
        private int FakeAddRestaurant(AddRestaurantRequestModel r)
        {
            var cuisineRef = Cuisines[r.CuisineId - 1];

            Restaurants.Add(new Restaurant
            {
                Id        = Restaurants.Count + 1,
                Cuisine   = cuisineRef,
                CreatedBy = r.UserId,
                UpdatedBy = r.UserId,
                Name      = r.Name
            });
            return(Restaurants.Count);
        }
Exemple #4
0
        public int AddRestaurentGetNewId(AddRestaurantRequestModel requestModel)
        {
            var cuisineRef = GetCuisineById(requestModel.CuisineId);

            Restaurants.Add(new Restaurant
            {
                Id        = Restaurants.Count + 1,
                Cuisine   = cuisineRef,
                CreatedBy = requestModel.UserId,
                UpdatedBy = requestModel.UserId,
                Name      = requestModel.Name
            });
            return(Restaurants.Count);
        }
        public override bool Equals(object obj)
        {
            AddRestaurantRequestModel model = obj as AddRestaurantRequestModel;

            if (model == null)
            {
                return(false);
            }
            else
            {
                return(UserId.Equals(model.UserId) &&
                       Name.Equals(model.Name, System.StringComparison.CurrentCultureIgnoreCase) &&
                       CuisineId.Equals(model.CuisineId));
            }
        }
        public int AddRestaurentGetNewId(AddRestaurantRequestModel requestModel)
        {
            var newRestaurant = new Sql.Restaurant
            {
                Name        = requestModel.Name,
                CuisineId   = requestModel.CuisineId,
                CreatedBy   = requestModel.UserId,
                UpdatedBy   = requestModel.UserId,
                CreatedDate = DateTime.Now,
                UpdatedDate = DateTime.Now
            };

            _restaurantDbContex.Restaurants.Add(newRestaurant);
            _restaurantDbContex.SaveChanges();
            return(newRestaurant.Id);
        }
        public void AddResturant_WithExistingNameSame_ResturantExistExceptionThrown()
        {
            Restaurants.Add(new Restaurant {
                Name = "Restaurant name one", CreatedBy = 100, UpdatedBy = 100, Cuisine = Cuisines[0], Id = 1
            });
            var reqData = new AddRestaurantRequestModel()
            {
                Name      = "Restaurant name one",
                CuisineId = Cuisines[1].Id,
                UserId    = 1
            };

            var sut = new AddRestaurantTransaction(Repo, Log, reqData);

            sut.Execute();

            ExistingResturantAssert(sut);
        }
        public void AddResturant_NewResturant_AddSucessfully()
        {
            //Assign
            var expectedName        = "Restaurant name one";
            var expectedCuisine     = Cuisines[0].Id;
            var expectedCreatedById = 1;
            var expectedUpdatedById = expectedCreatedById;
            var expectedRestID      = 1;
            var reqData             = new AddRestaurantRequestModel()
            {
                Name      = expectedName,
                CuisineId = expectedCuisine,
                UserId    = expectedCreatedById
            };
            var expectedSucessStatus = true;
            var expectedResponse     = new AddRestaurantResponseModel()
            {
                WasSucessfull = expectedSucessStatus,
                RestaurantId  = expectedRestID
            };

            var sut = new AddRestaurantTransaction(Repo, Log, reqData);

            //act
            sut.Execute();
            var actualResponse = sut.Response;

            //assert
            Assert.AreEqual(expectedSucessStatus, actualResponse.WasSucessfull, "Invalid execution status");
            Assert.AreEqual(expectedResponse, actualResponse, "Invalid response");

            Restaurant actualRest = Restaurants[expectedResponse.RestaurantId - 1];

            Assert.AreEqual(expectedRestID, actualRest.Id, "Restaurant ID");
            Assert.AreEqual(expectedName, actualRest.Name, "Restaurant name");
            Assert.AreEqual(expectedCuisine, actualRest.Cuisine.Id, "Restaurant CuisineId");
            Assert.AreEqual(expectedCreatedById, actualRest.CreatedBy, "Created by");
            Assert.AreEqual(expectedUpdatedById, actualRest.UpdatedBy, "Updated by");
        }