Exemple #1
0
        public void DeleteTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            TableOM target = new TableOM(db);
            int expected = 3;
            int actual;

            table t = db.tables.Find(table1.id);

            //Check Setup
            Assert.IsNotNull(db.tables.Find(table1.id));
            Assert.IsNotNull(db.orders.Find(order1.id).table_id);
            Assert.IsNotNull(db.service_request.Find(serviceRequest1.id).table_id);

            //Act
            actual = target.delete(table1.id);

            //Assert
            db = new touch_for_foodEntities();
            Assert.IsNull(db.tables.Find(table1.id));
            Assert.IsNull(db.orders.Find(order1.id).table_id);
            Assert.IsNull(db.service_request.Find(serviceRequest1.id).table_id);
            Assert.AreEqual(expected, actual);
        }
Exemple #2
0
        /**
         * Filters the categories and only returns those that are not already assigned to the menu
         * that is passed in.
         * */
        public static order getOpenOrder(user usr)
        {
            touch_for_foodEntities db = new touch_for_foodEntities();
            order o;
            var models = db.orders
                .Where(p => p.order_status == (int)OrderStatusHelper.OrderStatusEnum.PLACED || p.order_status == (int)OrderStatusHelper.OrderStatusEnum.EDITING || p.order_status == (int)OrderStatusHelper.OrderStatusEnum.PROCESSING)
                .Where(p=>p.user_id == usr.id)
                .OrderByDescending(p=>p.timestamp)
                .ToList()
                .Select(item =>
                new order
                {
                    id = item.id,
                    timestamp = item.timestamp,
                    total = item.total,
                    order_status = item.order_status,
                    order_item = item.order_item,
                    user = item.user,
                    table = item.table
                }).AsQueryable();

            if (models.Any())
            {
                o = models.ToArray()[0];
                return o;
            }
            return null;
        }
Exemple #3
0
        /**
         * Filters the sides and only returns those that are not already assigned to the menu
         * that is passed in.
         * */
        public static IList<side> FilterListBySide(menu_category menu_category)
        {
            touch_for_foodEntities db = new touch_for_foodEntities();
            List<side> filteredList = new List<side>();

            int resto_id = menu_category.menu.resto_id;
            //  We want all sides that do not exist in this menu_category and that belong to this restaurant.
            //  is_deleted and is_active need to be considered too. Show only sides where is_active is false
            //  if side is_deleted is true, then there should be another page to revert that. the side functionality
            //  I'm putting should only set a side to is_active is true or false
            List<side> restaurantSides = db.sides.Where
                (
                    si =>
                        si.menu_category.menu.resto_id == resto_id
                        && si.is_active == false
                        && si.is_deleted == false
                ).ToList();

            foreach (var side in restaurantSides)
            {
                if (side.menu_category_id.Equals(menu_category.id))
                {
                    filteredList.Add(side);
                }
            }
            db.Dispose();
            return filteredList;
        }
Exemple #4
0
 public static void MyClassCleanup()
 {
     touch_for_foodEntities db = new touch_for_foodEntities();
     review r = db.reviews.Find(m_review.id);
     db.reviews.Remove(r);
     db.SaveChanges();
     db.Dispose();
 }
        public void CreatePartialTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            PartialViewResult actual;

            //Act
            actual = (PartialViewResult)target.CreatePartial(menu1.id);

            //Assert
            Assert.AreEqual("_CategoryCreate", actual.ViewName);
        }
Exemple #6
0
        public static void MyClassInitialize(TestContext testContext)
        {
            touch_for_foodEntities db = new touch_for_foodEntities();
            m_review = new review();
            m_review.restaurant_id = db.restaurants.First().id;
            m_review.rating = 1;
            m_review.is_anonymous = true;

            db.reviews.Add(m_review);
            db.SaveChanges();
            db.Dispose();
        }
Exemple #7
0
 public static user getAuthenticatedUser(HttpContextBase httpContext)
 {
     try
     {
         db = new touch_for_foodEntities();
         String username = httpContext.User.Identity.Name;
         return db.users.FirstOrDefault(m => m.username.Equals(username, StringComparison.Ordinal));
     }
     catch (Exception)
     {
         return null;
     }
 }
