private void ExistingResturantAssert(AddRestaurantTransaction sut)
        {
            var expectedResturantCount = 1;
            var expectedSucessStatus   = false;
            var expectedResponse       = new AddRestaurantResponseModel()
            {
                WasSucessfull = expectedSucessStatus,
                RestaurantId  = 0
            };

            var actualResponse = sut.Response;

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

            Assert.AreEqual(expectedResturantCount, Restaurants.Count);
        }
        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");
        }