public void GetUserConfirmation_AnyResult_CallsQueryMethodOfRepository() { var settingsMock = new Mock<ISettings>(); var componentsMock = new Mock<IComponents>(); var repositoryMock = new Mock<IRepository>(); var uowMock = new Mock<IUnitOfWork>(); var serviceLocatorMock = new Mock<IServiceLocator>(); serviceLocatorMock.Setup(x => x.GetInstance<IRepository>()) .Returns(repositoryMock.Object); serviceLocatorMock.Setup(x => x.GetInstance<IUnitOfWork>()) .Returns(uowMock.Object); ServiceLocator.SetLocatorProvider(() => serviceLocatorMock.Object); // Arrange Guid id = Guid.NewGuid(); Guid userId = Guid.NewGuid(); User user = new User() { Id = userId }; UserConfirmation userConfirmation = new UserConfirmation() { Id = id, User =user, Type = ConfirmedType.ChangeEmail }; User[] users = new User[] { user }; repositoryMock.Setup(r => r.Query<User>()).Returns(users.AsQueryable()); UserConfirmation[] userConfirmations = new UserConfirmation[] { userConfirmation }; repositoryMock.Setup(r => r.Query<UserConfirmation>()).Returns(userConfirmations.AsQueryable()); repositoryMock.Setup(r => r.CreateUnitOfWork()).Returns(uowMock.Object); // Act var userService = new UserService(uowMock.Object,repositoryMock.Object, settingsMock.Object, componentsMock.Object); UserConfirmationDto actuauserConfirmationDto = userService.GetUserConfirmation(userId, userConfirmation.Type); // Assert repositoryMock.Verify(repo => repo.Query<UserConfirmation>()); Assert.AreEqual(actuauserConfirmationDto.Id, userConfirmation.Id); }