Exemple #8
0
        public static void MyClassInitialize(TestContext testContext)
        {
            //Add test data (order specific)
            testDatabase = new TestDatabaseHelper();
            restaurant1 = testDatabase.AddRestaurant();
            table1 = testDatabase.AddTable(restaurant1);
            user1 = testDatabase.AddUser("*****@*****.**", table1, (int)SiteRoles.Admin);

            //Session
            db = new touch_for_foodEntities();
            target = new HomeController();
            Session session = new Session(db, target);
            session.simulateLogin(user1.username, user1.password);
        }
Exemple #9
0
        public void AssignTest()
        {
            //Arrange
            Util.Security.AES aes = new Util.Security.AES();
            string encryption = aes.EncryptToString(table1.id.ToString());

            //Act
            RedirectToRouteResult actual = (RedirectToRouteResult)target.Assign(encryption);

            //Assert
            db = new touch_for_foodEntities();
            Assert.AreEqual("Menu", actual.RouteValues["controller"]);
            Assert.AreEqual("UserMenu", actual.RouteValues["action"]);
            Assert.AreEqual(table1.id , db.users.Find(user1.id).current_table_id);
        }
Exemple #10
0
        /// <summary>
        /// Creates an entry of type item in the database.
        /// </summary>
        /// <returns>The created item entry.</returns>
        public item AddItem()
        {
            //Initialise
            db = new touch_for_foodEntities();
            item testItem = new item();

            //Set Attributes
            testItem.name = "UnitTest";

            //Save
            db.items.Add(testItem);
            db.SaveChanges();
            db.Dispose();

            return testItem;
        }
        public void CancelConfirmedServiceRequestLockErrorTest()
        {
            //Check Setup
            db = new touch_for_foodEntities();
            Assert.IsTrue(db.service_request.Find(request1.id).status == (int)ServiceRequestUtil.ServiceRequestStatus.OPEN);

            //Arrange
            request1.version++;

            //Act
            target.CancelConfirmed(request1);

            //Assert
            db = new touch_for_foodEntities();
            Assert.IsTrue(db.service_request.Find(request1.id).status == (int)ServiceRequestUtil.ServiceRequestStatus.OPEN);
        }
Exemple #12
0
        public void DeleteItemActiveExceptionTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            MenuItemOM target = new MenuItemOM(db);
            menuItem1.is_active = true;
            db.Entry(menuItem1).State = EntityState.Modified;
            db.SaveChanges();

            //Act
            int actual = target.delete(menuItem1.id);

            //Assert
            db = new touch_for_foodEntities();
            Assert.IsFalse(db.menu_item.Find(menuItem1.id).is_deleted);
            Assert.IsNotNull(db.order_item.Find(orderItem1.id));
        }
Exemple #13
0
        /// <summary>
        /// Creates a friendship entity
        /// </summary>
        /// <param name="user1">The first user in the friendship</param>
        /// <param name="user2">The second user in the friendship</param>
        /// <returns>the created friendship entity</returns>
        public friendship AddFriendship(user user1, user user2)
        {
            //Initialise
            db = new touch_for_foodEntities();
            friendship testFriendship = new friendship();

            //Set Attributes
            testFriendship.first_user = user1.id;
            testFriendship.second_user = user2.id;

            //Save
            db.friendships.Add(testFriendship);
            db.SaveChanges();
            db.Dispose();

            return testFriendship;
        }
Exemple #14
0
        /// <summary>
        /// Adds a category entry to the database
        /// </summary>
        /// <returns>The created category entity.</returns>
        public category AddCategory()
        {
            //Initialise
            db = new touch_for_foodEntities();
            category testCategory = new category();

            //Set attributes
            testCategory.name = "UnitTest";
            testCategory.version = 0;

            //Save
            db.categories.Add(testCategory);
            db.SaveChanges();
            db.Dispose();

            return testCategory;
        }
        public void CreateTest()
        {
            // Arrange
            db = new touch_for_foodEntities();
            RestaurantUserController target = new RestaurantUserController();
            int numExpectedAssociations = db.restaurant_user.ToList<restaurant_user>().Count() + 1;

            // Act
            var actualResult = target.Create(restoUser2) as RedirectToRouteResult;

            // Assertions
            db = new touch_for_foodEntities();
            var actualResultURI = actualResult.RouteValues["action"];
            int actualRestoUsers = db.restaurant_user.ToList<restaurant_user>().Count();
            Assert.AreEqual(numExpectedAssociations, actualRestoUsers);
            Assert.AreEqual("Index", actualResultURI);
        }
