Example #1
0
        public void AddRedirection_GetDestination_RemovePageFromRedirections_Clear()
        {
            ICacheProviderV30 prov = GetProvider();

            Assert.IsNull(prov.GetRedirectionDestination("Page"), "No redirection should be in cache");

            prov.AddRedirection("Page", "NS.OtherPage");
            prov.AddRedirection("NS.OtherPage", "Page3");
            prov.AddRedirection("ThirdPage", "Page");

            Assert.AreEqual("NS.OtherPage", prov.GetRedirectionDestination("Page"), "Wrong destination");
            Assert.AreEqual("Page3", prov.GetRedirectionDestination("NS.OtherPage"), "Wrong destination");
            Assert.AreEqual("Page", prov.GetRedirectionDestination("ThirdPage"), "Wrong destination");

            prov.RemovePageFromRedirections("Page");

            Assert.IsNull(prov.GetRedirectionDestination("Page"), "No redirection should be in cache for Page");
            Assert.AreEqual("Page3", prov.GetRedirectionDestination("NS.OtherPage"), "Wrong destination");
            Assert.IsNull(prov.GetRedirectionDestination("Page"), "No redirection should be in cache for ThirdPage");

            prov.ClearRedirections();

            Assert.IsNull(prov.GetRedirectionDestination("Page"), "No redirection should be in cache");
            Assert.IsNull(prov.GetRedirectionDestination("NS.OtherPage"), "No redirection should be in cache");
            Assert.IsNull(prov.GetRedirectionDestination("Page"), "No redirection should be in cache");
        }
Example #2
0
        public void CutCache()
        {
            ICacheProviderV30 prov = GetProvider();

            PageInfo    p1 = new PageInfo("Page1", MockPagesProvider(), DateTime.Now);
            PageInfo    p2 = new PageInfo("Page2", MockPagesProvider(), DateTime.Now);
            PageInfo    p3 = new PageInfo("Page3", MockPagesProvider(), DateTime.Now);
            PageContent c1 = new PageContent(p1, "Page 1", "admin", DateTime.Now, "Comment", "Content", null, null);
            PageContent c2 = new PageContent(p2, "Page 2", "user", DateTime.Now, "", "Blah", null, null);
            PageContent c3 = new PageContent(p3, "Page 3", "admin", DateTime.Now, "", "Content", null, null);

            Assert.AreEqual(0, prov.PageCacheUsage, "Wrong cache usage");

            prov.SetPageContent(p1, c1);
            prov.SetPageContent(p2, c2);
            prov.SetPageContent(p3, c3);
            prov.SetFormattedPageContent(p1, "Content 1");
            prov.SetFormattedPageContent(p3, "Content 2");

            prov.GetPageContent(p3);

            Assert.AreEqual(3, prov.PageCacheUsage, "Wrong cache usage");

            prov.CutCache(2);

            Assert.AreEqual(1, prov.PageCacheUsage, "Wrong cache usage");

            Assert.IsNotNull(prov.GetPageContent(p3), "GetPageContent should not return null");
            Assert.IsNull(prov.GetPageContent(p2), "GetPageContent should not null");
            Assert.IsNull(prov.GetPageContent(p1), "GetPageContent should not null");

            Assert.IsNotNull(prov.GetFormattedPageContent(p3), "GetFormattedPageContent should not return null");
            Assert.IsNull(prov.GetFormattedPageContent(p2), "GetFormattedPageContent should not null");
            Assert.IsNull(prov.GetFormattedPageContent(p1), "GetFormattedPageContent should not null");
        }
Example #3
0
        public void CancelEditingSession_IsPageBeingEdited()
        {
            ICacheProviderV30 prov = GetProvider();

            prov.RenewEditingSession("Page", "User");

            Assert.IsFalse(prov.IsPageBeingEdited("Page", "User"), "IsPageBeingEditing should return false");
            Assert.IsTrue(prov.IsPageBeingEdited("Page", "User2"), "IsPageBeingEditing should return true");

            prov.CancelEditingSession("Page", "User");

            Assert.IsFalse(prov.IsPageBeingEdited("Page", "User"), "IsPageBeingEditing should return false");
            Assert.IsFalse(prov.IsPageBeingEdited("Page", "User2"), "IsPageBeingEditing should return false");

            prov.RenewEditingSession("Page", "User1");
            prov.RenewEditingSession("Page", "User2");

            prov.CancelEditingSession("Page", "User1");

            Assert.IsTrue(prov.IsPageBeingEdited("Page", "User1"), "IsPageBeingEditing should return true");
            Assert.IsFalse(prov.IsPageBeingEdited("Page", "User2"), "IsPageBeingEditing should return false");

            prov.CancelEditingSession("Page", "User2");

            Assert.IsFalse(prov.IsPageBeingEdited("Page", "User2"), "IsPageBeingEditing should return false");
        }
