Esempio n. 1
0
        public void Controller_Kiosk_KioskLogout_Valid_Data_Should_Update_Status()
        {
            // Arrange
            DataSourceBackend.Instance.Reset();
            DataSourceBackend.SetTestingMode(true);

            var controller = new KioskController();

            // Get the first Studnet from the DataSource
            var data = DataSourceBackend.Instance.StudentBackend.GetDefault();
            var id   = DataSourceBackend.Instance.StudentBackend.GetDefault().Id;

            // Login, so logout can happen
            controller.KioskLogin(data);

            // Act
            var result = (RedirectToRouteResult)controller.KioskLogout(data);

            // check status change after KioskLogout
            var resultStatus = DataSourceBackend.Instance.StudentBackend.Read(id).Status;

            // Reset
            DataSourceBackend.Instance.Reset();

            // Assert
            Assert.AreEqual(StudentStatusEnum.Out, resultStatus, TestContext.TestName);
        }
        public void PunchIn_Should_ReturnSuccessfully()
        {
            // ----------------------------------------------------------------
            // Arrange
            // ----------------------------------------------------------------

            var controller        = new KioskController();
            var controllerContext = new HttpControllerContext();

            // User will be authenticated
            var userId = _context.Users
                         .Where(u => u.EmailAddress == "*****@*****.**")
                         .FirstOrDefault()
                         .Id
                         .ToString();

            controllerContext.RequestContext.Principal = new GenericPrincipal(new GenericIdentity(userId), new string[] { });

            var configuration = new HttpConfiguration();
            var request       = new HttpRequestMessage();

            request.Properties[System.Web.Http.Hosting.HttpPropertyKeys.HttpConfigurationKey] = configuration;
            request.Headers.Add("Accept", "application/json");

            controllerContext.Request    = request;
            controller.ControllerContext = controllerContext;


            // ----------------------------------------------------------------
            // Act
            // ----------------------------------------------------------------

            var taskId = _context.Tasks
                         .Where(t => t.Number == "1000")
                         .Select(t => t.Id)
                         .FirstOrDefault();
            var timeZone                     = "America/New_York";
            var latitude                     = "";
            var longitude                    = "";
            var sourceHardware               = "";
            var sourceOperatingSystem        = "";
            var sourceOperatingSystemVersion = "";
            var sourceBrowser                = "";
            var sourceBrowserVersion         = "";

            var actionResult = controller.PunchIn(taskId, timeZone, latitude, longitude, sourceHardware, sourceOperatingSystem, sourceOperatingSystemVersion, sourceBrowser, sourceBrowserVersion);

            var content = actionResult as OkNegotiatedContentResult <Punch>;


            // ----------------------------------------------------------------
            // Assert
            // ----------------------------------------------------------------

            Assert.IsNotNull(content);
            Assert.IsNotNull(content.Content);
            Assert.AreEqual(int.Parse(userId), content.Content.UserId);
            Assert.IsNull(content.Content.OutAt);
        }
Esempio n. 3
0
        public void Controller_Kiosk_Instantiate_Default_Should_Pass()
        {
            // Arrange
            var controller = new KioskController();

            // Act
            var result = controller.GetType();

            // Assert
            Assert.AreEqual(result, new KioskController().GetType(), TestContext.TestName);
        }
        public void PunchOut_ShouldNot_AllowPunchingOutWithoutBeingPunchedIn()
        {
            // Arrange.
            var controller        = new KioskController();
            var controllerContext = new HttpControllerContext();

            // User will be authenticated.
            var userId = db.Users
                         .Where(u => u.EmailAddress == "*****@*****.**")
                         .FirstOrDefault()
                         .Id
                         .ToString();

            controllerContext.RequestContext.Principal = new GenericPrincipal(new GenericIdentity(userId), new string[] { });

            var configuration = new HttpConfiguration();
            var request       = new HttpRequestMessage();

            request.Properties[System.Web.Http.Hosting.HttpPropertyKeys.HttpConfigurationKey] = configuration;
            request.Headers.Add("Accept", "application/json");

            controllerContext.Request    = request;
            controller.ControllerContext = controllerContext;

            // Act.
            var taskId = db.Tasks
                         .Where(t => t.Number == "1000")
                         .FirstOrDefault()
                         .Id;
            var timeZone                     = "America/New_York";
            var latitude                     = "";
            var longitude                    = "";
            var sourceHardware               = "";
            var sourceOperatingSystem        = "";
            var sourceOperatingSystemVersion = "";
            var sourceBrowser                = "";
            var sourceBrowserVersion         = "";

            // Act.
            var actionResult = controller.PunchOut(
                timeZone,
                latitude,
                longitude,
                sourceHardware,
                sourceOperatingSystem,
                sourceOperatingSystemVersion,
                sourceBrowser,
                sourceBrowserVersion);

            var content = actionResult as OkNegotiatedContentResult <Punch>;

            // Assert.
            Assert.IsNull(content);
        }
        public void Timecard_Should_ReturnSuccessfully()
        {
            // ----------------------------------------------------------------
            // Arrange
            // ----------------------------------------------------------------

            var controller        = new KioskController();
            var controllerContext = new HttpControllerContext();

            // User will be authenticated
            var userId = _context.Users
                         .Where(u => u.EmailAddress == "*****@*****.**")
                         .FirstOrDefault()
                         .Id
                         .ToString();

            controllerContext.RequestContext.Principal = new GenericPrincipal(new GenericIdentity(userId), new string[] { });

            var configuration = new HttpConfiguration();
            var request       = new HttpRequestMessage();

            request.Properties[System.Web.Http.Hosting.HttpPropertyKeys.HttpConfigurationKey] = configuration;
            request.Headers.Add("Accept", "application/json");

            controllerContext.Request    = request;
            controller.ControllerContext = controllerContext;


            // ----------------------------------------------------------------
            // Act
            // ----------------------------------------------------------------
            var taskId = _context.Tasks
                         .Where(t => t.Number == "1000")
                         .Select(t => t.Id)
                         .FirstOrDefault();
            var enteredAt = DateTime.Today;
            var minutes   = 60;
            var notes     = "";

            var actionResult = controller.TimeCard(taskId, enteredAt, minutes, notes);

            var content = actionResult as OkNegotiatedContentResult <TimesheetEntry>;


            // ----------------------------------------------------------------
            // Assert
            // ----------------------------------------------------------------

            Assert.IsNotNull(content);
            Assert.IsNotNull(content.Content);
            Assert.AreEqual(DateTime.Today.Date, content.Content.EnteredAt.Date);
            Assert.AreEqual(minutes, content.Content.Minutes);
            Assert.AreEqual(int.Parse(userId), content.Content.UserId);
        }
