public void SetUp()
        {
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddTransient <INavigationManager>(container => Mock.Of <INavigationManager>());
            serviceCollection.AddTransient <IApplicationStatusInfo>(container => new DotNetNuke.Application.ApplicationStatusInfo(Mock.Of <IApplicationInfo>()));
            serviceCollection.AddTransient <IHostSettingsService, HostController>();
            Globals.DependencyProvider = serviceCollection.BuildServiceProvider();

            // Register MockCachingProvider
            this.mockCache = MockComponentProvider.CreateNew <CachingProvider>();
            MockComponentProvider.CreateDataProvider().Setup(c => c.GetProviderPath()).Returns(string.Empty);
        }
        public void Constructor_Sets_PortalId_When_Passed_Portal()
        {
            // Arrange
            var mockPortalSettingsController = MockComponentProvider.CreateNew <IPortalSettingsController>("PortalSettingsController");

            var portal = this.CreatePortal(ValidPortalId);

            // Act
            var settings = new PortalSettings(ValidTabId, portal);

            // Assert
            Assert.AreEqual(ValidPortalId, settings.PortalId);
        }
        public void Constructor_Does_Not_Set_PortalId_When_Passed_Null_Portal()
        {
            //Arrange
            var mockPortalSettingsController = MockComponentProvider.CreateNew <IPortalSettingsController>("PortalSettingsController");

            var portal = CreatePortal(ValidPortalId);

            //Act
            var settings = new PortalSettings(ValidTabId, (PortalInfo)null);

            //Assert
            Assert.AreEqual(InValidPortalId, settings.PortalId);
        }
        public void SetUp()
        {
            _mockCache        = MockComponentProvider.CreateNew <CachingProvider>();
            _mockDataProvider = MockComponentProvider.CreateDataProvider();
            _mockSearchHelper = new Mock <Services.Search.Internals.ISearchHelper>();

            Services.Search.Internals.SearchHelper.SetTestableInstance(_mockSearchHelper.Object);

            _mockSearchHelper.Setup(x => x.GetSearchTypeByName(It.IsAny <string>())).Returns <string>(
                (string searchTypeName) => new SearchType {
                SearchTypeName = searchTypeName, SearchTypeId = ModuleSearchTypeId
            });
        }
        public void Constructor_Calls_PortalSettingsController_GetActiveTab_When_Passed_Portal()
        {
            // Arrange
            var mockPortalSettingsController = MockComponentProvider.CreateNew <IPortalSettingsController>("PortalSettingsController");

            var portal = this.CreatePortal(ValidPortalId);

            // Act
            var settings = new PortalSettings(ValidTabId, portal);

            // Assert
            mockPortalSettingsController.Verify(c => c.GetActiveTab(ValidTabId, settings));
        }
        public void Constructor_Sets_PortalId_When_Passed_PortalId()
        {
            //Arrange
            var mockPortalController = new Mock <IPortalController>();

            PortalController.SetTestableInstance(mockPortalController.Object);
            var mockPortalSettingsController = MockComponentProvider.CreateNew <IPortalSettingsController>("PortalSettingsController");

            //Act
            var settings = new PortalSettings(ValidTabId, ValidPortalId);

            //Assert
            Assert.AreEqual(ValidPortalId, settings.PortalId);
        }
        public void Constructor_Calls_PortalSettingsController_LoadPortalSettings_When_Passed_PortalId()
        {
            //Arrange
            var mockPortalController = new Mock <IPortalController>();

            PortalController.SetTestableInstance(mockPortalController.Object);
            var mockPortalSettingsController = MockComponentProvider.CreateNew <IPortalSettingsController>("PortalSettingsController");

            //Act
            var settings = new PortalSettings(ValidTabId, ValidPortalId);

            //Assert
            mockPortalSettingsController.Verify(c => c.LoadPortalSettings(settings));
        }
        public void SetUp()
        {
            ComponentFactory.Container = new SimpleContainer();
            _dataProvider = MockComponentProvider.CreateDataProvider();
            MockComponentProvider.CreateDataCacheProvider();
            MockComponentProvider.CreateEventLogController();
            _clientCapabilityProvider = MockComponentProvider.CreateNew <ClientCapabilityProvider>();

            _redirectionController = new RedirectionController();

            SetupDataProvider();
            SetupClientCapabilityProvider();
            SetupRoleProvider();
        }
        public void Setup()
        {
            NameValueCollection serverVariables = new NameValueCollection();

            // Setup Mock
            this._mockhttpContext = HttpContextHelper.RegisterMockHttpContext();
            this._mockRequest     = Mock.Get(this._mockhttpContext.Object.Request);
            this._mockRequest.Setup(x => x.ServerVariables).Returns(serverVariables);
            this._mockHostController   = MockComponentProvider.CreateNew <IHostController>();
            this._mockPortalController = MockComponentProvider.CreateNew <IPortalController>();
            PortalController.SetTestableInstance(this._mockPortalController.Object);

            // System under test
            this._userRequestIPAddressController = new UserRequestIPAddressController();
        }
        public void Constructor_Sets_ActiveTab_Property_If_Valid_TabId_And_Portal()
        {
            //Arrange
            var portal = CreatePortal(ValidPortalId);
            var mockPortalSettingsController = MockComponentProvider.CreateNew <IPortalSettingsController>("PortalSettingsController");

            mockPortalSettingsController
            .Setup(c => c.GetActiveTab(ValidTabId, It.IsAny <PortalSettings>()))
            .Returns(new TabInfo());

            //Act
            var settings = new PortalSettings(ValidTabId, portal);

            //Assert
            Assert.NotNull(settings.ActiveTab);
        }
        private void SetupRoleProvider()
        {
            var mockRoleProvider = MockComponentProvider.CreateNew <RoleProvider>();

            mockRoleProvider.Setup(p => p.GetRole(It.IsAny <int>(), It.IsAny <int>())).Returns <int, int>((portalId, roleId) =>
            {
                RoleInfo roleInfo = new RoleInfo();
                roleInfo.RoleID   = roleId;
                roleInfo.PortalID = portalId;
                if (roleId == 1)
                {
                    roleInfo.RoleName = "Administrators";
                }

                return(roleInfo);
            });
        }