Example #4
0
        public void SetFormattedPageContent_NullContent()
        {
            ICacheProviderV30 prov = GetProvider();

            PageInfo p1 = new PageInfo("Page1", MockPagesProvider(), DateTime.Now);

            prov.SetFormattedPageContent(p1, null);
        }
Example #5
0
        public void Init()
        {
            ICacheProviderV30 prov = GetProvider();

            prov.Init(MockHost(), "");

            Assert.IsNotNull(prov.Information, "Information should not be null");
        }
        public void SetFormattedPageContent_NullContent()
        {
            ICacheProviderV30 prov = GetProvider();

            PageInfo p1 = new PageInfo("Page1", MockPagesProvider(), DateTime.Now);

            Assert.That(() => prov.SetFormattedPageContent(p1, null), Throws.ArgumentNullException);
        }
Example #7
0
        public void SetPageContent_NullContent()
        {
            ICacheProviderV30 prov = GetProvider();

            PageInfo    p1 = new PageInfo("Page1", MockPagesProvider(), DateTime.Now);
            PageContent c1 = new PageContent(p1, "Page 1", "admin", DateTime.Now, "Comment", "Content", null, null);

            prov.SetPageContent(p1, null);
        }
        public void SetPageContent_NullPage()
        {
            ICacheProviderV30 prov = GetProvider();

            PageInfo    p1 = new PageInfo("Page1", MockPagesProvider(), DateTime.Now);
            PageContent c1 = new PageContent(p1, "Page 1", "admin", DateTime.Now, "Comment", "Content", null, null);

            Assert.That(() => prov.SetPageContent(null, c1), Throws.ArgumentNullException);
        }
Example #9
0
        public void ClearPseudoCache()
        {
            ICacheProviderV30 prov = GetProvider();

            prov.SetPseudoCacheValue("Test", "Value");
            prov.SetPseudoCacheValue("222", "VVV");

            prov.ClearPseudoCache();

            Assert.IsNull(prov.GetPseudoCacheValue("Test"), "GetPseudoCacheValue should return null");
            Assert.IsNull(prov.GetPseudoCacheValue("222"), "GetPseudoCacheValue should return null");
        }
Example #10
0
        public void SetOnlineUsers_GetOnlineUsers()
        {
            ICacheProviderV30 prov = GetProvider();

            prov.OnlineUsers = 100;
            Assert.AreEqual(100, prov.OnlineUsers, "Wrong online users count");

            prov.OnlineUsers++;
            Assert.AreEqual(101, prov.OnlineUsers, "Wrong online users count");

            prov.OnlineUsers--;
            Assert.AreEqual(100, prov.OnlineUsers, "Wrong online users count");
        }
Example #11
0
        public void RenewEditingSession_IsPageBeingEdited()
        {
            ICacheProviderV30 prov = GetProvider();

            prov.RenewEditingSession("Page", "User");

            Assert.IsFalse(prov.IsPageBeingEdited("Page", "User"), "IsPageBeingEditing should return false");
            Assert.IsTrue(prov.IsPageBeingEdited("Page", "User2"), "IsPageBeingEditing should return true");
            Assert.IsFalse(prov.IsPageBeingEdited("Page2", "User"), "IsPageBeingEditing should return false");
            Assert.IsFalse(prov.IsPageBeingEdited("Page2", "User2"), "IsPageBeingEditing should return false");

            // Wait for timeout to expire
            System.Threading.Thread.Sleep(6500);
            Assert.IsFalse(prov.IsPageBeingEdited("Page", "User2"), "IsPageBeingEdited should return false");
        }