Exemple #16
0
        public static user getAuthenticatedUser(HttpRequestBase requestBase)
        {
            try
            {
                db = new touch_for_foodEntities();
                HttpCookie formsCookie = requestBase.Cookies[FormsAuthentication.FormsCookieName];
                FormsAuthenticationTicket auth = FormsAuthentication.Decrypt(formsCookie.Value);
                int userID = int.Parse(auth.UserData);

                UserIM im = new UserIM();
                return im.find(userID);
            }
            catch (Exception)
            {
                return null;
            }
        }
Exemple #17
0
        public void DeleteItemActiveExceptionTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            OrderOM target = new OrderOM(db);
            orderItem1.order_item_status = (int)OrderStatusHelper.OrderItemStatusEnum.PROCESSING;
            db.Entry(orderItem1).State = EntityState.Modified;
            db.SaveChanges();

            //Act
            int actual = target.delete(order1.id);

            //Assert
            db = new touch_for_foodEntities();
            Assert.IsFalse(db.orders.Find(order1.id).order_status ==
                (int)OrderStatusHelper.OrderStatusEnum.DELETED);
            Assert.IsFalse(db.order_item.Find(orderItem1.id).order_item_status ==
                (int)OrderStatusHelper.OrderItemStatusEnum.DELETED);
        }
Exemple #18
0
 // Should be able to search:
 // Item:
 // - name, description, metadata
 // Category:
 // - name
 // Menu:
 // - name
 public static IList<menu_item> GetAll(int restoId)
 {
     using (var db = new touch_for_foodEntities())
     {
         return db.menu_item
             .Include(x => x.item)
             .Include(x => x.menu_category.category)
             .Include(x => x.menu_category.menu)
             .Where
             (
                 x => x.is_active == true &&
                 x.is_deleted == false &&
                 x.menu_category.is_active == true &&
                 x.menu_category.is_deleted == false &&
                 x.menu_category.menu.resto_id == restoId &&
                 x.menu_category.menu.is_active == true &&
                 x.menu_category.menu.is_deleted == false
             ).ToList();
     }
 }
Exemple #19
0
        public void CreateUserDBEntityValidationExceptionTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            UserController target = new UserController();
            user2.email = null;
            user2.username = null;
            int expectedUsers = db.users.ToList<user>().Count();
            Session session = new Session(db, target);

            var actual = target.Create(user2) as ViewResult;

            // Assert
            db = new touch_for_foodEntities();
            int actualUsers = db.users.ToList<user>().Count();
            string errorMsg = actual.ViewBag.Error;
            Assert.IsNotNull(errorMsg); //error message is sent to view
            Assert.AreEqual(expectedUsers, actualUsers);
            Assert.AreEqual("Create", actual.ViewName); //Directed to correct location
        }
        public void CreateExceptionTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            target = new RestaurantController(); //reset target creating exception.
            int numberOfRestaurantsBefore = db.restaurants.ToList<restaurant>().Count();

            //Act
            ViewResult actual = target.Create(restaurant2) as ViewResult;

            //Assert
            db = new touch_for_foodEntities();
            int numberOfRestaurantsAfter = db.restaurants.ToList<restaurant>().Count();
            List<restaurant_user> restaurantUsers = db.restaurant_user
                .Where(ru => (ru.restaurant_id == restaurant2.id) &&
                (ru.user_id == user1.id)).ToList<restaurant_user>();
            string errorMsg = actual.ViewBag.Error;
            Assert.AreEqual(numberOfRestaurantsBefore, numberOfRestaurantsAfter); //no restaurants are created
            Assert.IsTrue(restaurantUsers.Count() == 0); //no restaurant_user are created
            Assert.IsNotNull(errorMsg); //error message is sent to view
        }