Esempio n. 12
0
        public void PortalGroupController_DeletePortalGroup_Calls_DataService_On_Valid_PortalGroupId()
        {
            //Arrange
            MockComponentProvider.CreateNew <CachingProvider>();
            var mockDataService      = new Mock <IDataService>();
            var mockPortalController = new Mock <IPortalController>();
            var controller           = new PortalGroupController(mockDataService.Object, mockPortalController.Object);

            PortalGroupInfo portalGroup = CreateValidPortalGroup();

            portalGroup.PortalGroupId = Constants.PORTALGROUP_DeletePortalGroupId;

            //Act
            controller.DeletePortalGroup(portalGroup);

            //Assert
            mockDataService.Verify(ds => ds.DeletePortalGroup(portalGroup));
        }
        public void Constructor_Does_Not_Call_PortalSettingsController_GetActiveTab_When_Passed_InValid_PortalAlias()
        {
            //Arrange
            var portal = CreatePortal(ValidPortalId);
            var mockPortalController = new Mock <IPortalController>();

            mockPortalController.Setup(c => c.GetPortal(ValidPortalId)).Returns(portal);
            PortalController.SetTestableInstance(mockPortalController.Object);

            var mockPortalSettingsController = MockComponentProvider.CreateNew <IPortalSettingsController>("PortalSettingsController");

            var portalAlias = CreatePortalAlias(InValidPortalId);

            //Act
            var settings = new PortalSettings(ValidTabId, portalAlias);

            //Assert
            mockPortalSettingsController.Verify(c => c.GetActiveTab(ValidTabId, settings), Times.Never);
        }
        public void Constructor_Calls_PortalSettingsController_LoadPortal_When_Passed_Valid_PortalAlias()
        {
            //Arrange
            var portal = CreatePortal(ValidPortalId);
            var mockPortalController = new Mock <IPortalController>();

            mockPortalController.Setup(c => c.GetPortal(ValidPortalId)).Returns(portal);
            PortalController.SetTestableInstance(mockPortalController.Object);

            var mockPortalSettingsController = MockComponentProvider.CreateNew <IPortalSettingsController>("PortalSettingsController");

            var portalAlias = CreatePortalAlias(ValidPortalId);

            //Act
            var settings = new PortalSettings(ValidTabId, portalAlias);

            //Assert
            mockPortalSettingsController.Verify(c => c.LoadPortal(portal, settings));
        }
