Beispiel #1
0
        public void TimeInReport_ReportDateIsNotValidDate_ReturnsReportDateIncorrectError()
        {
            ReportQueryModel input = new ReportQueryModel()
            {
                UserName   = "******",
                ReportDate = "incorrect date"
            };

            Mock <IDailyTimeInDataAccess>  timeIn  = new Mock <IDailyTimeInDataAccess>();
            Mock <IDailyTimeOutDataAccess> timeOut = new Mock <IDailyTimeOutDataAccess>();
            Mock <IUserDataAccess>         user    = new Mock <IUserDataAccess>();

            timeIn.Setup(x => x.GetMonthTimeIn(DateTime.Now)).Returns(new List <DailyTimeIn>());
            timeOut.Setup(x => x.GetMonthTimeOut(DateTime.Now)).Returns(new List <DailyTimeOut>());
            user.Setup(x => x.GetUser(input.UserName)).Returns(new User()
            {
                UserKey      = 1,
                FirstName    = "John",
                LastName     = "Doe",
                IsActive     = true,
                UserName     = "******",
                UserPassword = "******",
                CreateUserId = "john.doe",
                CreateDttm   = DateTime.Now,
                UpdateUserId = "john.doe",
                UpdateDttm   = DateTime.Now
            });

            ITimeInEmployeeReport app = new TimeInEmployeeReport(timeIn.Object, timeOut.Object, user.Object);

            var output = app.GenerateMonthlyReport(input);

            Assert.AreEqual("Invalid report date selected.", output.QueryStatus);
        }
Beispiel #2
0
        public void TimeInReport_WhenUserNameIsBlank_ReturnsUserIsNameBlankError()
        {
            ReportQueryModel input = new ReportQueryModel()
            {
                UserName   = "",
                ReportDate = DateTime.Now.ToString()
            };

            Mock <IDailyTimeInDataAccess>  timeIn  = new Mock <IDailyTimeInDataAccess>();
            Mock <IDailyTimeOutDataAccess> timeOut = new Mock <IDailyTimeOutDataAccess>();
            Mock <IUserDataAccess>         user    = new Mock <IUserDataAccess>();

            timeIn.Setup(x => x.GetMonthTimeIn(DateTime.Now)).Returns(new List <DailyTimeIn>());
            timeOut.Setup(x => x.GetMonthTimeOut(DateTime.Now)).Returns(new List <DailyTimeOut>());
            user.Setup(x => x.GetUser(input.UserName)).Returns(new User());

            ITimeInEmployeeReport app = new TimeInEmployeeReport(timeIn.Object, timeOut.Object, user.Object);

            var output = app.GenerateMonthlyReport(input);

            Assert.AreEqual("Employee username is blank.", output.QueryStatus);
        }
Beispiel #3
0
        public void TimeInReport_WhenEmployeeIsNotFound_ReturnsEmployeeNotFoundError()
        {
            ReportQueryModel input = new ReportQueryModel()
            {
                UserName   = "******",
                ReportDate = DateTime.Now.ToString()
            };

            Mock <IDailyTimeInDataAccess>  timeIn  = new Mock <IDailyTimeInDataAccess>();
            Mock <IDailyTimeOutDataAccess> timeOut = new Mock <IDailyTimeOutDataAccess>();
            Mock <IUserDataAccess>         user    = new Mock <IUserDataAccess>();

            timeIn.Setup(x => x.GetMonthTimeIn(DateTime.Now)).Returns(new List <DailyTimeIn>());
            timeOut.Setup(x => x.GetMonthTimeOut(DateTime.Now)).Returns(new List <DailyTimeOut>());
            user.Setup(x => x.GetUser(input.UserName)).Returns((User)null);

            ITimeInEmployeeReport app = new TimeInEmployeeReport(timeIn.Object, timeOut.Object, user.Object);

            var output = app.GenerateMonthlyReport(input);

            Assert.AreEqual("Employee not found.", output.QueryStatus);
        }
Beispiel #4
0
        public void TimeInReport_ReportQueryIscorrect_ReturnsReportGeneratedSuccessMessage()
        {
            ReportQueryModel input = new ReportQueryModel()
            {
                UserName   = "******",
                ReportDate = DateTime.Now.ToString()
            };

            Mock <IDailyTimeInDataAccess>  timeIn  = new Mock <IDailyTimeInDataAccess>();
            Mock <IDailyTimeOutDataAccess> timeOut = new Mock <IDailyTimeOutDataAccess>();
            Mock <IUserDataAccess>         user    = new Mock <IUserDataAccess>();

            timeIn.Setup(x => x.GetEmployeeMonthTimeIn(1, DateTime.Parse(input.ReportDate))).Returns(new List <DailyTimeIn>()
            {
                new DailyTimeIn
                {
                    TimeInId     = 1,
                    ActivityCd   = 1,
                    EmployeeId   = 10001,
                    IsActive     = true,
                    TimeInDttm   = DateTime.Parse(input.ReportDate),
                    CreateUserId = "john.doe",
                    CreateDttm   = DateTime.Parse(input.ReportDate),
                    UpdateUserId = "john.doe",
                    UpdateDttm   = DateTime.Parse(input.ReportDate),
                    Activity     = new Activity
                    {
                        ActivityId   = 1,
                        ActivityNm   = "Activity",
                        IsActive     = true,
                        CreateUserId = "Admin",
                        CreateDttm   = DateTime.Now,
                        UpdateUserId = "Admin",
                        UpdateDttm   = DateTime.Now
                    }
                }
            });
            timeOut.Setup(x => x.GetEmployeeMonthTimeOut(1, DateTime.Parse(input.ReportDate))).Returns(new List <DailyTimeOut>()
            {
                new DailyTimeOut
                {
                    TimeInId     = 1,
                    ActivityCd   = 1,
                    EmployeeId   = 10001,
                    IsActive     = true,
                    TimeOutDttm  = DateTime.Parse(input.ReportDate),
                    CreateUserId = "john.doe",
                    CreateDttm   = DateTime.Parse(input.ReportDate),
                    UpdateUserId = "john.doe",
                    UpdateDttm   = DateTime.Parse(input.ReportDate)
                }
            });
            user.Setup(x => x.GetUser(input.UserName)).Returns(new User()
            {
                UserKey      = 1,
                FirstName    = "John",
                LastName     = "Doe",
                IsActive     = true,
                UserName     = "******",
                UserPassword = "******",
                CreateUserId = "john.doe",
                CreateDttm   = DateTime.Now,
                UpdateUserId = "john.doe",
                UpdateDttm   = DateTime.Now
            });

            ITimeInEmployeeReport app = new TimeInEmployeeReport(timeIn.Object, timeOut.Object, user.Object);

            var output = app.GenerateMonthlyReport(input);

            Assert.AreEqual("Report generated.", output.QueryStatus);
        }