public void FindById_MatchingRecordAbsent_ReturnsNull() { // Arrange var filePath = System.IO.Path.Combine(Utilities.IO.UncPath.GetApplicationDirectory(), "[Foundation].[Article].json"); Utilities.IO.File.Delete(filePath); var articleRepository = new ArticleRepository(); // Act var result = articleRepository.FindById(Guid.NewGuid()); // Assert Assert.IsNull(result); }
public void FindById_MatchingRecordPresent_ReturnsInstance() { // Arrange var count = 10; string filePath = null; try { var articles = new List <Article>(); for (var i = 0; i < count; i++) { articles.Add(new Article { ApprovalStatus = 444, ApprovedBy = "Ryan", DateApproved = DateTime.Now, DateTime = DateTime.Now.AddDays(-1), Id = Guid.NewGuid(), Rating = 5, RelatesToId = Guid.NewGuid().ToString(), RelatesToType = "Test", ThreadId = Guid.NewGuid(), UserId = Guid.NewGuid().ToString(), WebsiteId = Guid.NewGuid() }); } var serialisedArticles = JsonConvert.SerializeObject(articles); var serialisedArticleBytes = System.Text.Encoding.Unicode.GetBytes(serialisedArticles); filePath = System.IO.Path.Combine(Utilities.IO.UncPath.GetApplicationDirectory(), "[Foundation].[Article].json"); System.IO.File.WriteAllBytes(filePath, serialisedArticleBytes); var articleRepository = new ArticleRepository(); var sourceObject = articles.First(a => a != null); // Act var result = articleRepository.FindById(sourceObject.Id); // Assert var comparer = new Utilities.Collections.EqualityComparer <Article>(); Assert.IsTrue(comparer.Equals(sourceObject, result)); } finally { if (!string.IsNullOrWhiteSpace(filePath)) { Utilities.IO.File.Delete(filePath); } } }
public void Map_GivenIsValidArticle_ShouldMapCorrectly() { var articleMapper = new ArticleMapper(); var articleRepositry = new ArticleRepository(); var article = articleRepositry.FindById(1001); var articleDto = articleMapper.Map(article); articleDto.Should().BeEquivalentTo(article, options => options .Excluding(art => art.LastModified) .Excluding(art => art.LastModifiedBy) ); }
public object GetById(long id) { Article article = _articleRepository.FindById(id); return(_articleMapper.Map(article)); }
public void FindById_RelativeUpperDirectoryPathExplicitlySpecified_RepositoryLooksAtCorrectDirectory() { // Arrange var originalDirectoryPath = Configuration.ConfigurationSettings.DataDirectoryPath; var originalFilePath = System.IO.Path.Combine(originalDirectoryPath, "[Foundation].[Article].json"); string newAbsoluteDirectoryPath = null; string filePath = null; var count = 10; try { if (System.IO.File.Exists(originalFilePath)) { Utilities.IO.File.Delete(originalFilePath); } var newRelativeDirectoryPath = "..\\data444"; var combinedPath = System.IO.Path.Combine(Utilities.IO.UncPath.GetApplicationDirectory(), newRelativeDirectoryPath); newAbsoluteDirectoryPath = System.IO.Path.GetFullPath(combinedPath); if (System.IO.Directory.Exists(newAbsoluteDirectoryPath)) { Utilities.IO.Directory.Delete(newAbsoluteDirectoryPath); } Utilities.IO.Directory.Create(newAbsoluteDirectoryPath); Configuration.ConfigurationSettings.DataDirectoryPath = newRelativeDirectoryPath; var articles = new List <Article>(); for (var i = 0; i < count; i++) { articles.Add(new Article { ApprovalStatus = 444, ApprovedBy = "Ryan", DateApproved = DateTime.Now, DateTime = DateTime.Now.AddDays(-1), Id = Guid.NewGuid(), Rating = 5, RelatesToId = Guid.NewGuid().ToString(), RelatesToType = "Test", ThreadId = Guid.NewGuid(), UserId = Guid.NewGuid().ToString(), WebsiteId = Guid.NewGuid() }); } var serialisedArticles = JsonConvert.SerializeObject(articles); var serialisedArticleBytes = System.Text.Encoding.Unicode.GetBytes(serialisedArticles); filePath = System.IO.Path.Combine(newAbsoluteDirectoryPath, "[Foundation].[Article].json"); System.IO.File.WriteAllBytes(filePath, serialisedArticleBytes); var articleRepository = new ArticleRepository(); var sourceObject = articles.First(a => a != null); // Act var result = articleRepository.FindById(sourceObject.Id); // Assert var comparer = new Utilities.Collections.EqualityComparer <Article>(); Assert.IsTrue(comparer.Equals(sourceObject, result)); } finally { if (!string.IsNullOrWhiteSpace(filePath)) { Utilities.IO.File.Delete(filePath); } if (!string.IsNullOrWhiteSpace(newAbsoluteDirectoryPath)) { Utilities.IO.Directory.Delete(newAbsoluteDirectoryPath); } Configuration.ConfigurationSettings.DataDirectoryPath = originalDirectoryPath; } }
public void FindById_DataHasParentItem_ParentItemPresentInObject() { // Arrange string filePath = null; try { var parentArticle = new Article { ApprovalStatus = 444, ApprovedBy = "Ryan", DateApproved = DateTime.Now, DateTime = DateTime.Now.AddDays(-1), Id = Guid.NewGuid(), Rating = 5, RelatesToId = Guid.NewGuid().ToString(), RelatesToType = "Test", ThreadId = Guid.NewGuid(), UserId = Guid.NewGuid().ToString(), WebsiteId = Guid.NewGuid() }; var article = new Article { ApprovalStatus = 444, ApprovedBy = "Ryan", DateApproved = DateTime.Now, DateTime = DateTime.Now.AddDays(-1), Id = Guid.NewGuid(), Parent = parentArticle, ParentId = parentArticle.Id, Rating = 5, RelatesToId = Guid.NewGuid().ToString(), RelatesToType = "Test", ThreadId = Guid.NewGuid(), UserId = Guid.NewGuid().ToString(), WebsiteId = Guid.NewGuid() }; var articles = new List <Article>(); articles.Add(parentArticle); articles.Add(article); var serialisedArticles = JsonConvert.SerializeObject(articles, new JsonSerializerSettings { Formatting = Formatting.Indented, ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); var serialisedArticleBytes = System.Text.Encoding.Unicode.GetBytes(serialisedArticles); filePath = System.IO.Path.Combine(Utilities.IO.UncPath.GetApplicationDirectory(), "[Foundation].[Article].json"); System.IO.File.WriteAllBytes(filePath, serialisedArticleBytes); var articleRepository = new ArticleRepository(); // Act var result = articleRepository.FindById(article.Id); // Assert var comparer = new Utilities.Collections.EqualityComparer <Article>(); Assert.IsTrue(comparer.Equals(article, result)); Assert.IsTrue(comparer.Equals(article.Parent, parentArticle)); } finally { if (!string.IsNullOrWhiteSpace(filePath)) { Utilities.IO.File.Delete(filePath); } } }