Inheritance: ControllerBase
    protected void SeatingGridView_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        //extract the table number, number in party and the waiter ID
        //from the grid view
        //we will also create the time from the MockDateTime controls at the top of this form
        //Typically you would use DateTime.Today for current datetime

        //once the date is collected then it will be sent to the BLL for processing

        //the command will be done under the control of the MessageUserControl
        //so if there is an error, the MUC can handle it.
        //we will use the in-line MUC TryRun technique

        MessageUserControl.TryRun(() =>
            {
                //obtain the selected gridview row
                GridViewRow agvrow = SeatingGridView.Rows[e.NewSelectedIndex];
                //accessing a web control on the gridview row uses .FindControl("xxx) as 
                //datatype xxx be the name of control
                //points to the control
                string tablenumber = (agvrow.FindControl("TableNumber") as Label).Text;
                string numberinparty = (agvrow.FindControl("NumberInParty") as TextBox).Text;
                string waiterid = (agvrow.FindControl("WaiterList") as DropDownList).SelectedValue;
                DateTime when = Mocker.MockDate.Add(Mocker.MockTime); //Parse(SearchDate.Text).Add(TimeSpan.Parse(SearchTime.Text));

                //standard call to insert a record into the DB
                AdminController sysmgr = new AdminController();
                sysmgr.SeatCustomer(when, byte.Parse(tablenumber), int.Parse(numberinparty),
                                      int.Parse(waiterid));
                //refresh the gridview
                SeatingGridView.DataBind();
            }, "Customer Seated", "New walk-in customer has been saved"); //message
    }
    protected void SeatingGridView_SelectedIndexChanged(object sender, GridViewSelectEventArgs e)
    {
        //extarct the table number in the party and the awaiter ID from the grid view
        //will also create the time from the mockDateTime contrtorls at the top of this form
        //once the date uis collected then it will ne sent to the BLL for processeing
        //the comman will be done under the control of the MessegeUserControll
        //so if there is an error the MUS will handle it.
        // we wll use the Inline MUC tryRun technique

        MessageUserControl.TryRun(() =>
        {
            //obtain the selected grid view
            GridViewRow agvrow = SeatingGridView.Rows[e.NewSelectedIndex];
            //asscessing a wen control on the gridview row
            //uses .FindControl("xxx") as a datatype
            string tablenumber = (agvrow.FindControl("TableNumber") as Label).Text;
            string numberinparty = (agvrow.FindControl("NumberInParty")as TextBox).Text;
            string waiterID = (agvrow.FindControl("WaiterList") as DropDownList).SelectedValue;
            DateTime when = Mocker.MockDate.Add(Mocker.MockTime);

            //standerd call insert a record to the DB
            AdminController sysmgr = new AdminController();
            sysmgr.SeatCustomer(when, byte.Parse(tablenumber), int.Parse(numberinparty), int.Parse(waiterID));

            //refresh the gridview
            SeatingGridView.DataBind();
         }, "Customer Seated", "New Wall-in Customer has been saved"
        );
    }
 protected void ReservationSummaryListView_OnItemCommand(object sender, ListViewCommandEventArgs e)
 {
     // Check the command name and add the reservation for the specified seats.
     if (e.CommandName.Equals("Seat"))
     {
         MessageUserControl.TryRun(() =>
         {
             // Get the data
             var reservationId = int.Parse(e.CommandArgument.ToString());
             var selectedItems = new List<byte>();//for multiple table numbers
             foreach (ListItem item in ReservationTableListBox.Items)
             {
                 if (item.Selected)
                     selectedItems.Add(byte.Parse(item.Text.Replace("Table ", "")));
             }
             var when = Mocker.MockDate.Add(Mocker.MockTime);
             // Seat the reservation customer
             var controller = new AdminController();
             controller.SeatCustomer(when, reservationId, selectedItems, int.Parse(WaiterDropDownList.SelectedValue));
             // Refresh the gridview
             SeatingGridView.DataBind();
             ReservationsRepeater.DataBind();
             ReservationTableListBox.DataBind();
         }, "Customer Seated", "Reservation customer has arrived and has been seated");
     }
 }
    protected void SeatingGridView_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        //extract tablenumber, waiterid, numberinparty from the gridview
        // we will also create a datetime variable using the mock clock at the top of
        //the page. (Typically in real-time you use use DateTime.Today)

        //once the data is collected it will be passed to the BLL from processing

        //the command will be done under the control of the MessageUserControl
        //we will use the MUC inline technique

        MessageUserControl.TryRun(() =>
            {
                //obtain our data from the GridView row
                GridViewRow agvrow = SeatingGridView.Rows[e.NewSelectedIndex];

                //accessing a web control on thee gridview row
                //the command to do this is .FindControl("xxxx") as datatype
                //all data from the gridview is a string
                string tablenumber = (agvrow.FindControl("TableNumber") as Label).Text;
                string numberinparty = (agvrow.FindControl("NumberInParty") as TextBox).Text;
                string waiterid = (agvrow.FindControl("WaiterList") as DropDownList).SelectedValue;
                DateTime when = DateTime.Parse(SearchDate.Text).Add(TimeSpan.Parse(SearchTime.Text));

                //standard typical call to your controller in the BLL
                AdminController sysmgr = new AdminController();
                sysmgr.SeatCustomer(when, byte.Parse(tablenumber),
                                          int.Parse(numberinparty),
                                          int.Parse(waiterid));

                //refresh the gridview
                SeatingGridView.DataBind();
            },"Customer Seated","New walk-in customer has been saved");
    }
    protected void ReservationSummaryListView_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        //this is the mthod which will gather the seating  information for reservation and pass to the BLL for proceosessing

        if (e.CommandName.Equals("Seat"))
        {
            //execuion if the code wukk ve uynder tghe controll
            MessageUserControl.TryRun(() =>
            {
                int reservationid = int.Parse(e.CommandArgument.ToString());
                    int waiterid = int.Parse(WaiterDropDownList.SelectedValue);
                    DateTime when = Mocker.MockDate.Add(Mocker.MockTime);
                List<byte> selectedTables = new List<byte>();
                //walk throug the list box row by row
                foreach (ListItem item_tableid in ReservationTableListBox.Items)
                {
                    if (item_tableid.Selected)
                    {
                        selectedTables.Add(byte.Parse(item_tableid.Text.Replace("Table ", "")));
                    }
                }

                //with all data gatherd, connet to your library controller, and send data for processing
                AdminController sysmgr = new AdminController();
                sysmgr.SeatCustomer(when reservationid, selectedTables, waiterid);

                SeatingGridView.DataBind();
                ReservationsRepeater.DataBind();
            }, "customer Seated", "Reservation  customer has been saeated");
        }
    }
