void Run()
{
var eventPublisher = new EventPublisher();
var connection = new Mock<IEnvironmentConnection>();
connection.Setup(e => e.ServerEvents).Returns(eventPublisher);
connection.Setup(e => e.ExecuteCommand(It.IsAny<StringBuilder>(), It.IsAny<Guid>())).Returns(new StringBuilder());
var envMock = new Mock<IEnvironmentModel>();
envMock.Setup(e => e.Connection).Returns(connection.Object);
envMock.Setup(e => e.ResourceRepository.DeployResource(It.IsAny<IResourceModel>())).Verifiable();
envMock.Setup(e => e.IsConnected).Returns(true);
var dtoMock = new Mock<IDeployDto>();
dtoMock.Setup(d => d.ResourceModels).Returns(CreateModels(envMock.Object));
var ds = new DeployService();
ds.Deploy(dtoMock.Object, envMock.Object);
envMock.Verify(e => e.ResourceRepository.DeployResource(It.IsAny<IResourceModel>()), Times.Exactly(_numModels));
}