Esempio n. 15
0
        public void RepositoryBase_GetPage_Checks_Cache_If_Cacheable()
        {
            // Arrange
            var mockHostController = MockComponentProvider.CreateNew <IHostController>();

            mockHostController.Setup(h => h.GetString("PerformanceSetting")).Returns("3");

            var mockCache = MockComponentProvider.CreateDataCacheProvider();

            mockCache.Setup(c => c.GetItem(CachingProvider.GetCacheKey(Constants.CACHE_DogsKey))).Returns(new List <CacheableDog>());

            var mockRepository = new Mock <RepositoryBase <CacheableDog> >();

            // Act
            var dogs = mockRepository.Object.GetPage(Constants.PAGE_First, Constants.PAGE_RecordCount);

            // Assert
            mockCache.Verify(c => c.GetItem(CachingProvider.GetCacheKey(Constants.CACHE_DogsKey)));
        }
Esempio n. 16
0
        public void PortalGroupController_GetPortalGroups_Returns_EmptyList_If_No_Items()
        {
            //Arrange
            var mockCache = MockComponentProvider.CreateNew <CachingProvider>();

            mockCache.Setup(c => c.GetItem(CachingProvider.GetCacheKey(DataCache.PortalGroupsCacheKey))).Returns(null);

            Mock <IDataService> mockDataService = new Mock <IDataService>();

            mockDataService.Setup(ds => ds.GetPortalGroups()).Returns(CreateValidPortalGroupsReader(0, Constants.USER_ValidId));

            var mockPortalController = new Mock <IPortalController>();
            var controller           = new PortalGroupController(mockDataService.Object, mockPortalController.Object);

            //Act
            IEnumerable <PortalGroupInfo> portalGroups = controller.GetPortalGroups();

            //Assert
            Assert.AreEqual(0, portalGroups.Count());
        }
Esempio n. 17
0
        public void PortalGroupController_GetPortalGroups_Calls_DataService()
        {
            //Arrange
            var mockCache = MockComponentProvider.CreateNew <CachingProvider>();

            mockCache.Setup(c => c.GetItem(CachingProvider.GetCacheKey(DataCache.PortalGroupsCacheKey))).Returns(null);

            var mockDataService = new Mock <IDataService>();

            mockDataService.Setup(ds => ds.GetPortalGroups()).Returns(CreateValidPortalGroupsReader(0, Constants.USER_ValidId));

            var mockPortalController = new Mock <IPortalController>();
            var controller           = new PortalGroupController(mockDataService.Object, mockPortalController.Object);

            //Act
            controller.GetPortalGroups();

            //Assert
            mockDataService.Verify(ds => ds.GetPortalGroups());
        }
