public void Save_WithValidConnection_Expected_InvokesSaveEnvironment()
{
var mockConnection = new Mock<IEnvironmentConnection>();
mockConnection.Setup(connection => connection.ServerEvents).Returns(new Mock<IEventPublisher>().Object);
var mockResourceRepo = new Mock<IResourceRepository>();
var env = new EnvironmentModel(Guid.NewGuid(), mockConnection.Object, mockResourceRepo.Object, new Mock<IStudioResourceRepository>().Object);
var currentRepository = new Mock<IEnvironmentRepository>();
currentRepository.Setup(c => c.ActiveEnvironment).Returns(env);
currentRepository.Setup(e => e.Save(It.IsAny<IEnvironmentModel>())).Verifiable();
currentRepository.Setup(e => e.Fetch(It.IsAny<IEnvironmentModel>())).Returns(new Mock<IEnvironmentModel>().Object);
var handler = new ConnectCallbackHandler(currentRepository.Object);
handler.Save(ConnectionJson, null);
// ReSharper disable PossibleUnintendedReferenceComparison - expected to be the same instance
currentRepository.Verify(r => r.Save(It.IsAny<IEnvironmentModel>()));
// ReSharper restore PossibleUnintendedReferenceComparison
}