Exemple #6
0
 protected void MockLastBillingDateTime_Click(object sender, EventArgs e)
 {
     AdminController sysmgr=new AdminController();
     DateTime info = sysmgr.GetLastBillDateTime();
     SearchDate.Text = info.ToString("yyyy-MM-dd");
     SearchTime.Text = info.ToString("HH:mm");
 }
 protected bool ShowReservationSeating()
 {
     bool showreservations= false;
     //this method will query the database to
     //show any available seats for reservations
     DateTime when = Mocker.MockDate.Add(Mocker.MockTime);
     AdminController sysmgr = new AdminController();
     showreservations = sysmgr.IsAvailableSeats(when);
     return showreservations;
 }
Exemple #8
0
    protected void ReservationSummaryListView_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        // this is the method which will gather the seating
        // information for reservations and pass to the BLL
        // for processing

        // no processing will be done unless the e.CommandName is
        // equal to "Seat"

        if (e.CommandName.Equals.("Seat"))
        {
           // execution of the code will be under the control
           // of the MessageUserControl
            MessageUserControl.TryRun(() =>
                {
                  //1. gather necessary data from the web controls
                  int reservationid = int.Parse(e.CommandArgument.ToString());
                  int waiterid = int.Parse(WaiterDropDownList.SelectedValue);
                  DateTime when = Mocker.MockDate.Add(Mocker.MockTime);
                  //2. we need to collect possible multiple values
                  // from the ListBox control which contains
                  // the selected tables to be assigned to this
                  // group of customers

                    List<byte> selectedTables = new List<byte>();

                 //3.walk throuth the ListBox row by row
                    foreach (ListItem item_tableid in ReservationTableListBox.Items)
                    {
                       if (item_tableid.Selected)
                       {
                       selectedTables.Add(byte.Parse(item_tableid.Text.Replace("Table ","")));                          )

                       }

                    }

                    //4.with all data gathered, connect to your
                    //library controller, and send data for
                    //processing

                    AdminController sysmgr = new AdminController();
                    sysmgr.SeatCustomer(when, reservationid,selectedTables,waiterid);

                    //5.Refresh the page(Screen)
                    SeatingGridView.DataBind();
                    //6.Refresh the reservation Repeater
                    ReservationsRepeater.DataBind();
                    ReservationTableListBox.DataBind();

                },"Customer Seated","Reservation customer has arrived and has been seated");

        }
    }
 public void DashboardTest()
 {
     IMembershipRepository membershipRepository = null; // TODO: Initialize to an appropriate value
     IFormsAuthentication formsAuthentication = null; // TODO: Initialize to an appropriate value
     AdminController target = new AdminController(membershipRepository, formsAuthentication); // TODO: Initialize to an appropriate value
     ActionResult expected = null; // TODO: Initialize to an appropriate value
     ActionResult actual;
     actual = target.Dashboard();
     Assert.AreEqual(expected, actual);
     Assert.Inconclusive("Verify the correctness of this test method.");
 }
 public void GetWaiterInfo()
 {
     AdminController sysmgr = new AdminController();
     var waiter = sysmgr.GetWaiterByID(int.Parse(WaiterList.SelectedValue));
     WaiterID.Text = waiter.WaiterID.ToString();
     FirstName.Text = waiter.FirstName;
     LastName.Text = waiter.LastName;
     Phone.Text = waiter.Phone;
     Address.Text = waiter.Address;
     DateHired.Text = waiter.HireDate.ToShortDateString();
     if (waiter.ReleaseDate.hasValue)
         DateReleased = waiter.ReleaseDate.ToShortDateString();
 }
        public void CanDeleteArticle()
        {
            var articleIds = GetArticleIds();

            var mock = new Mock<IArticleRepository>();
            mock.Setup(m => m.Articles).Returns(GetArticles(articleIds));

            var controller = new AdminController(mock.Object);

            var deletedArticleId = articleIds[3];

            controller.Delete(deletedArticleId);

            mock.Verify(m => m.DeleteArticle(deletedArticleId));
        }
Exemple #12
0
 public void Cannot_Edit_Nonexistent_Client()
 {
     // Arrange - create the mock repository
     Mock<IClientRepository> mock = new Mock<IClientRepository>();
     mock.Setup(m => m.Clients).Returns(new Client[] {
        new Client {ClientId = 1, ContractNumber = "L1"},
     new Client {ClientId = 2, ContractNumber = "L2"},
     new Client {ClientId = 3, ContractNumber = "L3"},
       }.AsQueryable());
     // Arrange - create the controller
     AdminController target = new AdminController(mock.Object);
     // Act
     Client result = (Client)target.Edit(4).ViewData.Model;
     // Assert
     Assert.IsNull(result);
 }
        public void CanChangeLoginName() {

            // Arrange (set up a scenario) 
            User user = new User() { LoginName = "Bob" };
            FakeRepository repositoryParam = new FakeRepository();
            repositoryParam.Add(user);
            AdminController target = new AdminController(repositoryParam);
            string oldLoginParam = user.LoginName;
            string newLoginParam = "Joe";

            // Act (attempt the operation) 
            target.ChangeLoginName(oldLoginParam, newLoginParam);

            // Assert (verify the result) 
            Assert.AreEqual(newLoginParam, user.LoginName);
            Assert.IsTrue(repositoryParam.DidSubmitChanges);
        }
Exemple #14
0
 public void Cannot_Save_Invalid_Changes()
 {
     // Arrange - create mock repository
     Mock<IClientRepository> mock = new Mock<IClientRepository>();
     // Arrange - create the controller
     AdminController target = new AdminController(mock.Object);
     // Arrange - create a client
     Client client = new Client { ContractNumber = "Test" };
     // Arrange - add an error to the model state
     target.ModelState.AddModelError("error", "error");
     // Act - try to save the client
     ActionResult result = target.Edit(client);
     // Assert - check that the repository was not called
     mock.Verify(m => m.SaveClient(It.IsAny<Client>()), Times.Never());
     // Assert - check the method result type
     Assert.IsInstanceOfType(typeof(ViewResult), result);
 }
        public void CanEditArticle()
        {
            var articleIds = GetArticleIds();

            var mock = new Mock<IArticleRepository>();
            mock.Setup(m => m.Articles).Returns(GetArticles(articleIds));

            var controller = new AdminController(mock.Object);

            var article1 = controller.Edit(articleIds[0]).ViewData.Model as Article;
            var article2 = controller.Edit(articleIds[1]).ViewData.Model as Article;
            var article3 = controller.Edit(articleIds[2]).ViewData.Model as Article;

            Assert.AreEqual(articleIds[0], article1.ArticleId);
            Assert.AreEqual(articleIds[1], article2.ArticleId);
            Assert.AreEqual(articleIds[2], article3.ArticleId);
        }
