public void DispatchMessage_AssignsUsers_WithEarliestLastAssigned_WhoArentCreator() { var id = "12345"; var message = new Message { Creator = id, Users = new List<string>() }; var users =new List<User> { new User { Id = id, LastAssigned = DateTime.MinValue }, new User { Id = "newer", LastAssigned = DateTime.MinValue.AddDays( 1 ) }, new User { Id = "older", LastAssigned = DateTime.MinValue.AddDays( 1 ) } }; var expectedUsers = users.Where( a => a.Id == "newer" ); var repo = new Mock<IRepository>(); repo.Setup( a => a.Find<User>() ).Returns( users.AsQueryable() ); var handler = new MessageHandler( repo.Object ); handler.DispatchMessage( message, 1 ); CollectionAssert.AreEquivalent( expectedUsers.Select( a => a.Id ).ToList(), message.Users ); repo.Verify( a => a.Save<Message>( message ) ); }
public void DispatchMessage_UpdatesLastModified_OfAssignedUsers() { var id = "12345"; var message = new Message { Creator = id, Users = new List<string>() }; var users = new List<User> { new User { Id = id, LastAssigned = DateTime.MinValue }, new User { Id = "newer", LastAssigned = DateTime.MinValue.AddDays( 1 ) }, new User { Id = "older", LastAssigned = DateTime.MinValue.AddDays( 1 ) } }; var expectedUser = users.First( a => a.Id == "newer" ); var originalLastAssigned = expectedUser.LastAssigned; var repo = new Mock<IRepository>(); repo.Setup( a => a.Find<User>() ).Returns( users.AsQueryable() ); var handler = new MessageHandler( repo.Object ); handler.DispatchMessage( message, 1 ); Assert.IsTrue( originalLastAssigned < expectedUser.LastAssigned ); repo.Verify( a => a.Save<User>( expectedUser ) ); }