Exemple #1
0
        /// <summary>
        /// Loads the wiki pages associated with a certain account.
        /// </summary>
        /// <param name="account">The <see cref="WikiAccount"/> the pages are associated with.</param>
        /// <returns>
        /// A List of all found <see cref="Wikipage"/>s in the store.
        /// </returns>
        /// <exception cref="ArgumentNullException">Is thrown when <paramref name="account"/> is a <see langword="null"/> reference.</exception>
        public List <Wikipage> LoadWikiPages(WikiAccount account)
        {
            if (account == null)
            {
                throw new ArgumentNullException("account", "The account cannot be null.");
            }

            List <Wikipage> loadedPages = new List <Wikipage>();

            List <string> identifiers;

            try
            {
                identifiers = (List <string>)repository.GetIdentifiers();
            }
            catch (WikiRepositoryException)
            {
                identifiers = new List <string>();
            }

            foreach (string identifier in identifiers)
            {
                Wikipage loadedPage = repository.Load <Wikipage>(identifier);
                if (loadedPage != null)
                {
                    loadedPages.Add(loadedPage);
                }
            }

            return(loadedPages);
        }
Exemple #2
0
        public void Constructor_CreationWithValidInput_CreationIsDoneWithoutErrors()
        {
            WikiAccount account = new WikiAccount();

            account.AccountName = "Test Account";
            Wikipage pageToTest = new Wikipage(account);

            Assert.IsNotNull(pageToTest);
            Assert.IsTrue(pageToTest.IsAssociatedWithAnAccount());
            Assert.AreEqual(pageToTest.GetAssociatedAccountName(), account.AccountName);
        }
Exemple #3
0
        public void Delete_SaveAndThenDeleteAWikiPage_ShouldBeDoneWithoutErrors()
        {
            WikiAccount account     = new WikiAccount();
            Wikipage    pageToStore = new Wikipage(account);

            pageToStore.WikiPageName    = "delete.php";
            pageToStore.WikiPageContent = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore ...";

            IWikiRepository repository     = WikiRepositoryFactory.CreateRepository(WikiRepositoryType.FileRepository);
            string          pageIdentifier = repository.Store <Wikipage>(pageToStore);

            repository.Delete(pageIdentifier);
        }
Exemple #4
0
        public void Store_StoreAWikiPage_BusinessObjectShouldBeStoredWithoutErrors()
        {
            WikiAccount account = new WikiAccount();
            Wikipage    page    = new Wikipage(account);

            page.WikiPageContent = "ölkjölkfsajdölkjafsd";
            page.WikiPageName    = "start.php";

            IWikiRepository repository = WikiRepositoryFactory.CreateRepository(WikiRepositoryType.FileRepository);
            string          identifier = repository.Store <Wikipage>(page);

            Assert.IsFalse(String.IsNullOrEmpty(identifier));
            Assert.AreEqual(identifier, page.ObjectIdentifier);
        }
Exemple #5
0
        public void Store_StoreAModifiedWikiAccount_IdentifierShouldStayTheSame()
        {
            WikiAccount account     = new WikiAccount();
            Wikipage    pageToStore = new Wikipage(account);

            pageToStore.WikiPageName    = "first.php";
            pageToStore.WikiPageContent = "Lorem ipsum dolor sit amet";

            IWikiRepository repository      = WikiRepositoryFactory.CreateRepository(WikiRepositoryType.FileRepository);
            string          firstIdentifier = repository.Store <Wikipage>(pageToStore);

            pageToStore.WikiPageContent = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr," +
                                          " sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.";
            string secondIdentifier = repository.Store <Wikipage>(pageToStore);

            Assert.AreEqual(firstIdentifier, secondIdentifier);
        }
Exemple #6
0
        public void Load_LoadAPersistedWikiPage_ShouldBeLoadedWithoutErrors()
        {
            WikiAccount account     = new WikiAccount();
            Wikipage    pageToStore = new Wikipage(account);

            pageToStore.WikiPageName    = "first.php";
            pageToStore.WikiPageContent = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr ...";

            IWikiRepository repository     = WikiRepositoryFactory.CreateRepository(WikiRepositoryType.FileRepository);
            string          pageIdentifier = repository.Store <Wikipage>(pageToStore);

            repository = null;
            repository = WikiRepositoryFactory.CreateRepository(WikiRepositoryType.FileRepository);

            Wikipage loadedPage = repository.Load <Wikipage>(pageIdentifier);

            Assert.AreEqual(pageToStore, loadedPage);
        }
Exemple #7
0
 public void Constructor_CreationWithInvalidInput_ArgumentNullExceptionIsThrown()
 {
     Wikipage pageToTest = new Wikipage(null);
 }