Exemple #16
0
 public void Cannot_Edit_Nonexistent_Product()
 {
     // Arrange - create the mock repository
     Mock<IProductRepository> mock = new Mock<IProductRepository>();
     mock.Setup(m => m.Products).Returns(new Product[]
     {
         new Product {ProductID = 1, Name = "P1"},
         new Product {ProductID = 2, Name = "P2"},
         new Product {ProductID = 3, Name = "P3"},
     });
     // Arrange - create the controller
     AdminController target = new AdminController(mock.Object);
     // Act
     Product result = (Product) target.Edit(4).ViewData.Model;
     // Assert
     Assert.IsNull(result);
 }
Exemple #17
0
 public void Cannot_Save_Invalid_Changes()
 {
     // Arrange - create mock repository
     Mock<IProductRepository> mock = new Mock<IProductRepository>();
     // Arrange - create the controller
     AdminController target = new AdminController(mock.Object);
     // Arrange - create a product
     Product product = new Product {Name = "Test"};
     // Arrange - add an error to the model state
     target.ModelState.AddModelError("error", "error");
     // Act - try to save the product
     ActionResult result = target.Edit(product);
     // Assert - check that the repository was not called
     mock.Verify(m => m.SaveProduct(It.IsAny<Product>()), Times.Never());
     // Assert - check the method result type
     Assert.IsInstanceOfType(result, typeof (ViewResult));
 }
 protected void InsertWaiter_Click(object sender, EventArgs e)
 {
     //this example is using the TryRun inline
     MessageUserControl1.TryRun(() =>
         {
             Waiter item = new Waiter();
             item.FirstName = FirstName.Text;
             item.LastName = LastName.Text;
             item.Address = Address.Text;
             item.Phone = Phone.Text;
             item.HireDate = DateTime.Parse(DateHired.Text);
             item.ReleaseDate = null;
             AdminController sysmgr = new AdminController();
             WaiterID.Text = sysmgr.Waiter_Add(item).ToString();
             MessageUserControl1.ShowInfo("Waiter Added.");
             RefreshWaiterList(WaiterID.Text);
         });
 }
Exemple #19
0
 public void Can_Delete_Valid_Products()
 {
     // Arrange - create a Product
     Product prod = new Product { ProductID = 2, Name = "Test" };
     // Arrange - create the mock repository
     Mock<IProductRepository> mock = new Mock<IProductRepository>();
     mock.Setup(m => m.Products).Returns(new Product[] {
         new Product {ProductID = 1, Name = "P1"},
         prod,
         new Product {ProductID = 3, Name = "P3"},
         });
     // Arrange - create the controller
     AdminController target = new AdminController(mock.Object);
     // Act - delete the product
     target.Delete(prod.ProductID);
     // Assert - ensure that the repository delete method was
     // called with the correct Product
     mock.Verify(m => m.DeleteProduct(prod.ProductID));
 }
Exemple #20
0
    protected void SeatingGridView_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        MessageUserControl.TryRun(() =>
            {
                GridViewRow agvrow = SeatingGridView.Rows[e.NewSelectedIndex];
                //accessing a web control on the girdview row usings .FindControl("xxx") as datatype
                string tablenumber = (agvrow.FindControl("TableNumber") as Label).Text;
                string numberinparty = (agvrow.FindControl("NumberInParty") as TextBox).Text;
                string waiterid = (agvrow.FindControl("WaiterList") as DropDownList).SelectedValue;
                var when = Mocker.MockerDate.Add(Mocker.MockerTime);

                //standard call to insert a record into the database
                AdminController sysmgr = new AdminController();
                sysmgr.SeatCustomer(when, byte.Parse(tablenumber), int.Parse(numberinparty), int.Parse(waiterid));

                SeatingGridView.DataBind();

            }, "Customer Seated", "New walk-in customer has been saved");
    }
Exemple #21
0
 public void Can_Delete_Valid_Clients()
 {
     // Arrange - create a client
     Client cl = new Client { ClientId = 2, ContractNumber = "Test" };
     // Arrange - create the mock repository
     Mock<IClientRepository> mock = new Mock<IClientRepository>();
     mock.Setup(m => m.Clients).Returns(new Client[] {
     new Client {ClientId = 1, ContractNumber = "L1"},
     cl,
     new Client {ClientId = 3, ContractNumber = "L3"},
       }.AsQueryable());
     // Arrange - create the controller
     AdminController target = new AdminController(mock.Object);
     // Act - delete the client
     target.Delete(cl.ClientId);
     // Assert - ensure that the repository delete method was
     // called with the correct client
     mock.Verify(m => m.DeleteClient(cl.ClientId));
 }
    public void GetWaiterInfo()
    {
        //a standard lookup sequence
        AdminController sysmgr = new AdminController();

        var waiter = sysmgr.GetWaiterByID(int.Parse(WaiterList.SelectedValue));

        WaiterID.Text = waiter.WaiterID.ToString();
        FirstName.Text = waiter.FirstName;
        LastName.Text = waiter.LastName;
        Phone.Text = waiter.Phone;
        Address.Text = waiter.Address;
        DateHired.Text = waiter.HireDate.ToShortDateString();
        //null field check
        if(waiter.ReleaseDate.HasValue)
        {
            DateReleased.Text = waiter.ReleaseDate.ToString();
        }
    }
    protected void ReservationSummaryListView_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        // this is the method which will gather the seating
        // information for reservations and pass the the BLL for processing
        //no processing will be done unless the e.CoomandName is equal to "Seat"

        if (e.CommandName.Equals("Seat"))
        {
            MessageUserControl.TryRun(()  =>
            {
                //gather the necessary data from teh web controls
                int reservationid = int.Parse(e.CommandArgument.ToString());
                int waiterid = int.Parse(WaiterDropDownList.SelectedValue);
                DateTime when = Mocker.MockDate.Add(Mocker.MockTime);

                //we need to collect the possible multiple values from the ListBox control which contains the selected tables to be assigned to this group of customer

                List<byte> selectTables= new List<byte>();

                //walk through the lis box row by row
                foreach (ListItem item_tableid in ReservationTableListBox.Items)
                {
                    if (item_tableid.Selected)
                    {
                        selectTables.Add(byte.Parse(item_tableid.Text.Replace("Table ", "")));
                    }
                }

                //with all data gathered. connect to your library controller
               // and send data for processing

                AdminController sysmgr = new AdminController();
                sysmgr.SeatCustomer(when, reservationid, selectTables, waiterid);

                // Refresh the page
                // Refresh both the grid view
                SeatingGridView.DataBind();
                ReservationsRepeater.DataBind();
                ReservationTableListBox.DataBind();
            },"Customer seated","Reservation customer has arrvied and has been seated");

        }
    }
