public void GetDormantSpecialistsReport_GetByConditions_FirstPage()
        {
            // Setup dependency
            var settingsMock = new Mock<ISettings>();
            var repositoryMock = new Mock<IRepository>();
            var uowMock = new Mock<IUnitOfWork>();
            var serviceLocatorMock = new Mock<IServiceLocator>();
            serviceLocatorMock.Setup(x => x.GetInstance<IRepository>())
                .Returns(repositoryMock.Object);
            ServiceLocator.SetLocatorProvider(() => serviceLocatorMock.Object);

            // Arrange
            decimal expectedResult = 5;
            string expectedName = "4";
            List<User> users = new List<User>();
            DateTime startDate = DateTime.Now.AddYears(-1);
            DateTime endDate = DateTime.Now.AddYears(1);

            for (int i = 0; i < 20; i++)
            {
                User user = new User
                {
                    Id = Guid.NewGuid(),
                    FirstName = i.ToString(),
                    CreatedDate = DateTime.Now,
                    Role = Role.Specialist
                };
                users.Add(user);
            }
            repositoryMock.Setup(r => r.Query<User>()).Returns(users.AsQueryable());

            // Act
            DashboardService bookingService = new DashboardService(uowMock.Object, repositoryMock.Object, settingsMock.Object);
            var currentResult = bookingService
                .GetDormantSpecialistsReport(startDate, endDate, string.Empty,
                0, 5);

            // Assert
            Assert.AreEqual(expectedResult, currentResult.Count());
            Assert.AreEqual(expectedName, currentResult.Last().FirstName);
        }
        public void GetDormantSpecialistsReport_GetByConditions_NullUser()
        {
            // Setup dependency
            var settingsMock = new Mock<ISettings>();
            var repositoryMock = new Mock<IRepository>();
            var uowMock = new Mock<IUnitOfWork>();
            var serviceLocatorMock = new Mock<IServiceLocator>();
            serviceLocatorMock.Setup(x => x.GetInstance<IRepository>())
                .Returns(repositoryMock.Object);
            ServiceLocator.SetLocatorProvider(() => serviceLocatorMock.Object);

            // Arrange
            List<User> users = new List<User>();
            DateTime startDate = DateTime.Now.AddYears(-1);
            DateTime endDate = DateTime.Now.AddYears(1);

            // Act
            DashboardService bookingService = new DashboardService(uowMock.Object, repositoryMock.Object, settingsMock.Object);
            var currentResult = bookingService
                .GetDormantSpecialistsReport(startDate, endDate, string.Empty,
                3, 5);

            // Assert
            Assert.AreEqual(null, currentResult);
        }
        public void GetRegistrationReportYear_reportForSpecialists_Today()
        {
            // Setup dependency
            var settingsMock = new Mock<ISettings>();
            var repositoryMock = new Mock<IRepository>();
            var uowMock = new Mock<IUnitOfWork>();
            var serviceLocatorMock = new Mock<IServiceLocator>();
            serviceLocatorMock.Setup(x => x.GetInstance<IRepository>())
                .Returns(repositoryMock.Object);
            ServiceLocator.SetLocatorProvider(() => serviceLocatorMock.Object);

            // Arrange
            decimal expectedResult = 10;
            List<User> users = new List<User>();
            DateTime startDate = DateTime.Now.AddYears(-1);
            DateTime endDate = DateTime.Now.AddYears(1);

            for (int i = 0; i < 10; i++)
            {
                User user = new User
                {
                    Id = Guid.NewGuid(),
                    CreatedDate = DateTime.Now,
                    Role = Role.Specialist
                };
                users.Add(user);
            }
            repositoryMock.Setup(r => r.Query<User>()).Returns(users.AsQueryable());

            // Act
            DashboardService bookingService = new DashboardService(uowMock.Object, repositoryMock.Object, settingsMock.Object);
            IList<RegistrationReportDashboardDto> currentResult = bookingService
                .GetRegistrationReportYear(true, true, startDate.Year, endDate.Year);

            // Assert
            Assert.AreEqual(expectedResult,
                currentResult[1].ValueSpecialists + currentResult[1].ValueCustomers);
        }