Example #12
0
        public void SetPseudoCacheValue_GetPseudoCacheValue()
        {
            ICacheProviderV30 prov = GetProvider();

            prov.SetPseudoCacheValue("Name", "Value");
            prov.SetPseudoCacheValue("Test", "Blah");

            Assert.AreEqual("Value", prov.GetPseudoCacheValue("Name"), "Wrong pseudo-cache value");
            Assert.AreEqual("Blah", prov.GetPseudoCacheValue("Test"), "Wrong pseudo-cache value");
            Assert.IsNull(prov.GetPseudoCacheValue("Inexistent"), "Pseudo-cache value should be null");

            prov.SetPseudoCacheValue("Name", null);
            prov.SetPseudoCacheValue("Test", "");

            Assert.IsNull(prov.GetPseudoCacheValue("Name"), "Pseudo-cache value should be null");
            Assert.AreEqual("", prov.GetPseudoCacheValue("Test"), "Wrong pseudo-cache value");
        }
Example #13
0
        public void WhosEditing()
        {
            ICacheProviderV30 prov = GetProvider();

            prov.RenewEditingSession("Page", "User1");
            prov.RenewEditingSession("Page", "User2");

            Assert.AreEqual("", prov.WhosEditing("Inexistent"), "Wrong result (should be empty)");

            Assert.AreEqual("User1", prov.WhosEditing("Page"), "Wrong user");

            prov.CancelEditingSession("Page", "User1");

            Assert.AreEqual("User2", prov.WhosEditing("Page"), "Wrong user");

            prov.CancelEditingSession("Page", "User2");

            Assert.AreEqual("", prov.WhosEditing("Page"), "Wrong user");
        }
Example #14
0
        public void SetPageContent_GetPageContent()
        {
            ICacheProviderV30 prov = GetProvider();

            PageInfo    p1 = new PageInfo("Page1", MockPagesProvider(), DateTime.Now);
            PageInfo    p2 = new PageInfo("Page2", MockPagesProvider(), DateTime.Now);
            PageContent c1 = new PageContent(p1, "Page 1", "admin", DateTime.Now, "Comment", "Content", new string[] { "test", "page" }, null);
            PageContent c2 = new PageContent(p2, "Page 2", "user", DateTime.Now, "", "Blah", null, null);
            PageContent c3 = new PageContent(p2, "Page 5", "john", DateTime.Now, "Comm.", "Blah 222", null, "Description");

            Assert.AreEqual(0, prov.PageCacheUsage, "Wrong cache usage");

            prov.SetPageContent(p1, c1);
            prov.SetPageContent(p2, c2);
            prov.SetPageContent(p2, c3);

            Assert.AreEqual(2, prov.PageCacheUsage, "Wrong cache usage");

            PageContent res = prov.GetPageContent(p1);

            Assert.AreEqual(c1.PageInfo, res.PageInfo, "Wrong page info");
            Assert.AreEqual(c1.Title, res.Title, "Wrong title");
            Assert.AreEqual(c1.User, res.User, "Wrong user");
            Assert.AreEqual(c1.LastModified, res.LastModified, "Wrong date/time");
            Assert.AreEqual(c1.Comment, res.Comment, "Wrong comment");
            Assert.AreEqual(c1.Content, res.Content, "Wrong content");
            Assert.AreEqual(2, c1.Keywords.Length, "Wrong keyword count");
            Assert.AreEqual("test", c1.Keywords[0], "Wrong keyword");
            Assert.AreEqual("page", c1.Keywords[1], "Wrong keyword");
            Assert.IsNull(c1.Description, "Description should be null");

            res = prov.GetPageContent(p2);
            Assert.AreEqual(c3.PageInfo, res.PageInfo, "Wrong page info");
            Assert.AreEqual(c3.Title, res.Title, "Wrong title");
            Assert.AreEqual(c3.User, res.User, "Wrong user");
            Assert.AreEqual(c3.LastModified, res.LastModified, "Wrong date/time");
            Assert.AreEqual(c3.Comment, res.Comment, "Wrong comment");
            Assert.AreEqual(c3.Content, res.Content, "Wrong content");
            Assert.AreEqual(0, c3.Keywords.Length, "Keywords should be empty");
            Assert.AreEqual("Description", c3.Description, "Wrong description");

            Assert.IsNull(prov.GetPageContent(new PageInfo("Blah", MockPagesProvider(), DateTime.Now)), "GetPageContent should return null");
        }