Esempio n. 18
0
        public void PortalGroupController_AddPortalGroup_Sets_PortalGroupId_Property_On_Valid_PortalGroup()
        {
            //Arrange
            MockComponentProvider.CreateNew <CachingProvider>();
            var mockDataService = new Mock <IDataService>();

            mockDataService.Setup(ds => ds.AddPortalGroup(It.IsAny <PortalGroupInfo>(), It.IsAny <int>())).Returns(Constants.PORTALGROUP_AddPortalGroupId);
            var mockPortalController = new Mock <IPortalController>();
            var controller           = new PortalGroupController(mockDataService.Object, mockPortalController.Object);

            PortalGroupInfo portalGroup = CreateValidPortalGroup();

            portalGroup.PortalGroupId = Constants.PORTALGROUP_ValidPortalGroupId;

            //Act
            controller.AddPortalGroup(portalGroup);

            //Assert
            Assert.AreEqual(Constants.PORTALGROUP_AddPortalGroupId, portalGroup.PortalGroupId);
        }
        public void Constructor_Sets_ActiveTab_Property_To_Null_If_InValid_TabId_And_PortalId()
        {
            //Arrange
            var portal = CreatePortal(ValidPortalId);
            var mockPortalController = new Mock <IPortalController>();

            mockPortalController.Setup(c => c.GetPortal(ValidPortalId)).Returns(portal);
            PortalController.SetTestableInstance(mockPortalController.Object);
            var mockPortalSettingsController = MockComponentProvider.CreateNew <IPortalSettingsController>("PortalSettingsController");

            mockPortalSettingsController
            .Setup(c => c.GetActiveTab(InValidTabId, It.IsAny <PortalSettings>()))
            .Returns((TabInfo)null);

            //Act
            var settings = new PortalSettings(ValidTabId, ValidPortalId);

            //Assert
            Assert.Null(settings.ActiveTab);
        }
Esempio n. 20
0
        public void PortalGroupController_UpdatePortalGroup_Calls_DataService_On_Valid_PortalGroup()
        {
            //Arrange
            MockComponentProvider.CreateNew <CachingProvider>();
            var mockDataService      = new Mock <IDataService>();
            var mockPortalController = new Mock <IPortalController>();
            var controller           = new PortalGroupController(mockDataService.Object, mockPortalController.Object);

            var portalGroup = CreateValidPortalGroup();

            portalGroup.PortalGroupId          = Constants.PORTALGROUP_UpdatePortalGroupId;
            portalGroup.PortalGroupName        = Constants.PORTALGROUP_UpdateName;
            portalGroup.PortalGroupDescription = Constants.PORTALGROUP_UpdateDescription;

            //Act
            controller.UpdatePortalGroup(portalGroup);

            //Assert
            mockDataService.Verify(ds => ds.UpdatePortalGroup(portalGroup, It.IsAny <int>()));
        }
Esempio n. 21
0
        public void RepositoryBase_GetById_Overload_Checks_Cache_If_Cacheable_And_Scoped()
        {
            // Arrange
            var cacheKey = CachingProvider.GetCacheKey(string.Format(Constants.CACHE_CatsKey + "_" + Constants.CACHE_ScopeModule + "_{0}", Constants.MODULE_ValidId));

            var mockHostController = MockComponentProvider.CreateNew <IHostController>();

            mockHostController.Setup(h => h.GetString("PerformanceSetting")).Returns("3");

            var mockCache = MockComponentProvider.CreateDataCacheProvider();

            mockCache.Setup(c => c.GetItem(cacheKey)).Returns(new List <CacheableCat>());

            var mockRepository = new Mock <RepositoryBase <CacheableCat> >();

            // Act
            var cat = mockRepository.Object.GetById(Constants.PETAPOCO_ValidCatId, Constants.MODULE_ValidId);

            // Assert
            mockCache.Verify(c => c.GetItem(cacheKey));
        }
Esempio n. 22
0
        public void RepositoryBase_Get_Calls_GetAllInternal_If_Cacheable_And_Cache_Expired()
        {
            //Arrange
            var mockHostController = MockComponentProvider.CreateNew <IHostController>();

            mockHostController.Setup(h => h.GetString("PerformanceSetting")).Returns("3");

            var mockCache = MockComponentProvider.CreateDataCacheProvider();

            mockCache.Setup(c => c.GetItem(CachingProvider.GetCacheKey(Constants.CACHE_DogsKey))).Returns(null);

            var mockRepository = new Mock <RepositoryBase <CacheableDog> >();

            mockRepository.Protected().Setup("GetInternal");

            //Act
            var list = mockRepository.Object.Get();

            //Assert
            mockRepository.Protected().Verify("GetInternal", Times.Once());
        }
