public void When_UpdateBlogArticle_is_mapped_to_a_BlogArticle_then_the_User_is_retrieved_from_the_IUserProcess_and_added_to_the_BlogArticle() { const string title = "title"; const string content = "content"; var entity = BlogArticleCreator.CreateSingle(); BlogProcess .Expect(process => process.GetBlogArticle(entity.Id)) .Return(entity) .Repeat.Once(); BlogProcess.Replay(); var updateBlogArticleModel = new UpdateBlogArticleModel { Title = title, Content = content, }; var result = Mapper.Map(updateBlogArticleModel, entity.Id); Assert.AreEqual(title, result.Title); Assert.AreEqual(content, result.Content); BlogProcess.VerifyAllExpectations(); }
public void When_BlogArticle_is_mapped_to_a_BlogArticleDetailsModel_then_no_data_is_retrieved_from_process_classes() { BlogProcess .Expect(process => process.GetBlogArticle(Arg <Guid> .Is.Anything)) .Repeat.Never(); BlogProcess.Replay(); UserProcess .Expect(process => process.GetUser(Arg <Guid> .Is.Anything)) .Repeat.Never(); UserProcess.Replay(); var blogArticle = BlogArticleCreator.CreateSingle(); var user = UserCreator.CreateSingle(); blogArticle.AuthorId = user.Id; var result = Mapper.MapToDetail(blogArticle, user); Assert.AreEqual(blogArticle.Id, result.Id); Assert.AreEqual(blogArticle.ModificationDate, result.ModificationDate); Assert.AreEqual(blogArticle.PublishDate, result.PublishDate); Assert.AreEqual(blogArticle.Title, result.Title); Assert.AreEqual(blogArticle.Content, result.Content); Assert.AreEqual(blogArticle.CreationDate, result.CreationDate); Assert.AreEqual(user.Login.LoginName, result.AuthorName); }
public void When_Delete_is_called_with_an_Id_then_GetBlogArticle_on_IBlogArticleProcess_is_called_and_the_result_used_to_call_RemoveBlogArticle_on_IBlogArticleProcess() { var entity = BlogArticleCreator.CreateSingle(); BlogProcess .Expect(process => process.GetBlogArticle(entity.Id)) .Return(entity) .Repeat.Once(); BlogProcess .Expect(process => process.RemoveBlogArticle(entity)) .Repeat.Once(); BlogProcess.Replay(); var result = Controller.Delete(entity.Id).Result as RedirectToRouteResult; Assert.IsNotNull(result); var routeValues = result.RouteValues; Assert.AreEqual(1, routeValues.Count); foreach (var routeValue in routeValues) { Assert.AreEqual("action", routeValue.Key); Assert.AreEqual("Index", routeValue.Value); } BlogProcess.VerifyAllExpectations(); }
public void When_Edit_is_called_with_an_Id_then_GetBlogArticle_on_IBlogArticleProcess_is_called_and_the_result_is_mapped_with_BlogArticleMapper() { var entity = BlogArticleCreator.CreateSingle(); BlogProcess .Expect(process => process.GetBlogArticle(entity.Id)) .Return(entity) .Repeat.Once(); BlogProcess.Replay(); var updateModel = CreateUpdateBlogArticleModel(Guid.NewGuid()); BlogArticleMapper .Expect(mapper => mapper.MapToUpdate( Arg <BlogArticle> .Matches(settings => settings.Id == entity.Id))) .Return(updateModel) .Repeat.Once(); BlogArticleMapper.Replay(); var result = Controller.Edit(entity.Id).Result as ViewResult; Assert.IsNotNull(result); var model = result.Model as UpdateBlogArticleModel; Assert.IsNotNull(model); BlogProcess.VerifyAllExpectations(); BlogArticleMapper.VerifyAllExpectations(); }
public void When_BlogArticle_is_mapped_to_an_UpdateBlogArticleModel_then_all_corresponding_fields_are_mapped() { var blogArticle = BlogArticleCreator.CreateSingle(); var result = Mapper.MapToUpdate(blogArticle); Assert.AreEqual(blogArticle.Id, result.Id); Assert.AreEqual(blogArticle.Title, result.Title); Assert.AreEqual(blogArticle.Content, result.Content); }
public void When_GetBlogArticle_is_called_with_an_Id_and_there_is_no_BlogArticle_in_the_collection_with_that_Id_then_an_InvalidOperationException_is_thrown() { var blogArticles = BlogArticleCreator.CreateCollection(); var blogArticleId = Guid.NewGuid(); BandCatalog .Expect(catalog => catalog.BlogArticles) .Return(blogArticles) .Repeat.Once(); BandCatalog.Replay(); Repository.GetBlogArticle(blogArticleId); }
public void When_RemoveBlogArticle_is_called_with_a_BlogArticle_then_the_BlogArticle_is_removed_from_the_collection() { var blogArticle = BlogArticleCreator.CreateSingle(); BandCatalog .Expect(catalog => catalog.Remove(blogArticle)) .Repeat.Once(); BandCatalog.Replay(); Repository.RemoveBlogArticle(blogArticle); BandCatalog.VerifyAllExpectations(); }
public void When_Index_is_called_GetBlogArticles_on_IBlogProcess_is_called_and_the_result_is_mapped_with_BlogArticleMapper() { var user = UserCreator.CreateSingle(); var blogArticles = BlogArticleCreator.CreateCollection(); foreach (var blogArticle in blogArticles) { blogArticle.AuthorId = user.Id; } UserProcess .Expect(process => process.GetUser(user.Id)) .Return(user) .Repeat.Once(); UserProcess.Replay(); BlogProcess .Expect(process => process.GetBlogArticles()) .Return(blogArticles) .Repeat.Once(); BlogProcess.Replay(); var blogArticleDetailsModelcollection = CreateBlogArticleDetailsModelCollection(); BlogArticleMapper .Expect(mapper => mapper.Map( Arg <IEnumerable <BlogArticle> > .Matches(articles => blogArticles.All(blogArticle => articles.Any(article => article.Id == blogArticle.Id))), Arg <IEnumerable <User> > .Matches(users => users.Any(u => u == user)))) .Return(blogArticleDetailsModelcollection) .Repeat.Once(); BlogArticleMapper.Replay(); var result = Controller.Index().Result as ViewResult; Assert.IsNotNull(result); var model = result.Model as ItemListModel <BlogArticleDetailsModel>; Assert.IsNotNull(model); UserProcess.VerifyAllExpectations(); BlogProcess.VerifyAllExpectations(); BlogArticleMapper.VerifyAllExpectations(); }
public void When_RemoveBlogArticle_is_called_with_a_new_BlogArticle_then_RemoveBlogArticle_on_the_BandRepository_is_called_with_that_BlogArticle() { var article = BlogArticleCreator.CreateSingle(); BandRepository .Expect(repository => repository.RemoveBlogArticle(article)) .Repeat.Once(); BandRepository.Replay(); Process.RemoveBlogArticle(article); BandRepository.VerifyAllExpectations(); }
public void When_GetBlogArticle_is_called_with_a_valid_Guid_then_GetBlogArticle_on_the_BandRepository_is_called_with_that_Guid() { var article = BlogArticleCreator.CreateSingle(); BandRepository .Expect(repository => repository.GetBlogArticle(article.Id)) .Return(article) .Repeat.Once(); BandRepository.Replay(); Process.GetBlogArticle(article.Id); BandRepository.VerifyAllExpectations(); }
public void When_UpdateBlogArticle_is_called_with_a_BlogArticle_then_the_BlogArticle_is_updated_in_the_collection() { var blogArticle = BlogArticleCreator.CreateSingle(); BandCatalog .Expect(catalog => catalog.Update(blogArticle)) .Return(blogArticle) .Repeat.Once(); BandCatalog.Replay(); blogArticle = Repository.UpdateBlogArticle(blogArticle); Assert.IsNotNull(blogArticle); BandCatalog.VerifyAllExpectations(); }
public void When_GetAllBlogArticles_is_called_then_all_BlogArticles_are_retrieved_from_the_collection() { var blogArticles = BlogArticleCreator.CreateCollection(); BandCatalog .Expect(catalog => catalog.BlogArticles) .Return(blogArticles) .Repeat.Once(); BandCatalog.Replay(); var result = Repository.GetAllBlogArticles(); Assert.IsNotNull(result); Assert.AreEqual(blogArticles.Count(), result.Count()); BandCatalog.VerifyAllExpectations(); }
public void When_GetBlogArticle_is_called_with_an_Id_then_the_BlogArticle_with_the_corresponding_Id_is_retrieved_from_the_collection() { var blogArticles = BlogArticleCreator.CreateCollection(); var blogArticleId = blogArticles.ElementAt(2).Id; BandCatalog .Expect(catalog => catalog.BlogArticles) .Return(blogArticles) .Repeat.Once(); BandCatalog.Replay(); var blogArticle = Repository.GetBlogArticle(blogArticleId); Assert.IsNotNull(blogArticle); Assert.AreEqual(blogArticleId, blogArticle.Id); BandCatalog.VerifyAllExpectations(); }
public void When_Edit_is_called_with_a_model_then_Map_on_BlogArticleMapper_is_called_and_the_result_is_used_to_call_UpdateBlogArticle_on_IBlogArticleProcess_with() { var entity = BlogArticleCreator.CreateSingle(); BlogProcess .Expect(process => process.UpdateBlogArticle( Arg <BlogArticle> .Matches(settings => settings.Id == entity.Id))) .Return(entity) .Repeat.Once(); BlogProcess.Replay(); var updateModel = CreateUpdateBlogArticleModel(entity.Id); BlogArticleMapper .Expect(mapper => mapper.Map( Arg <UpdateBlogArticleModel> .Matches(m => m.Content == entity.Content && m.Title == entity.Title), Arg <Guid> .Matches(guid => guid == entity.Id))) .Return(entity) .Repeat.Once(); BlogArticleMapper.Replay(); var result = Controller.Edit(entity.Id, updateModel) as RedirectToRouteResult; Assert.IsNotNull(result); var routeValues = result.RouteValues; Assert.AreEqual(1, routeValues.Count); foreach (var routeValue in routeValues) { Assert.AreEqual("action", routeValue.Key); Assert.AreEqual("Index", routeValue.Value); } BlogProcess.VerifyAllExpectations(); BlogArticleMapper.VerifyAllExpectations(); }
public void When_a_list_of_BlogArticles_is_mapped_to_a_BlogArticleDetailsModels_then_no_data_is_retrieved_from_process_classes() { BlogProcess .Expect(process => process.GetBlogArticle(Arg <Guid> .Is.Anything)) .Repeat.Never(); BlogProcess.Replay(); UserProcess .Expect(process => process.GetUser(Arg <Guid> .Is.Anything)) .Repeat.Never(); UserProcess.Replay(); var blogArticles = BlogArticleCreator.CreateCollection(); var user = UserCreator.CreateSingle(); foreach (var blogArticle in blogArticles) { blogArticle.AuthorId = user.Id; } var result = Mapper.Map(blogArticles, new[] { user }); foreach (var blogarticleDetailsModel in result.Items) { Assert.AreEqual(user.Login.LoginName, blogarticleDetailsModel.AuthorName); } foreach (var blogArticle in blogArticles) { Assert.IsTrue(result.Items.Single(model => model.Id == blogArticle.Id && model.ModificationDate == blogArticle.ModificationDate && model.PublishDate == blogArticle.PublishDate && model.Title == blogArticle.Title && model.Content == blogArticle.Content && model.CreationDate == blogArticle.CreationDate) != null); } }
public void When_Details_is_called_GetBlogArticle_on_IBlogProcess_is_called_with_the_correct_parameter_and_the_result_is_mapped_with_BlogArticleMapper() { var entity = BlogArticleCreator.CreateSingle(); var author = UserCreator.CreateSingle(); entity.AuthorId = author.Id; UserProcess .Expect(process => process.GetUser(entity.AuthorId)) .Return(author) .Repeat.Once(); UserProcess.Replay(); BlogProcess .Expect(process => process.GetBlogArticle(entity.Id)) .Return(entity) .Repeat.Once(); BlogProcess.Replay(); var detailsModel = CreateBlogArticleDetailsModel(entity.Id); BlogArticleMapper .Expect(mapper => mapper.MapToDetail(entity, author)) .Return(detailsModel) .Repeat.Once(); BlogArticleMapper.Replay(); var result = Controller.Details(entity.Id).Result as ViewResult;; Assert.IsNotNull(result); BlogProcess.VerifyAllExpectations(); UserProcess.VerifyAllExpectations(); BlogArticleMapper.VerifyAllExpectations(); }