Exemple #21
0
        public static void MyClassInitialize(TestContext testContext)
        {
            //Add test data (order specific)
            testDatabase = new TestDatabaseHelper();
            restaurant1 = testDatabase.AddRestaurant();
            table1 = testDatabase.AddTable(restaurant1);
            user1 = testDatabase.AddUser("*****@*****.**", table1, (int)SiteRoles.Customer);
            order1 = testDatabase.AddOrder(table1);
            item1 = testDatabase.AddItem();
            category1 = testDatabase.AddCategory();
            menu1 = testDatabase.AddMenu(restaurant1);
            menuCategory1 = testDatabase.AddMenuCategory(category1, menu1);
            menuItem1 = testDatabase.AddMenuItem(item1, menuCategory1);
            orderItem1 = testDatabase.AddOrderItem(order1, menuItem1);

            //Session
            db = new touch_for_foodEntities();
            ReviewController target = new ReviewController();
            Session session = new Session(db, target);
            session.simulateLogin(user1.username, user1.password);
        }
Exemple #22
0
        /**
            * Filters the categories and only returns those that are not already assigned to the menu
            * that is passed in.
        * */
        public static IList<item> filterListByItem(menu_category menu_category,touch_for_foodEntities db)
        {
            List<item> filteredList = new List<item>();
            MenuItemIM im = new MenuItemIM(db);
            int resto_id = menu_category.menu.resto_id;
            bool reject = false;

            foreach (item i in db.items.ToList())
            {
                reject = false;
                //First check that the category does belong to the restaurant
                //Find all usages of the category in question in the current restaurant
                List<menu_item> usages = db.menu_item.Where(mi => mi.item_id == i.id && mi.menu_category.menu.resto_id == resto_id).ToList();

                //If it was never used by this restaurant, then the restaurant could not have created it
                // because create automatically adds the created item to the menu
                if (usages.Count == 0)
                {
                    reject = true;
                }

                if (menu_category.category.id == i.category_id)
                {
                    foreach (menu_item m_i in im.find(false, menu_category.id))
                    {
                        if (i.id == m_i.item_id)
                        {
                            reject = true;
                            break;
                        }
                    }
                    if (!reject)
                    {
                        filteredList.Add(i);
                    }
                }
            }
            db.Dispose();
            return filteredList;
        }
Exemple #23
0
        /**
         * Filters the categories and only returns those that are not already assigned to the menu
         * that is passed in.
         * */
        public static IList<category> filterListByMenu(menu menu,touch_for_foodEntities db)
        {
            List<category> filteredList = new List<category>();
            MenuCategoryIM im = new MenuCategoryIM(db);

            CategoryIM cim = new CategoryIM(db);
            int resto_id = menu.resto_id;

            bool reject = false;
            foreach (category cat in cim.find().ToList())
            {
                reject = false;
                //First check that the category does belong to the restaurant
                //Find all usages of the category in question in the current restaurant
                List<menu_category> usages = db.menu_category.Where(mc => mc.category_id == cat.id && mc.menu.resto_id == resto_id).ToList();
                //If it was never used by this restaurant, then the restaurant could not have created it
                // because create automatically adds the created item to the menu
                if (usages.Count == 0)
                {
                    reject = true;
                }

                //Check if the category is being used buy the current menu
                foreach (menu_category menu_cat in im.find(false, menu.id))
                {
                    if (cat.id == menu_cat.category_id)
                    {
                        reject = true;
                        break;
                    }
                }
                if (!reject)
                {
                    filteredList.Add(cat);
                }
            }
            return filteredList;
        }
Exemple #24
0
        public void DeleteTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            WaiterOM target = new WaiterOM(db);
            int expected = 2;
            int actual;

            table t = db.tables.Find(table1.id);

            //Check Setup
            Assert.IsNotNull(db.waiters.Find(waiter1.id));
            Assert.IsNotNull(db.orders.Find(order1.id).waiter_id);

            //Act
            actual = target.delete(waiter1.id);

            //Assert
            db = new touch_for_foodEntities();
            Assert.IsNull(db.waiters.Find(waiter1.id));
            Assert.IsNull(db.orders.Find(order1.id).waiter_id);
            Assert.AreEqual(expected, actual);
        }