Esempio n. 6
0
        public void Controller_Kiosk_Index_Default_Should_Pass()
        {
            // Arrange
            KioskController controller = new KioskController();

            // Act
            ViewResult result = controller.Index() as ViewResult;

            // Assert
            Assert.IsNotNull(result, TestContext.TestName);
        }
Esempio n. 7
0
        public void Controller_Kiosk_Create_Post_Data_Is_Null_Should_Return_Error_Page()
        {
            // Arrange
            KioskController controller = new KioskController();

            // Act
            var result = (RedirectToRouteResult)controller.Create((StudentModel)null);

            // Assert
            Assert.AreEqual("Error", result.RouteValues["action"], TestContext.TestName);
        }
Esempio n. 8
0
        public void Controller_Kiosk_Login_Get_Should_Pass()
        {
            // Arrage
            var controller = new KioskController();

            // Act
            ViewResult result = controller.Login() as ViewResult;

            // Assert
            Assert.IsNotNull(result, TestContext.TestName);
        }
Esempio n. 9
0
        public void Controller_Kiosk_KioskLogout_Null_Or_Empty_Data_Should_Return_Error_Page()
        {
            // Arrange
            var          controller = new KioskController();
            StudentModel data       = null;

            // Act
            var result = (RedirectToRouteResult)controller.KioskLogout(data);

            // Assert
            Assert.AreEqual("Error", result.RouteValues["action"], TestContext.TestName);
        }
Esempio n. 10
0
        public void Controller_Kiosk_ConfirmLogout_Null_Or_Empty_Id_Should_Return_Error_Page()
        {
            // Arrage
            var    controller = new KioskController();
            string id         = null;

            // Act
            var result = (RedirectToRouteResult)controller.ConfirmLogout(id);

            // Assert
            Assert.AreEqual("Error", result.RouteValues["action"], TestContext.TestName);
        }
Esempio n. 11
0
        public void Controller_Kiosk_Create_Post_Default_Should_Return_Index_Page()
        {
            // Arrange
            KioskController controller = new KioskController();

            StudentModel data = DataSourceBackend.Instance.StudentBackend.GetDefault();

            // Act
            var result = (RedirectToRouteResult)controller.Create(data);

            // Assert
            Assert.AreEqual("Index", result.RouteValues["action"], TestContext.TestName);
        }
Esempio n. 12
0
        public void Controller_Kiosk_ConfirmLogout_Valid_Id_Should_Pass()
        {
            // Arrange
            var    controller = new KioskController();
            string id         = DataSourceBackend.Instance.StudentBackend.GetDefault().Id;

            // Act
            ViewResult result = controller.ConfirmLogout(id) as ViewResult;

            // Reset
            DataSourceBackend.Instance.Reset();

            // Assert
            Assert.IsNotNull(result, TestContext.TestName);
        }