Exemple #24
0
        public void AdminController_Preview_Action_Should_Fetch_A_Survey_From_Repo()
        {
            // arrange
            var repositoryStub = MockRepository.GenerateStub<IRepository>();
            var sut = new AdminController(repositoryStub);
            const int surveyId = 1;
            var survey = new Survey();
            repositoryStub
                .Stub(x => x.GetSurvey(surveyId))
                .Return(survey);

            // act
            var sur = repositoryStub.GetSurvey(surveyId);
            var actual = sut.Preview(surveyId);

            // assert
            var viewResult = (PartialViewResult)actual;
            Assert.AreEqual(survey, viewResult.ViewData.Model);
            Assert.AreEqual("selected", sut.TempData["Selected_Admin"], "Selected tab was incorrect.");
        }
Exemple #25
0
        public void AdminController_Index_Action_Should_Fetch_Surveys_From_Repo()
        {
            // arrange
            var repositoryStub = MockRepository.GenerateStub<IRepository>();
            var sut = new AdminController(repositoryStub);
            var vm = new AdminViewModel();
            var s = new List<Survey>();
            repositoryStub
                .Stub(x => x.GetUnapprovedSurveys())
                .Return(s);

            // act
            var actual = sut.Index();

            // assert
            var viewResult = (ViewResult)actual;

            Assert.AreEqual(vm, viewResult.ViewData.Model as AdminViewModel);
            Assert.AreEqual("selected", sut.ViewData["Selected_Admin"], "Selected tab was incorrect.");
        }
Exemple #26
0
 public void GetWaiterInfo()
 {
     // a standard lookup process
     AdminController sysmgr = new AdminController();
     var waiter = sysmgr.GetWaiterByID(int.Parse(WaiterList.SelectedValue));
     IDLabel.Text = waiter.WaiterID.ToString();
     FirstNameTextBox.Text = waiter.FirstName;
     LastNameTextBox.Text = waiter.LastName;
     PhoneTextBox.Text = waiter.Phone;
     AddressTextBox.Text = waiter.Address;
     HireDateTextBox.Text = waiter.HireDate.ToShortDateString();
     if(waiter.ReleaseDate.HasValue)
     {
         ReleaseDateTextBox.Text= waiter.ReleaseDate.ToString();
     }
     else
     {
         ReleaseDateTextBox.Text = "";
     }
 }
 public void GetWaiterInfo()
 {
     //a standerd LookUp Process
     AdminController sysmgr = new AdminController();
     var waiter = sysmgr.Get_Waiter_By_ID(int.Parse(WaiterList.SelectedValue));
     WaiterID.Text = waiter.WaiterID.ToString();
     FirstName.Text = waiter.FirstName;
     LastName.Text = waiter.LastName;
     Address.Text = waiter.Address;
     Phone.Text = waiter.Phone;
     HireDate.Text = waiter.HireDate.ToShortDateString();
     //null field check
     if (waiter.ReleaseDate.HasValue)
     {
         ReleaseDate.Text = waiter.ReleaseDate.ToString();
     }
     else
     {
         ReleaseDate.Text = "";
     }
 }
 public void GetWaiterInfo()
 {
     //a standard lookup process
     AdminController SystemManager = new AdminController();
     var waiter = SystemManager.GetWaiterByID(int.Parse(WaiterList.SelectedValue));
     WaiterID.Text = waiter.WaiterID.ToString();
     FirstName.Text = waiter.FirstName;
     LastName.Text = waiter.LastName;
     Address.Text = waiter.Address;
     Phone.Text = waiter.Phone;
     HireDate.Text = waiter.HireDate.ToShortDateString();
     //null field check
     if (waiter.ReleaseDate.HasValue)
     {
         ReleaseDate.Text = waiter.ReleaseDate.ToString();
     }
     else
     {
         ReleaseDate.Text = "";
     }
 }
 protected void Insert_Click(object sender, EventArgs e)
 {
     MessageUserControl.TryRun(() =>
     {
         Waiter item = new Waiter();
         item.FirstName = FirstName.Text;
         item.LastName = LastName.Text;
         item.Address = Address.Text;
         item.Phone = Phone.Text;
         item.HireDate = DateTime.Parse(DateHired.Text);
         if (string.IsNullOrEmpty(Released.Text))
             item.ReleaseDate = null;
         else
             item.ReleaseDate = DateTime.Parse(Released.Text);
         item.ReleaseDate = null;
         AdminController sysgmr = new AdminController();
         WaiterID.Text = sysgmr.Waiters_Add(item).ToString();
         MessageUserControl.ShowInfo("Waiter Added");
         RefreshWaiterList(WaiterID.Text);
     }
     );
 }
    public void GetWaiterInfo()
    {
        // a standard lookup process
        AdminController sysmgr = new AdminController();

        var waiter = sysmgr.GetWaiterByID(int.Parse(WaiterDropDownList.SelectedValue));
        WaiterID.Text = waiter.WaiterID.ToString();
        WaiterFirstName.Text = waiter.FirstName;
        WaiterLastName.Text = waiter.LastName;
        WaiterAddress.Text = waiter.Address;
        WaiterPhone.Text = waiter.Phone;
        WaiterHireDate.Text = waiter.HireDate.ToShortDateString();
        // null field check
        if (waiter.ReleaseDate.HasValue)
        {
            WaiterReleaseDate.Text = waiter.ReleaseDate.ToString();
        }
        else
        {
            WaiterReleaseDate.Text = "";
        }
    }
        public void RedigerSkuespillerPostOK()
        {
            // Arrange
            var controller  = new AdminController(new AdminLogikk(new AdminRepositoryStub()));
            var SessionMock = new TestControllerBuilder();

            SessionMock.InitializeController(controller);
            controller.Session["Admin"] = "admin";
            var innSkuespiller = new Skuespiller()
            {
                id        = 1,
                Fornavn   = "Ole",
                Etternavn = "Olesen",
                Land      = "Norge",
                Bilde     = "Bilde01",
                Alder     = 22,
                Filmer    = new List <Film>()
            };
            var Film = new Film()
            {
                id    = 1,
                Navn  = "Film01",
                Bilde = "Bilde01"
            };

            innSkuespiller.Filmer.Add(Film);

            TestBilde testBilde = new TestBilde();

            // Act
            var actionResult = (ViewResult)controller.RedigerSkuespiller(innSkuespiller, testBilde);

            // Assert
            Assert.AreEqual(actionResult.ViewName, "");
            Assert.AreEqual(actionResult.ViewData["EndreStatus"], "Informasjon oppdatert");
        }
