public void Pulse_AnyMessage_CallsQueryMethodOfReponsitory() { // Setup dependency var settingsMock = new Mock<ISettings>(); var busMock = new Mock<IBus>(); var uowMock = new Mock<IUnitOfWork>(); var repositoryMock = new Mock<IRepository>(); var serviceLocatorMock = new Mock<IServiceLocator>(); serviceLocatorMock.Setup(x => x.GetInstance<IRepository>()) .Returns(repositoryMock.Object); ServiceLocator.SetLocatorProvider(() => serviceLocatorMock.Object); // Arrange Guid id = Guid.NewGuid(); Site site = new Site() { Id = id, Heartbeat = DateTime.Now }; Site[] sites = new Site[] { site }; repositoryMock.Setup(r => r.Query<Site>()).Returns(sites.AsQueryable()); repositoryMock.Setup(r => r.CreateUnitOfWork()).Returns(uowMock.Object); // Act var siteService = new SiteService(busMock.Object,uowMock.Object,repositoryMock.Object, settingsMock.Object); siteService.Pulse(); // Assert repositoryMock.Verify(repo => repo.Query<Site>()); repositoryMock.Verify(repo => repo.Update<Site>(site)); uowMock.Verify(uow => uow.BeginTransaction(IsolationLevel.ReadCommitted)); uowMock.Verify(uow => uow.Save()); uowMock.Verify(uow => uow.Commit()); }
public void Get_AnyMessage_CallsGetMethodOfReponsitory() { // Setup dependency var settingsMock = new Mock<ISettings>(); var busMock = new Mock<IBus>(); var uowMock = new Mock<IUnitOfWork>(); var repositoryMock = new Mock<IRepository>(); var serviceLocatorMock = new Mock<IServiceLocator>(); serviceLocatorMock.Setup(x => x.GetInstance<IRepository>()) .Returns(repositoryMock.Object); ServiceLocator.SetLocatorProvider(() => serviceLocatorMock.Object); // Arrange Guid id = Guid.NewGuid(); Site site = new Site() { Id = id, Heartbeat =DateTime.Now }; Site[] sites = new Site[] { site}; repositoryMock.Setup(r => r.Query<Site>()).Returns(sites.AsQueryable()); // Act var siteService = new SiteService(busMock.Object, uowMock.Object, repositoryMock.Object, settingsMock.Object); DateTime actualDate =siteService.Get(); // Assert repositoryMock.Verify(repo => repo.Query<Site>()); Assert.AreEqual(site.Heartbeat, actualDate); }