Example #15
0
        public void SetFormattedPageContent_GetFormattedPageContent()
        {
            ICacheProviderV30 prov = GetProvider();

            PageInfo p1 = new PageInfo("Page1", MockPagesProvider(), DateTime.Now);
            PageInfo p2 = new PageInfo("Page2", MockPagesProvider(), DateTime.Now);

            Assert.AreEqual(0, prov.PageCacheUsage, "Wrong cache usage");

            prov.SetFormattedPageContent(p1, "Content 1");
            prov.SetFormattedPageContent(p2, "Content 2");
            prov.SetFormattedPageContent(p1, "Content 1 mod");

            Assert.AreEqual(0, prov.PageCacheUsage, "Wrong cache usage");

            Assert.AreEqual("Content 1 mod", prov.GetFormattedPageContent(p1), "Wrong content");
            Assert.AreEqual("Content 2", prov.GetFormattedPageContent(p2), "Wrong content");

            Assert.IsNull(prov.GetFormattedPageContent(new PageInfo("Blah", MockPagesProvider(), DateTime.Now)), "GetFormattedPageContent should return null");
        }
Example #16
0
        public void SetFormattedPageContent_NullPage()
        {
            ICacheProviderV30 prov = GetProvider();

            prov.SetFormattedPageContent(null, "Content");
        }
Example #17
0
        public void Init_NullConfig()
        {
            ICacheProviderV30 prov = GetProvider();

            prov.Init(MockHost(), null);
        }
Example #18
0
        public void RemovePageFromRedirections_InvalidName(string name)
        {
            ICacheProviderV30 prov = GetProvider();

            prov.RemovePageFromRedirections(name);
        }
Example #19
0
        public void GetRedirectionDestination_InvalidSource(string src)
        {
            ICacheProviderV30 prov = GetProvider();

            prov.GetRedirectionDestination(src);
        }
Example #20
0
        public void AddRedirection_InvalidParameters(string src, string dest)
        {
            ICacheProviderV30 prov = GetProvider();

            prov.AddRedirection(src, dest);
        }
Example #21
0
        public void WhosEditing_InvalidPage(string p)
        {
            ICacheProviderV30 prov = GetProvider();

            prov.WhosEditing(p);
        }
Example #22
0
        public void RemovePageContent_NullPage()
        {
            ICacheProviderV30 prov = GetProvider();

            prov.RemovePage(null);
        }
Example #23
0
        public void GetPseudoCacheValue_InvalidName(string n)
        {
            ICacheProviderV30 prov = GetProvider();

            prov.GetPseudoCacheValue(n);
        }
Example #24
0
        public void CancelEditingSession_InvalidUser(string u)
        {
            ICacheProviderV30 prov = GetProvider();

            prov.CancelEditingSession("Page", u);
        }
Example #25
0
        public void CancelEditingSession_InvalidPage(string p)
        {
            ICacheProviderV30 prov = GetProvider();

            prov.CancelEditingSession(p, "User");
        }
Example #26
0
        public void IsPageBeingEdited_InvalidUser(string u)
        {
            ICacheProviderV30 prov = GetProvider();

            prov.IsPageBeingEdited("Page", u);
        }
Example #27
0
        public void IsPageBeingEdited_InvalidPage(string p)
        {
            ICacheProviderV30 prov = GetProvider();

            prov.IsPageBeingEdited(p, "User");
        }
Example #28
0
        public void CutCache_InvalidSize(int s)
        {
            ICacheProviderV30 prov = GetProvider();

            prov.CutCache(s);
        }
