public void Save_WithValidConnection_Expected_InvokesSaveEnvironmentWithCategory()
{
// BUG: 8786 - TWR - 2013.02.20
var mockConnection = new Mock<IEnvironmentConnection>();
mockConnection.Setup(connection => connection.ServerEvents).Returns(new Mock<IEventPublisher>().Object);
var mockResourceRepo = new Mock<IResourceRepository>();
var enviro = new EnvironmentModel(Guid.NewGuid(), mockConnection.Object, mockResourceRepo.Object, new Mock<IStudioResourceRepository>().Object);
var currentRepository = new Mock<IEnvironmentRepository>();
currentRepository.Setup(e => e.Save(It.IsAny<IEnvironmentModel>())).Verifiable();
currentRepository.Setup(c => c.ActiveEnvironment).Returns(enviro);
var env = new Mock<IEnvironmentModel>();
env.SetupProperty(e => e.Category); // start tracking sets/gets to this property
currentRepository.Setup(e => e.Fetch(It.IsAny<IEnvironmentModel>())).Returns(env.Object);
var handler = new ConnectCallbackHandler(new Mock<IEventAggregator>().Object, 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
}