Finally I found the solution, I need to specify in my setup the criteria for how to treat two lists equal.
I have changed the code to:
mockComponent
.Setup(
x => x.UpdateUserRoles(
It.Is<User>(user1 => user1.UserName == "DummyUser"),
It.Is<List<Role>>(y=>y[0].RoleName=="RoleOne" && y[1].RoleName=="RoleTwo")))
.Returns(user);
It's working like a charm..