Exemple #32
0
        public void Can_Delete_Valid_Products()
        {
            Product prod = new Product {
                ProductID = 2, Name = "Test"
            };

            Mock <IProductRepository> mock = new Mock <IProductRepository>();

            mock.Setup(m => m.Products).Returns(new Product[] {
                new Product {
                    ProductID = 1, Name = "P1"
                },
                prod,
                new Product {
                    ProductID = 3, Name = "P3"
                },
            }.AsQueryable <Product>());

            AdminController target = new AdminController(mock.Object);

            target.Delete(prod.ProductID);

            mock.Verify(m => m.DeleteProduct(prod.ProductID));
        }
        public void Can_Delete_Valid_Product()
        {
            //Arrange
            //Tạo một product sẽ được delete
            Product delProduct = new Product {
                ProductID = 2, Name = "p2"
            };
            //Tạo mock repo
            Mock <IProductRepository> mock = new Mock <IProductRepository>();

            mock.Setup(m => m.Products).Returns(new Product[]
            {
                new Product {
                    ProductID = 1, Name = "p1"
                },
                delProduct,
                new Product {
                    ProductID = 3, Name = "p3"
                }
            });

            //Tạo controller
            AdminController adminController = new AdminController(mock.Object);



            //Action
            //Delete product
            adminController.Delete(delProduct.ProductID);


            //Assert
            //ensure that the repository delete method was
            // called with the correct Product
            mock.Verify(m => m.DeleteProduct(delProduct.ProductID));
        }
Exemple #34
0
        public void Can_Edit_Book()
        {
            //Организация (arrange)
            Mock <IBookRepository> mock = new Mock <IBookRepository>();

            mock.Setup(m => m.Books).Returns(new List <Book>
            {
                new Book {
                    BookId = 1, Name = "Book1"
                },
                new Book {
                    BookId = 2, Name = "Book2"
                },
                new Book {
                    BookId = 3, Name = "Book3"
                },
                new Book {
                    BookId = 4, Name = "Book4"
                },
                new Book {
                    BookId = 5, Name = "Book5"
                }
            });

            AdminController controller = new AdminController(mock.Object);

            //Действие (act)
            Book book1 = controller.Edit(1).ViewData.Model as Book;
            Book book2 = controller.Edit(2).ViewData.Model as Book;
            Book book3 = controller.Edit(3).ViewData.Model as Book;

            //Утверждение (assert)
            Assert.AreEqual(1, book1.BookId);
            Assert.AreEqual(2, book2.BookId);
            Assert.AreEqual(3, book3.BookId);
        }
        public void Cannot_Edit_Nonexistent_Book()
        {
            // Arrange - create the mock repository
            Mock <IBookRepository> mock = new Mock <IBookRepository>();

            mock.Setup(m => m.Books).Returns(new Book[] {
                new Book {
                    BookId = Guid.NewGuid(), Title = "B1"
                },
                new Book {
                    BookId = Guid.NewGuid(), Title = "B2"
                },
                new Book {
                    BookId = Guid.NewGuid(), Title = "B3"
                },
            }.AsQueryable <Book>());
            // Arrange - create the controller
            AdminController target = new AdminController(mock.Object);
            // Act
            Book result = GetViewModel <Book>(target.Edit(Guid.NewGuid()));

            // Assert
            Assert.Null(result);
        }
Exemple #36
0
        public void Can_Delete_Valid_Book()
        {
            Mock <IBookRepository> mock = new Mock <IBookRepository>();
            Book book = new Book {
                BookID = 1, Title = "Test Book"
            };

            mock.Setup(m => m.Books).Returns(new Book[]
            {
                new Book {
                    BookID = 2, Title = "Test 2"
                },
                new Book {
                    BookID = 3, Title = "Test 3"
                },
                book
            });
            AdminController target = new AdminController(mock.Object);

            target.ModelState.AddModelError("error", "error");
            ActionResult result = target.Delete(book.BookID);

            mock.Verify(b => b.DeleteBook(book.BookID));
        }
        //[Fact]
        public async Task DeleteLoan_ReturnsViewResult()
        {
            //Arrange
            var testid     = 12;
            var controller = new AdminController(_adminMock.Object, _userMock.Object, _loginMock.Object,
                                                 _userInfoMock.Object, _userManagerMock.Object,
                                                 _transfersReportsMock.Object, _countersReportMock.Object, _filtersReportMock.Object);
            var LoanModel = new Loan
            {
                Name              = "abc",
                Percentage        = 10,
                AccidentInsurance = 10,
                Purpose           = "abc",
                Term              = "abc",
                Currency          = "abc",
                RepaymentSchedule = "abc",
                AdvancedPayment   = "abc",
                InterestRate      = 10,
                MinAmount         = 10,
                MaxAmount         = 100,
                Id               = 1000,
                InsuranceLoan    = 10,
                LoanInterestRate = 10,
                ServiceFee       = 10,
                AccountLoans     = null,
            };

            _adminMock.Setup(repo => repo.GetLoanById(It.IsAny <int>()))
            .ReturnsAsync(LoanModel);

            //Act
            var result = await controller.DeleteLoan(testid);

            //Assert
            var viewResult = Assert.IsType <RedirectResult>(result);
        }
        public void Cannot_Edit_Nonexistent_Product()
        {
            // Arrange - create the mock repository
            Mock <IProductRepository> mock = new Mock <IProductRepository>();

            mock.Setup(m => m.Products).Returns(new Product[] {
                new Product {
                    ProductID = 1, Name = "P1"
                },
                new Product {
                    ProductID = 2, Name = "P2"
                },
                new Product {
                    ProductID = 3, Name = "P3"
                },
            }.AsQueryable <Product>());
            // Arrange - create the controller
            AdminController target = new AdminController(mock.Object);
            // Act
            Product result = GetViewModel <Product>(target.Edit(4));

            // Assert
            Assert.Null(result);
        }
        public void Can_Save_Valid_Changes()
        {
            // Arrange - create mock repository
            Mock <IProductRepository> mock = new Mock <IProductRepository>();
            // Arrange - create mock temp data
            Mock <ITempDataDictionary> tempData = new Mock <ITempDataDictionary>();
            // Arrange - create the controller
            AdminController target = new AdminController(mock.Object)
            {
                TempData = tempData.Object
            };
            // Arrange - create a product
            Product product = new Product {
                Name = "Test"
            };
            // Act - try to save the product
            IActionResult result = target.Edit(product);

            // Assert - check that the repository was called
            mock.Verify(m => m.SaveProduct(product));
            // Assert - check the result type is a redirection
            Assert.IsType <RedirectToActionResult>(result);
            Assert.Equal("Index", (result as RedirectToActionResult).ActionName);
        }
