public void can_apply_name_changes() { //given var user1 = new UserRegistered(Guid.NewGuid(), "Mike", "smith", "*****@*****.**"); var user2 = new UserRegistered(Guid.NewGuid(), "Robert", "Jones", "*****@*****.**"); var user3 = new UserRegistered(Guid.NewGuid(), "Ben", "smith", "*****@*****.**"); var nameChange = new NameChanged(user2.UserId, "John", "Doe"); var usersRM = new RegisteredUsers(() => null, null); //when usersRM.Apply(user1); usersRM.Apply(user2); usersRM.Apply(user3); usersRM.Apply(nameChange); //then var displayNames = usersRM.Current; Assert.Collection( displayNames, displayName => { Assert.Equal(user1.UserId, displayName.UserId); Assert.Equal($"{user1.LastName}, {user1.FirstName}", displayName.DisplayName); }, displayName => { Assert.Equal(user2.UserId, displayName.UserId); Assert.Equal($"{nameChange.LastName}, {nameChange.FirstName}", displayName.DisplayName); }, displayName => { Assert.Equal(user3.UserId, displayName.UserId); Assert.Equal($"{user3.LastName}, {user3.FirstName}", displayName.DisplayName); }); }