Exemple #25
0
        public void AddCategoryTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            int numberOfMenuCategoriesBefore = db.categories.Find(category1.id).menu_category
                .ToList<menu_category>().Count();

            //Act
            target.AddCategory(menu1.id, category1.id);

            //Assert
            db = new touch_for_foodEntities();
            int numberOfMenuCategoriesAfter = db.categories.Find(category1.id).menu_category
                .ToList<menu_category>().Count();

            //only one menu category added
            Assert.AreEqual((numberOfMenuCategoriesBefore + 1), numberOfMenuCategoriesAfter);

            //each menu category has the right menu and category attributes.
            foreach (menu_category mc in db.categories.Find(category1.id).menu_category.ToList<menu_category>())
            {
                Assert.IsTrue(mc.menu_id == menu1.id);
            }
        }
        public void OnTheMenuTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            Menu_ItemController target = new Menu_ItemController();
            List<menu_item> expectedMenuItems = db.menu_item.Where(mi => mi.menu_category_id == menuCategory1.id && mi.is_deleted == false).ToList();
            PartialViewResult actual;

            //Act
            actual = (PartialViewResult)target.OnTheMenu(menuCategory1.id);

            //Assert
            List<menu_item> actualMenuItems = actual.Model as List<menu_item>;
            Assert.AreEqual(expectedMenuItems.Count(), actualMenuItems.Count());
            Assert.AreEqual("_OnTheMenu", actual.ViewName);
        }
        public void MyTestInitialize()
        {
            //Add test data (order specific)
            db = new touch_for_foodEntities();
            menuItem1 = testDatabase.AddMenuItem(item1, menuCategory1);
            orderItem1 = testDatabase.AddOrderItem(order1, menuItem1);
            reviewOrderItem1 = testDatabase.AddReviewOrderItem(review1, orderItem1, "testing1", 2);
            reviewOrderItem2 = testDatabase.AddReviewOrderItem(review1, orderItem1, "testing2", 3);

            //set parameters for menuItem2
            menuItem2 = new menu_item();
            menuItem2.item_id = item1.id;
            menuItem2.menu_category_id = menuCategory1.id;
            menuItem2.price = new decimal(10.99);
            menuItem2.is_active = false;
            menuItem2.is_deleted = false;
        }
        public void IndexTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            Menu_ItemController target = new Menu_ItemController();
            List<menu_item> expectedMenuItems = db.menu_item.Where(mi => mi.is_active == true && mi.is_deleted == false).ToList();
            ViewResult actual;

            //Act
            actual = (ViewResult)target.Index();

            //Assert
            List<menu_item> actualMenuItems = actual.Model as List<menu_item>;
            Assert.AreEqual(expectedMenuItems.Count(), actualMenuItems.Count());
        }
        public void GetAllReviewsTest()
        {
            //Arrange
            db = new touch_for_foodEntities();
            Menu_ItemController target = new Menu_ItemController();
            PartialViewResult actual;
            List<review_order_item> expectedReviews = db.menu_item.Find(menuItem1.id)
                                                        .order_item
                                                        .SelectMany(oi => oi.review_order_item)
                                                        .OrderByDescending(r => r.submitted_on)
                                                        .ToList<review_order_item>();
            //Act
            actual = target.GetAllReviews(menuItem1);

            //Assert
            List<review_order_item> actualReviews = actual.Model as List<review_order_item>;
            Assert.AreEqual(expectedReviews.Count(), actualReviews.Count());
            Assert.AreEqual("_PastReviewsPartial", actual.ViewName);
        }
        public void EditViewTest()
        {
            // Arrange
            db = new touch_for_foodEntities();
            Menu_ItemController target = new Menu_ItemController();
            int expected = menuItem1.id;
            SelectList expectedItemList = new SelectList(db.items, "id", "name", menuItem1.item_id);
            SelectList expectedCategoryList = new SelectList(db.menu_category, "id", "id", menuItem1.menu_category_id);
            ViewResult actual;

            // Act
            actual = (ViewResult)target.Edit(menuItem1.id);

            // Assert
            Assert.AreEqual(expected, ((menu_item)actual.ViewData.Model).id);

            SelectList actualItemList = actual.ViewBag.item_id;
            Assert.AreEqual(expectedItemList.GetType(), actualItemList.GetType());
            Assert.AreEqual(expectedItemList.Count(), actualItemList.Count());

            SelectList actualCategoryList = actual.ViewBag.menu_category_id;
            Assert.AreEqual(expectedCategoryList.GetType(), actualCategoryList.GetType());
            Assert.AreEqual(expectedCategoryList.Count(), actualCategoryList.Count());
        }