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);
        }