Esempio n. 23
0
        public void RepositoryBase_GetById_Does_Not_Call_GetByIdInternal_If_Cacheable_And_Cache_Valid()
        {
            // Arrange
            var mockHostController = MockComponentProvider.CreateNew <IHostController>();

            mockHostController.Setup(h => h.GetString("PerformanceSetting")).Returns("3");

            var mockCache = MockComponentProvider.CreateDataCacheProvider();

            mockCache.Setup(c => c.GetItem(CachingProvider.GetCacheKey(Constants.CACHE_DogsKey))).Returns(new List <CacheableDog>());

            var mockRepository = new Mock <RepositoryBase <CacheableDog> >();

            mockRepository.Protected().Setup <CacheableDog>("GetByIdInternal", ItExpr.IsAny <object>());

            // Act
            var dog = mockRepository.Object.GetById(Constants.PETAPOCO_ValidDogId);

            // Assert
            mockRepository.Protected().Verify <CacheableDog>("GetByIdInternal", Times.Never(), ItExpr.IsAny <object>());
        }
Esempio n. 24
0
        public void Setup()
        {
            NameValueCollection serverVariables = new NameValueCollection();

            // Setup Mock
            this.mockhttpContext = HttpContextHelper.RegisterMockHttpContext();
            this.mockRequest     = Mock.Get(this.mockhttpContext.Object.Request);
            this.mockRequest.Setup(x => x.ServerVariables).Returns(serverVariables);
            this.mockHostController = new Mock <IHostController>();
            this.mockHostController.As <IHostSettingsService>();
            this.mockPortalController = MockComponentProvider.CreateNew <IPortalController>();
            PortalController.SetTestableInstance(this.mockPortalController.Object);

            // System under test
            this.userRequestIPAddressController = new UserRequestIPAddressController();

            var serviceCollection = new ServiceCollection();

            serviceCollection.AddTransient <INavigationManager>(container => Mock.Of <INavigationManager>());
            serviceCollection.AddTransient <IApplicationStatusInfo>(container => Mock.Of <IApplicationStatusInfo>());
            serviceCollection.AddTransient <IHostSettingsService>(container => (IHostSettingsService)this.mockHostController.Object);
            Globals.DependencyProvider = serviceCollection.BuildServiceProvider();
        }
Esempio n. 25
0
        public void RepositoryBase_Get_Overload_Does_Not_Call_GetAllByScopeInternal_If_Cacheable_And_Cache_Valid()
        {
            // Arrange
            var cacheKey = CachingProvider.GetCacheKey(string.Format(Constants.CACHE_CatsKey + "_" + Constants.CACHE_ScopeModule + "_{0}", Constants.MODULE_ValidId));

            var mockHostController = MockComponentProvider.CreateNew <IHostController>();

            mockHostController.Setup(h => h.GetString("PerformanceSetting")).Returns("3");

            var mockCache = MockComponentProvider.CreateDataCacheProvider();

            mockCache.Setup(c => c.GetItem(cacheKey)).Returns(new List <CacheableCat>());

            var mockRepository = new Mock <RepositoryBase <CacheableCat> >();

            mockRepository.Protected().Setup <IEnumerable <CacheableCat> >("GetByScopeInternal", ItExpr.IsAny <object>());

            // Act
            var list = mockRepository.Object.Get <int>(Constants.MODULE_ValidId);

            // Assert
            mockRepository.Protected().Verify <IEnumerable <CacheableCat> >("GetByScopeInternal", Times.Never(), ItExpr.IsAny <object>());
        }
        public virtual void SetUp()
        {
            //Mock Repository and component factory
            MockRepository             = new MockRepository(MockBehavior.Default);
            ComponentFactory.Container = new SimpleContainer();

            // Setup Mock
            MockCache = MockComponentProvider.CreateNew <CachingProvider>();
            HostController.RegisterInstance(MockHostController.Object);

            MockPortalController = MockRepository.Create <IPortalController>();
            PortalController.SetTestableInstance(MockPortalController.Object);
            MockModuleController = MockRepository.Create <IModuleController>();
            ModuleController.SetTestableInstance(MockModuleController.Object);

            // Setup mock cache
            MockCacheCollection = new Hashtable();
            MockHostController.Setup(hc => hc.GetString("PerformanceSetting")).Returns("3");
            MockCache.Setup(c => c.Insert(It.IsAny <string>(), It.IsAny <object>())).Callback((string cacheKey, object itemToCache) => MockCacheCollection[cacheKey] = itemToCache);
            MockCache.Setup(c => c.Insert(It.IsAny <string>(), It.IsAny <object>(), It.IsAny <DNNCacheDependency>(), It.IsAny <DateTime>(), It.IsAny <TimeSpan>(), It.IsAny <CacheItemPriority>(), It.IsAny <CacheItemRemovedCallback>()))
            .Callback((string cacheKey, object itemToCache, DNNCacheDependency dcd, DateTime dt, TimeSpan ts, CacheItemPriority cip, CacheItemRemovedCallback circ) => MockCacheCollection[cacheKey] = itemToCache);
            MockCache.Setup(c => c.GetItem(It.IsAny <string>())).Returns((string cacheKey) => MockCacheCollection[cacheKey]);
        }