Exemple #40
0
        public void Can_Delete_Valid_Games()
        {
            //Arrange
            Game game = new Game {
                GameId = 2, Name = "Игра2"
            };

            Mock <IGameRepository> mock = new Mock <IGameRepository>();

            mock.Setup(m => m.Games).Returns(new List <Game>
            {
                new Game {
                    GameId = 1, Name = "Игра1"
                },
                new Game {
                    GameId = 2, Name = "Игра2"
                },
                new Game {
                    GameId = 3, Name = "Игра3"
                },
                new Game {
                    GameId = 4, Name = "Игра4"
                },
                new Game {
                    GameId = 5, Name = "Игра5"
                }
            });

            AdminController controller = new AdminController(mock.Object);

            //Action
            controller.Delete(game.GameId);

            //Assert
            mock.Verify(m => m.DeleteGame(game.GameId));
        }
Exemple #41
0
        public void Can_Delete_Valid_Product()
        {
            //arrange
            Mock <IProductRepository> mock = new Mock <IProductRepository>();

            mock.Setup(m => m.Products).Returns(new Product[] {
                new Product {
                    ProductID = 1, Name = "P1"
                },
                new Product {
                    ProductID = 2, Name = "P2"
                },
                new Product {
                    ProductID = 3, Name = "P3"
                }
            });
            AdminController target = new AdminController(mock.Object);

            //action
            target.Delete(2);

            //assert
            mock.Verify(m => m.DeleteProduct(2));
        }
Exemple #42
0
        public void Cannot_Save_Invalid_Changes()
        {
            //Przygotowanie - tworzenie imitacji repozytorium
            Mock <IProductRepository> mock = new Mock <IProductRepository>();

            //Przygotowanie - towrzenie komtrolera
            AdminController target = new AdminController(mock.Object);

            //Przygotowanie - tworznie produktu
            Product product = new Product {
                Name = "Test"
            };

            //Przygotownaie - dodanie błędu do stanu modelu
            target.ModelState.AddModelError("error", "error");

            //Działanie - próba zapisania produktu
            IActionResult result = target.Edit(product);

            //Asercje - sprawdzenie, czy nie zostało wywołane repozytorium
            mock.Verify(m => m.SaveProduct(It.IsAny <Product>()), Times.Never());
            //Asercje - sprawdzenie typu zwracanego z metody
            Assert.IsType <ViewResult>(result);
        }
        protected void btnSaveCarrierTypeAs_Click(object sender, System.EventArgs e)
        {
            AdminController aCont       = new AdminController();
            CarrierTypeInfo CarrierType = new CarrierTypeInfo();

            CarrierType.PortalId         = PortalId;
            CarrierType.LastModifiedById = UserId;
            CarrierType.LastModifiedDate = DateTime.Now;
            CarrierType.CarrierType      = txtCarrierType.Text;

            //save new CarrierType
            CarrierType.CreatedById = UserId;
            CarrierType.DateCreated = DateTime.Now;
            int CarrierTypeId = aCont.Add_CarrierType(CarrierType);

            txtSelectedCarrierType.Value    = CarrierTypeId.ToString();
            txtCarrierTypeCreatedBy.Value   = UserId.ToString();
            txtCarrierTypeCreatedDate.Value = DateTime.Now.Ticks.ToString();
            lblCarrierTypeMessage.Text      = "Client Type Saved.";

            //fillDropDowns("");
            fillCarrierTypes();
            FillCarrierTypeList();
        }
        public void Index_Contains_All_Products()
        {
            var mock = new Mock <IProductRepository>();

            mock.Setup(m => m.Products).Returns(new Product[] {
                new Product {
                    ProductId = 1, Name = "P1"
                },
                new Product {
                    ProductId = 2, Name = "P2"
                },
                new Product {
                    ProductId = 3, Name = "P3"
                },
            }.AsQueryable());
            var target = new AdminController(mock.Object);

            var result = GetViewModel <IEnumerable <Product> >(target.Index())?.ToArray();

            Assert.Equal(3, result.Length);
            Assert.Equal("P1", result[0].Name);
            Assert.Equal("P2", result[1].Name);
            Assert.Equal("P3", result[2].Name);
        }
        //[Fact]
        public async Task AddLoanPost_ReturnsARedirectedViewResult_ValidModelState()
        {
            //Arrange

            var controller = new AdminController(_adminMock.Object, _userMock.Object, _loginMock.Object,
                                                 _userInfoMock.Object, _userManagerMock.Object,
                                                 _transfersReportsMock.Object, _countersReportMock.Object, _filtersReportMock.Object);
            var LoanModel = new Loan
            {
                Name              = "abc",
                Percentage        = 10,
                AccidentInsurance = 10,
                Purpose           = "abc",
                Term              = "abc",
                Currency          = "abc",
                RepaymentSchedule = "abc",
                AdvancedPayment   = "abc",
                InterestRate      = 10,
                MinAmount         = 10,
                MaxAmount         = 100,
                Id               = 1000,
                InsuranceLoan    = 10,
                LoanInterestRate = 10,
                ServiceFee       = 10,
                AccountLoans     = null,
            };

            //Act
            var result = await controller.AddLoan(loan : LoanModel);

            //Assert
            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("Admin", redirectToActionResult.ControllerName);
            Assert.Equal("LoansManagment", redirectToActionResult.ActionName);
        }
