public void AddNewGenericProfile()
{
_uiServiceStub.Stub(_ => _.QueryProfileType()).Return(Contracts.ProfileType.Generic);
_viewModel.SetOptionsCollection(new Contracts.Options[0]);
_viewModel.AddCommand.Execute(null);
var profile = (GenericOptionsViewModel) _viewModel.Options[0];
profile.Name = "p1";
profile.ServerSettingsViewModel.CalenderUrl = "http://caldav.com/";
_optionTasksStub.Stub(_ => _.PickFolderOrNull()).Return(new OutlookFolder("folderId", "storeId", OlItemType.olAppointmentItem, "cal"));
_optionTasksStub.Stub(_ => _.GetFolderAccountNameOrNull("storeId")).Return("accountName");
profile.OutlookFolderViewModel.SelectFolderCommand.Execute(null);
var closeRequestedHandlerMock = MockRepository.GenerateStrictMock<EventHandler<CloseEventArgs>>();
closeRequestedHandlerMock.Expect(_ => _(Arg.Is(_viewModel), Arg<CloseEventArgs>.Matches(e => e.ShouldSaveNewOptions)));
_viewModel.CloseRequested += closeRequestedHandlerMock;
_viewModel.CloseCommand.Execute(true);
closeRequestedHandlerMock.VerifyAllExpectations();
var options = _viewModel.GetOptionsCollection().Single();
Assert.That(options.Name, Is.EqualTo("p1"));
Assert.That(options.CalenderUrl, Is.EqualTo("http://caldav.com/"));
Assert.That(options.OutlookFolderEntryId, Is.EqualTo("folderId"));
Assert.That(options.OutlookFolderStoreId, Is.EqualTo("storeId"));
Assert.That(options.OutlookFolderAccountName, Is.EqualTo("accountName"));
Assert.That(options.ServerAdapterType, Is.EqualTo(ServerAdapterType.WebDavHttpClientBased));
}
}