Esempio n. 27
0
        public void SetupMockServices()
        {
            MockComponentProvider.CreateDataCacheProvider();

            this._mockDataService      = new Mock <Entities.Portals.Data.IDataService>();
            this._mockDataProvider     = MockComponentProvider.CreateDataProvider();
            this._mockPortalController = new Mock <IPortalController>();
            this._mockUserController   = new Mock <IUserController>();
            this._mockMembership       = MockComponentProvider.CreateNew <MembershipProvider>();

            this._mockDataProvider.Setup(d => d.GetProviderPath()).Returns(string.Empty);
            this._mockDataProvider.Setup(d => d.GetPortals(It.IsAny <string>())).Returns <string>(GetPortalsCallBack);
            this._mockDataProvider.Setup(d => d.GetUser(It.IsAny <int>(), It.IsAny <int>())).Returns(GetUser);
            this._mockDataService.Setup(ds => ds.GetPortalGroups()).Returns(this.GetPortalGroups);
            Entities.Portals.Data.DataService.RegisterInstance(this._mockDataService.Object);

            this._mockMembership.Setup(m => m.PasswordRetrievalEnabled).Returns(true);
            this._mockMembership.Setup(m => m.GetUser(It.IsAny <int>(), It.IsAny <int>())).Returns((int portalId, int userId) => GetUserByIdCallback(portalId, userId));

            this._mockJwtDataService = new Mock <IDataService>();
            this._mockJwtDataService.Setup(x => x.GetTokenById(It.IsAny <string>())).Returns((string sid) => GetPersistedToken(sid));
            DataService.RegisterInstance(this._mockJwtDataService.Object);

            PortalController.SetTestableInstance(this._mockPortalController.Object);
            this._mockPortalController.Setup(x => x.GetPortal(It.IsAny <int>())).Returns(
                new PortalInfo {
                PortalID = 0, PortalGroupID = -1, UserTabId = 55
            });
            this._mockPortalController.Setup(x => x.GetPortalSettings(It.IsAny <int>())).Returns((int portalId) => new Dictionary <string, string>());
            this._mockPortalController.Setup(x => x.GetCurrentPortalSettings()).Returns(() => new PortalSettings());

            UserController.SetTestableInstance(this._mockUserController.Object);
            this._mockUserController.Setup(x => x.GetUserById(It.IsAny <int>(), It.IsAny <int>())).Returns(
                (int portalId, int userId) => GetUserByIdCallback(portalId, userId));

            // _mockUserController.Setup(x => x.ValidateUser(It.IsAny<UserInfo>(), It.IsAny<int>(), It.IsAny<bool>())).Returns(UserValidStatus.VALID);
        }
        public void SetUp()
        {
            this.mockCache        = MockComponentProvider.CreateNew <CachingProvider>();
            this.mockDataProvider = MockComponentProvider.CreateDataProvider();
            this.mockSearchHelper = new Mock <Services.Search.Internals.ISearchHelper>();

            Services.Search.Internals.SearchHelper.SetTestableInstance(this.mockSearchHelper.Object);

            this.mockSearchHelper.Setup(x => x.GetSearchTypeByName(It.IsAny <string>())).Returns <string>(
                (string searchTypeName) => new SearchType {
                SearchTypeName = searchTypeName, SearchTypeId = ModuleSearchTypeId
            });

            var serviceCollection         = new ServiceCollection();
            var mockApplicationStatusInfo = new Mock <IApplicationStatusInfo>();

            mockApplicationStatusInfo.Setup(info => info.Status).Returns(UpgradeStatus.Install);

            serviceCollection.AddTransient <INavigationManager>(container => Mock.Of <INavigationManager>());
            serviceCollection.AddTransient <IApplicationStatusInfo>(container => mockApplicationStatusInfo.Object);
            serviceCollection.AddTransient <IHostSettingsService, HostController>();

            Globals.DependencyProvider = serviceCollection.BuildServiceProvider();
        }