Exemple #46
0
        public void EndreKunde_funnet()
        {
            var SessionMock = new TestControllerBuilder();

            var controller = new AdminController(new AdminBLL(new AdminRepositoryStub()));

            SessionMock.InitializeController(controller);
            controller.Session["AdminLoggetInn"] = true;

            var innKunde = new Kunde()
            {
                fornavn   = "Ole",
                etternavn = "Olsen",
                adresse   = "Storgata 1",
                postnr    = "3557",
                poststed  = "Molde"
            };
            // Act
            var actionResultat = (RedirectToRouteResult)controller.EndreKunde(1, innKunde);

            // Assert
            Assert.AreEqual(actionResultat.RouteName, "");
            Assert.AreEqual(actionResultat.RouteValues.Values.First(), "Liste");
        }
Exemple #47
0
        public void Index_Contains_All_Products()
        {
            Mock <IBookRepository> mock = new Mock <IBookRepository>();

            mock.Setup(m => m.Books).Returns(new Book[]
            {
                new Book {
                    BookID = 1, Title = "Book1"
                },
                new Book {
                    BookID = 2, Title = "Book2"
                },
                new Book {
                    BookID = 3, Title = "Book3"
                }
            });
            AdminController target = new AdminController(mock.Object);

            Book[] result = ((IEnumerable <Book>)target.Index().ViewData.Model).ToArray();
            Assert.AreEqual(result.Length, 3);
            Assert.AreEqual("Book1", result[0].Title);
            Assert.AreEqual("Book2", result[1].Title);
            Assert.AreEqual("Book3", result[2].Title);
        }
Exemple #48
0
        public void Cannot_Edit_Nonexistent_Lot()
        {
            // Arrange - create the mock repository
            Mock <ILotRepository> mock = new Mock <ILotRepository>();

            mock.Setup(m => m.Lots).Returns(new Lot[] {
                new Lot {
                    LotID = 1, Name = "P1"
                },
                new Lot {
                    LotID = 2, Name = "P2"
                },
                new Lot {
                    LotID = 3, Name = "P3"
                },
            }.AsQueryable());
            // Arrange - create the controller
            AdminController target = new AdminController(mock.Object);
            // Act
            Lot result = (Lot)target.Edit(4).ViewData.Model;

            // Assert
            Assert.IsNull(result);
        }
Exemple #49
0
        public void Can_Edit_Game()
        {
            //Arrange
            Mock <IGameRepository> mock = new Mock <IGameRepository>();

            mock.Setup(m => m.Games).Returns(new List <Game>
            {
                new Game {
                    GameId = 1, Name = "Игра1"
                },
                new Game {
                    GameId = 2, Name = "Игра2"
                },
                new Game {
                    GameId = 3, Name = "Игра3"
                },
                new Game {
                    GameId = 4, Name = "Игра4"
                },
                new Game {
                    GameId = 5, Name = "Игра5"
                }
            });

            AdminController controller = new AdminController(mock.Object);

            //Action
            Game game1 = controller.Edit(1).ViewData.Model as Game;
            Game game2 = controller.Edit(2).ViewData.Model as Game;
            Game game3 = controller.Edit(3).ViewData.Model as Game;

            //Assert
            Assert.AreEqual(1, game1.GameId);
            Assert.AreEqual(2, game2.GameId);
            Assert.AreEqual(3, game3.GameId);
        }
Exemple #50
0
        public void Can_Delete_Valid_Product()
        {
            Mock <IProductRepository> mock = new Mock <IProductRepository>();
            var prod = new Product {
                ProductID = 2, Name = "P2"
            };

            mock.Setup(m => m.Products).Returns(new Product[]
            {
                new Product {
                    ProductID = 1, Name = "P1"
                },
                prod,
                new Product {
                    ProductID = 3, Name = "P3"
                }
            });

            AdminController target = new AdminController(mock.Object);

            var result = target.Delete(prod.ProductID);

            mock.Verify(m => m.DeleteProduct(prod.ProductID));
        }
        public async Task RegisterReturnsViewResultAndCorrectModelWhenUserCreationIsNotSuccessful()
        {
            var model = new RegisterViewModel();

            var generalSettings = new Mock <IOptions <GeneralSettings> >();

            generalSettings.Setup(x => x.Value).Returns(new GeneralSettings());

            var userManager = UserManagerMockHelper.CreateUserManagerMock();

            userManager.Setup(x => x.CreateAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>())).ReturnsAsync(IdentityResult.Failed());

            var sut = new AdminController(userManager.Object, null, null, null, generalSettings.Object);

            sut.SetFakeHttpRequestSchemeTo(It.IsAny <string>());

            var result = await sut.Register(model) as ViewResult;

            var modelResult = result.ViewData.Model as RegisterViewModel;

            Assert.IsType <ViewResult>(result);
            Assert.IsType <RegisterViewModel>(modelResult);
            Assert.Same(model, modelResult);
        }
        protected void btnSaveFreightTypeAs_Click(object sender, System.EventArgs e)
        {
            AdminController aCont       = new AdminController();
            FreightTypeInfo FreightType = new FreightTypeInfo();

            FreightType.PortalId         = PortalId;
            FreightType.LastModifiedById = UserId;
            FreightType.LastModifiedDate = DateTime.Now;
            FreightType.FreightType      = txtFreightType.Text;

            //save new FreightType
            FreightType.CreatedById = UserId;
            FreightType.DateCreated = DateTime.Now;
            int FreightTypeId = aCont.Add_FreightType(FreightType);

            txtSelectedFreightType.Value    = FreightTypeId.ToString();
            txtFreightTypeCreatedBy.Value   = UserId.ToString();
            txtFreightTypeCreatedDate.Value = DateTime.Now.Ticks.ToString();
            lblFreightTypeMessage.Text      = "Freight Type Saved.";

            fillFreightTypes();
            FillFreightTypeList();
            //fillDropDowns("");
        }
        public void WhenAdminLoginSuccess_ThenRedirectToProductController()
        {
            // Arrange
            UserModel model = new UserModel()
            {
                Email = "admin@demo", Password = "******"
            };

            session.SetupGet(s => s["Login"]).Returns(model.Email);
            http.SetupGet(x => x.Session).Returns(session.Object);

            // Act
            ControllerContext ctx = new ControllerContext();

            ctx.HttpContext = http.Object;
            var controller = new AdminController();

            controller.ControllerContext = ctx;
            RedirectToRouteResult result = controller.Login(model) as RedirectToRouteResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("Index", result.RouteValues["action"]);
        }
        public async Task RegisterAddsIdentityResultErrorsToModelStateErrorsWhenUserCreationIsNotSuccessful()
        {
            var generalSettings = new Mock <IOptions <GeneralSettings> >();

            generalSettings.Setup(x => x.Value).Returns(new GeneralSettings());

            var identityResult = IdentityResult.Failed(new IdentityError {
                Description = "IdentityErrorDescription"
            });

            var userManager = UserManagerMockHelper.CreateUserManagerMock();

            userManager.Setup(x => x.CreateAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>())).ReturnsAsync(identityResult);

            var sut = new AdminController(userManager.Object, null, null, null, generalSettings.Object);

            sut.SetFakeHttpRequestSchemeTo(It.IsAny <string>());

            await sut.Register(new RegisterViewModel());

            var errorMessages = sut.ModelState.GetErrorMessages();

            Assert.Equal(errorMessages.Single(), identityResult.Errors.Select(x => x.Description).Single());
        }
