public void EnsureUserHasMessages_DoesntPullIfExisting() { var id = "12345"; var messages = new List<Message> { new Message { Users = new List<string>() { id } } }; var repo = new Mock<IRepository>(); repo.Setup( a => a.Find<Message>() ) .Returns( messages.AsQueryable() ); var handler = new MessageHandler( repo.Object ); handler.EnsureUserHasMessages( id ); CollectionAssert.AreEquivalent( messages, handler.GetMessagesForUser( id ).ToList() ); }
public void EnsureUserHasMessages_AssignsLatestMessages_ThatUserDidntCreate_IfNoneAssigned() { var id = "12345"; var messages = new List<Message> { new Message { Created = DateTime.MaxValue, Users= new List<string>() }, new Message { Creator = id, Created = DateTime.MaxValue.AddDays( -1 ), Users= new List<string>() }, new Message { Created = DateTime.MaxValue.AddDays( -2 ), Users= new List<string>() } }; var repo = new Mock<IRepository>(); repo.Setup( a => a.Find<Message>() ) .Returns( messages.AsQueryable() ); var handler = new MessageHandler( repo.Object ); handler.EnsureUserHasMessages( id ); CollectionAssert.AreEquivalent( messages.Where( a => a.Creator != id ).ToList(), handler.GetMessagesForUser( id ).ToList() ); repo.Verify( a => a.Save<Message>( It.IsAny<Message>() ), Times.Exactly( messages.Count( a => a.Creator != id ) ) ); }