Esempio n. 29
0
 public void SetUp()
 {
     //Register MockCachingProvider
     mockCache = MockComponentProvider.CreateNew <CachingProvider>();
     MockComponentProvider.CreateDataProvider().Setup(c => c.GetProviderPath()).Returns(String.Empty);
 }
        private void SetupDataProvider()
        {
            _dataProvider.Setup(d => d.GetProviderPath()).Returns("");

            _dtRedirections = new DataTable("Redirections");
            var pkCol = _dtRedirections.Columns.Add("Id", typeof(int));

            _dtRedirections.Columns.Add("PortalId", typeof(int));
            _dtRedirections.Columns.Add("Name", typeof(string));
            _dtRedirections.Columns.Add("Type", typeof(int));
            _dtRedirections.Columns.Add("SortOrder", typeof(int));
            _dtRedirections.Columns.Add("SourceTabId", typeof(int));
            _dtRedirections.Columns.Add("IncludeChildTabs", typeof(bool));
            _dtRedirections.Columns.Add("TargetType", typeof(int));
            _dtRedirections.Columns.Add("TargetValue", typeof(object));
            _dtRedirections.Columns.Add("Enabled", typeof(bool));

            _dtRedirections.PrimaryKey = new[] { pkCol };

            _dtRules = new DataTable("Rules");
            var pkCol1 = _dtRules.Columns.Add("Id", typeof(int));

            _dtRules.Columns.Add("RedirectionId", typeof(int));
            _dtRules.Columns.Add("Capability", typeof(string));
            _dtRules.Columns.Add("Expression", typeof(string));

            _dtRules.PrimaryKey = new[] { pkCol1 };

            _dataProvider.Setup(d =>
                                d.SaveRedirection(It.IsAny <int>(),
                                                  It.IsAny <int>(),
                                                  It.IsAny <string>(),
                                                  It.IsAny <int>(),
                                                  It.IsAny <int>(),
                                                  It.IsAny <int>(),
                                                  It.IsAny <bool>(),
                                                  It.IsAny <int>(),
                                                  It.IsAny <object>(),
                                                  It.IsAny <bool>(),
                                                  It.IsAny <int>())).Returns <int, int, string, int, int, int, bool, int, object, bool, int>(
                (id, portalId, name, type, sortOrder, sourceTabId, includeChildTabs, targetType, targetValue, enabled, userId) =>
            {
                if (id == -1)
                {
                    if (_dtRedirections.Rows.Count == 0)
                    {
                        id = 1;
                    }
                    else
                    {
                        id = Convert.ToInt32(_dtRedirections.Select("", "Id Desc")[0]["Id"]) + 1;
                    }

                    var row                 = _dtRedirections.NewRow();
                    row["Id"]               = id;
                    row["PortalId"]         = portalId;
                    row["name"]             = name;
                    row["type"]             = type;
                    row["sortOrder"]        = sortOrder;
                    row["sourceTabId"]      = sourceTabId;
                    row["includeChildTabs"] = includeChildTabs;
                    row["targetType"]       = targetType;
                    row["targetValue"]      = targetValue;
                    row["enabled"]          = enabled;

                    _dtRedirections.Rows.Add(row);
                }
                else
                {
                    var rows = _dtRedirections.Select("Id = " + id);
                    if (rows.Length == 1)
                    {
                        var row = rows[0];

                        row["name"]             = name;
                        row["type"]             = type;
                        row["sortOrder"]        = sortOrder;
                        row["sourceTabId"]      = sourceTabId;
                        row["includeChildTabs"] = includeChildTabs;
                        row["targetType"]       = targetType;
                        row["targetValue"]      = targetValue;
                        row["enabled"]          = enabled;
                    }
                }

                return(id);
            });

            _dataProvider.Setup(d => d.GetRedirections(It.IsAny <int>())).Returns <int>(GetRedirectionsCallBack);
            _dataProvider.Setup(d => d.DeleteRedirection(It.IsAny <int>())).Callback <int>((id) =>
            {
                var rows = _dtRedirections.Select("Id = " + id);
                if (rows.Length == 1)
                {
                    _dtRedirections.Rows.Remove(rows[0]);
                }
            });

            _dataProvider.Setup(d => d.SaveRedirectionRule(It.IsAny <int>(),
                                                           It.IsAny <int>(),
                                                           It.IsAny <string>(),
                                                           It.IsAny <string>())).Callback <int, int, string, string>((id, rid, capbility, expression) =>
            {
                if (id == -1)
                {
                    if (_dtRules.Rows.Count == 0)
                    {
                        id = 1;
                    }
                    else
                    {
                        id = Convert.ToInt32(_dtRules.Select("", "Id Desc")[0]["Id"]) + 1;
                    }

                    var row              = _dtRules.NewRow();
                    row["Id"]            = id;
                    row["RedirectionId"] = rid;
                    row["capability"]    = capbility;
                    row["expression"]    = expression;

                    _dtRules.Rows.Add(row);
                }
                else
                {
                    var rows = _dtRules.Select("Id = " + id);
                    if (rows.Length == 1)
                    {
                        var row = rows[0];

                        row["capability"] = capbility;
                        row["expression"] = expression;
                    }
                }
            });

            _dataProvider.Setup(d => d.GetRedirectionRules(It.IsAny <int>())).Returns <int>(GetRedirectionRulesCallBack);
            _dataProvider.Setup(d => d.DeleteRedirectionRule(It.IsAny <int>())).Callback <int>((id) =>
            {
                var rows = _dtRules.Select("Id = " + id);
                if (rows.Length == 1)
                {
                    _dtRules.Rows.Remove(rows[0]);
                }
            });

            _dataProvider.Setup(d => d.GetPortals(It.IsAny <string>())).Returns <string>(GetPortalsCallBack);
            _dataProvider.Setup(d => d.GetPortal(It.IsAny <int>(), It.IsAny <string>())).Returns <int, string>(GetPortalCallBack);
            _dataProvider.Setup(d => d.GetTabs(It.IsAny <int>())).Returns <int>(GetTabsCallBack);
            _dataProvider.Setup(d => d.GetTabModules(It.IsAny <int>())).Returns <int>(GetTabModulesCallBack);
            _dataProvider.Setup(d => d.GetPortalSettings(It.IsAny <int>(), It.IsAny <string>())).Returns <int, string>(GetPortalSettingsCallBack);
            _dataProvider.Setup(d => d.GetAllRedirections()).Returns(GetAllRedirectionsCallBack);

            var portalDataService = MockComponentProvider.CreateNew <DotNetNuke.Entities.Portals.Data.IDataService>();

            portalDataService.Setup(p => p.GetPortalGroups()).Returns(GetPortalGroupsCallBack);
        }