Example #29
0
        /// <summary>
        /// Loads Providers from an assembly.
        /// </summary>
        /// <param name="assembly">The path of the Assembly to load the Providers from.</param>
        /// <param name="users">The Users Providers.</param>
        /// <param name="files">The Files Providers.</param>
        /// <param name="pages">The Pages Providers.</param>
        /// <param name="formatters">The Formatter Providers.</param>
        /// <param name="cache">The Cache Providers.</param>
        /// <remarks>The Components returned are <b>not</b> initialized.</remarks>
        public static void LoadFrom(string assembly, out IUsersStorageProviderV30[] users, out IPagesStorageProviderV30[] pages,
                                    out IFilesStorageProviderV30[] files, out IFormatterProviderV30[] formatters, out ICacheProviderV30[] cache)
        {
            Assembly asm = null;

            try
            {
                //asm = Assembly.LoadFile(assembly);
                // This way the DLL is not locked and can be deleted at runtime
                asm = Assembly.Load(LoadAssemblyFromProvider(Path.GetFileName(assembly)));
            }
            catch
            {
                files      = new IFilesStorageProviderV30[0];
                users      = new IUsersStorageProviderV30[0];
                pages      = new IPagesStorageProviderV30[0];
                formatters = new IFormatterProviderV30[0];
                cache      = new ICacheProviderV30[0];

                Log.LogEntry("Unable to load assembly " + Path.GetFileNameWithoutExtension(assembly), EntryType.Error, Log.SystemUsername);
                return;
            }

            Type[] types = null;

            try
            {
                types = asm.GetTypes( );
            }
            catch (ReflectionTypeLoadException)
            {
                files      = new IFilesStorageProviderV30[0];
                users      = new IUsersStorageProviderV30[0];
                pages      = new IPagesStorageProviderV30[0];
                formatters = new IFormatterProviderV30[0];
                cache      = new ICacheProviderV30[0];

                Log.LogEntry("Unable to load providers from (probably v2) assembly " + Path.GetFileNameWithoutExtension(assembly), EntryType.Error, Log.SystemUsername);
                return;
            }

            List <IUsersStorageProviderV30> urs = new List <IUsersStorageProviderV30>( );
            List <IPagesStorageProviderV30> pgs = new List <IPagesStorageProviderV30>( );
            List <IFilesStorageProviderV30> fls = new List <IFilesStorageProviderV30>( );
            List <IFormatterProviderV30>    frs = new List <IFormatterProviderV30>( );
            List <ICacheProviderV30>        che = new List <ICacheProviderV30>( );

            Type[] interfaces;
            for (int i = 0; i < types.Length; i++)
            {
                // Avoid to load abstract classes as they cannot be instantiated
                if (types[i].IsAbstract)
                {
                    continue;
                }

                interfaces = types[i].GetInterfaces( );
                foreach (Type iface in interfaces)
                {
                    if (iface == typeof(IUsersStorageProviderV30))
                    {
                        IUsersStorageProviderV30 tmpu = CreateInstance <IUsersStorageProviderV30>(asm, types[i]);
                        if (tmpu != null)
                        {
                            urs.Add(tmpu);
                            Collectors.FileNames[tmpu.GetType( ).FullName] = assembly;
                        }
                    }
                    if (iface == typeof(IPagesStorageProviderV30))
                    {
                        IPagesStorageProviderV30 tmpp = CreateInstance <IPagesStorageProviderV30>(asm, types[i]);
                        if (tmpp != null)
                        {
                            pgs.Add(tmpp);
                            Collectors.FileNames[tmpp.GetType( ).FullName] = assembly;
                        }
                    }
                    if (iface == typeof(IFilesStorageProviderV30))
                    {
                        IFilesStorageProviderV30 tmpd = CreateInstance <IFilesStorageProviderV30>(asm, types[i]);
                        if (tmpd != null)
                        {
                            fls.Add(tmpd);
                            Collectors.FileNames[tmpd.GetType( ).FullName] = assembly;
                        }
                    }
                    if (iface == typeof(IFormatterProviderV30))
                    {
                        IFormatterProviderV30 tmpf = CreateInstance <IFormatterProviderV30>(asm, types[i]);
                        if (tmpf != null)
                        {
                            frs.Add(tmpf);
                            Collectors.FileNames[tmpf.GetType( ).FullName] = assembly;
                        }
                    }
                    if (iface == typeof(ICacheProviderV30))
                    {
                        ICacheProviderV30 tmpc = CreateInstance <ICacheProviderV30>(asm, types[i]);
                        if (tmpc != null)
                        {
                            che.Add(tmpc);
                            Collectors.FileNames[tmpc.GetType( ).FullName] = assembly;
                        }
                    }
                }
            }

            users      = urs.ToArray( );
            pages      = pgs.ToArray( );
            files      = fls.ToArray( );
            formatters = frs.ToArray( );
            cache      = che.ToArray( );
        }
Example #30
0
        public void Init_NullHost()
        {
            ICacheProviderV30 prov = GetProvider();

            prov.Init(null, "");
        }