Esempio n. 13
0
        public void Controller_Kiosk_Login_InValid_Password_Null_Should_Fail()
        {
            // Arrange
            var    controller = new KioskController();
            string Password   = KioskSettingsBackend.Instance.GetDefault().Password;

            var data = new KioskSettingsModel
            {
                Password = null
            };

            ViewResult result = controller.Login(data) as ViewResult;

            // Assert
            Assert.AreEqual(controller.ModelState.IsValid, false, TestContext.TestName);
        }
Esempio n. 14
0
        public void Controller_Kiosk_Create_Post_Model_Is_Invalid_Should_Send_Back_For_Edit()
        {
            // Arrange
            KioskController controller = new KioskController();

            StudentModel data = new StudentModel();

            // Make ModelState Invalid
            controller.ModelState.AddModelError("test", "test");

            // Act
            ViewResult result = controller.Create(data) as ViewResult;

            // Assert
            Assert.IsNotNull(result, TestContext.TestName);
        }
Esempio n. 15
0
        public void Controller_Kiosk_Login_Valid_Password_Should_Pass()
        {
            // Arrange
            var    controller = new KioskController();
            string Password   = KioskSettingsBackend.Instance.GetDefault().Password;

            var data = new KioskSettingsModel
            {
                Password = Password
            };

            // Act
            var result = (RedirectToRouteResult)controller.Login(data);

            // Assert
            Assert.AreEqual("Index", result.RouteValues["action"], TestContext.TestName);
        }
Esempio n. 16
0
        public void Controller_Kiosk_KioskLogin_Null_Or_Empty_Id_Should_Return_Error_Page()
        {
            // Arrange
            var controller = new KioskController();

            // Create StudentModel instance
            StudentModel data = new StudentModel
            {
                // Set student Id to null
                Id = null
            };

            // Act
            var result = (RedirectToRouteResult)controller.KioskLogin(data);

            // Assert
            Assert.AreEqual("Error", result.RouteValues["action"], TestContext.TestName);
        }
Esempio n. 17
0
        public void Controller_Kiosk_Login_InValid_Model_Null_Should_Fail()
        {
            // Arrange
            var    controller = new KioskController();
            string Password   = KioskSettingsBackend.Instance.GetDefault().Password;

            var data = new KioskSettingsModel
            {
                Password = Password
            };

            // Make a model error then try to send it as a KioskSettings
            controller.ModelState.AddModelError("test", "test");

            // Act
            ViewResult result = controller.Login(data) as ViewResult;

            // Assert
            Assert.AreEqual(controller.ModelState.IsValid, false, TestContext.TestName);
        }
Esempio n. 18
0
        public void Controller_Kiosk_KioskLogin_Valid_Data_Should_Pass()
        {
            // Arrange
            DataSourceBackend.Instance.Reset();
            DataSourceBackend.SetTestingMode(true);

            var controller = new KioskController();

            // Get the first Studnet from the DataSource
            var data = DataSourceBackend.Instance.StudentBackend.GetDefault();
            var id   = DataSourceBackend.Instance.StudentBackend.GetDefault().Id;

            // Act
            var result = (RedirectToRouteResult)controller.KioskLogin(data);

            // Reset
            DataSourceBackend.Instance.Reset();

            // Assert
            Assert.AreEqual("ConfirmLogin", result.RouteValues["action"], TestContext.TestName);
        }
Esempio n. 19
0
        public void Controller_Kiosk_Create_Post_Id_Is_Null_Or_Empty_Should_Return_Back_For_Edit()
        {
            // Arrange
            KioskController controller = new KioskController();

            StudentModel dataNull  = new StudentModel();
            StudentModel dataEmpty = new StudentModel();

            // Make data.Id = null
            dataNull.Id = null;

            // Make data.Id empty
            dataEmpty.Id = "";

            // Act
            var resultNull  = (ViewResult)controller.Create(dataNull);
            var resultEmpty = (ViewResult)controller.Create(dataEmpty);

            // Assert
            Assert.IsNotNull(resultNull, TestContext.TestName);
            Assert.IsNotNull(resultEmpty, TestContext.TestName);
        }
Esempio n. 20
0
        public void Controller_Kiosk_KioskLogin_Valid_Data_Should_Update_Emotion()
        {
            // Arrange
            DataSourceBackend.Instance.Reset();
            DataSourceBackend.SetTestingMode(true);

            var controller = new KioskController();

            // Get the first Studnet from the DataSource
            var    data = DataSourceBackend.Instance.StudentBackend.GetDefault();
            string id   = DataSourceBackend.Instance.StudentBackend.GetDefault().Id;

            // Act
            var result = (RedirectToRouteResult)controller.KioskLogin(data);

            // check status change after SetLogin
            var resultStatus = DataSourceBackend.Instance.StudentBackend.Read(id).EmotionCurrent;

            // Reset
            DataSourceBackend.Instance.Reset();

            // Assert
            Assert.AreEqual(EmotionStatusEnum.Neutral, resultStatus, TestContext.TestName);
        }