Exemple #55
0
        public void Index_Contains_All_Games()
        {
            //Arrange
            Mock <IGameRepository> mock = new Mock <IGameRepository>();

            mock.Setup(m => m.Games).Returns(new List <Game>
            {
                new Game {
                    GameId = 1, Name = "Игра1"
                },
                new Game {
                    GameId = 2, Name = "Игра2"
                },
                new Game {
                    GameId = 3, Name = "Игра3"
                },
                new Game {
                    GameId = 4, Name = "Игра4"
                },
                new Game {
                    GameId = 5, Name = "Игра5"
                }
            });

            AdminController controller = new AdminController(mock.Object);

            //Action
            List <Game> result = ((IEnumerable <Game>)controller.Index().
                                  ViewData.Model).ToList();

            //Assert
            Assert.AreEqual(result.Count(), 5);
            Assert.AreEqual("Игра1", result[0].Name);
            Assert.AreEqual("Игра2", result[1].Name);
            Assert.AreEqual("Игра3", result[2].Name);
        }
        public void AdminController_Edit_CannotEditNonexistingProduct()
        {
            // Arrange
            Mock <IProductRepository> mock = new Mock <IProductRepository>();

            mock.Setup(m => m.Products).Returns(new Product[] {
                new Product {
                    ProductID = 1, Name = "P1", Category = "Cat1"
                },
                new Product {
                    ProductID = 2, Name = "P2", Category = "Cat2"
                },
                new Product {
                    ProductID = 3, Name = "P3", Category = "Cat1"
                },
            }.AsQueryable());
            var target = new AdminController(mock.Object);

            // Act
            var result = target.Edit(4).ViewData.Model as Product;

            // Assert
            Assert.IsNull(result);
        }
Exemple #57
0
        public void Cannot_Edit_Nonexistant_Product()
        {
            //Arrangemock repository
            Mock <IProductRepository> mock = new Mock <IProductRepository>();

            mock.Setup(m => m.Products).Returns(new Product[] {
                new Product {
                    ProductID = 1, Name = "P1"
                },
                new Product {
                    ProductID = 2, Name = "P2"
                },
                new Product {
                    ProductID = 3, Name = "P3"
                },
            });

            //Arrange contrlr
            AdminController target = new AdminController(mock.Object);
            Product         result = (Product)target.Edit(4).ViewData.Model;

            //Assert
            Assert.IsNull(result);
        }
        protected void gvFreightType_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            AdminController aCont = new AdminController();

            txtSelectedFreightType.Value = (gvFreightType.SelectedRow.FindControl("hdngvFreightTypeId") as HiddenField).Value;
            FreightTypeInfo FreightType = aCont.Get_FreightTypeById(Convert.ToInt32(txtSelectedFreightType.Value));

            if (FreightType.Id != -1)
            {
                btnDeleteFreightType.Enabled    = true;
                btnSaveFreightTypeAs.Enabled    = true;
                txtFreightTypeCreatedBy.Value   = FreightType.CreatedById.ToString();
                txtFreightTypeCreatedDate.Value = FreightType.DateCreated.Ticks.ToString();
                txtFreightType.Text             = FreightType.FreightType;
                lblFreightTypeMessage.Text      = "";
            }
            else
            {
                btnDeleteFreightType.Enabled = false;
                btnSaveFreightTypeAs.Enabled = false;
                clearFreightType();
                lblFreightTypeMessage.Text = "There was an error loading this Freight Type.";
            }
        }
Exemple #59
0
    public void GetWaiterInfo()
    {
        //a standard lookup process
        AdminController sysmgr = new AdminController();
        var             Waiter = sysmgr.GetWaiterByID(int.Parse(WaiterList.SelectedValue));

        WaiterID.Text  = Waiter.WaiterID.ToString();
        FirstName.Text = Waiter.FirstName;
        LastName.Text  = Waiter.LastName;
        Address.Text   = Waiter.Address;
        Phone.Text     = Waiter.Phone;
        HireDate.Text  = Waiter.HireDate.ToShortDateString();
        //null field check

        if (Waiter.ReleaseDate.HasValue)
        {
            ReleaseDate.Text = Waiter.ReleaseDate.ToString();
        }

        else
        {
            ReleaseDate.Text = "";
        }
    }
        public void AdminController_Delete_CannotDeleteInvalidProduct()
        {
            // Arrange
            Mock <IProductRepository> mock = new Mock <IProductRepository>();

            mock.Setup(m => m.Products).Returns(new Product[] {
                new Product {
                    ProductID = 1, Name = "P1", Category = "Cat1"
                },
                new Product {
                    ProductID = 2, Name = "P2", Category = "Cat2"
                },
                new Product {
                    ProductID = 3, Name = "P3", Category = "Cat1"
                },
            }.AsQueryable());
            var target = new AdminController(mock.Object);

            // Act
            target.Delete(100);

            // Assert
            mock.Verify(m => m.Delete(It.IsAny <Product>()), Times.Never());
        }