/// <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); }
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); }
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); }
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); }
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); }
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); }
public void Constructor_CreationWithInvalidInput_ArgumentNullExceptionIsThrown() { Wikipage pageToTest = new Wikipage(null); }