Похоже, все, что вам нужно сделать, это предоставить фиктивный объект для вашего свойства UserRepository, чтобы вы не обращались к базе данных и могли предоставить любые результаты, которые вы хотите проверить, чтобы ваш метод GetUserById работал правильно.
Например, используя NSubstitute, вы можете сделать что-то вроде этого:
[TestMethod]
public void GetUserByIdDoesSomething()
{
var userRepository = Substitute.For<IEntityRepository<User, UserCriteria>>();
//Do something to ensure GetAllCompanies will return a value
var user = new User();
userRepository.GetById(Arg.Any<object>()).Returns(user);
var serviceManager = new ServiceManager();
serviceManager.UserRepository = userRepository;
var result = serviceManager.GetUserById(1);
Assert.AreEqual(user, result);
Assert.IsTrue(result.Companies.Count() > 0);
}